Comments (1)
Yep, this is an unfortunate difference in printf() between CUDA and OpenCL which is not trivial to fix. I don't think it requires format strings to get any possible output ordering between the threads/WIs. It's down to the OpenCL driver's printf implementation what happens. Some could flush at newline boundaries, some just push chars to a shared "stdout ring buffer" (like PoCL does).
CUDA does the actual printing on host by transferring the fmtstr and the args whereas OpenCL printf can perform it (more) on the device, which means it's not guaranteed to be flushed at string boundaries. We thought about doing a similar implementation (borrow one from AMD ROCm for instance) but it needs non-trivial amount of both compiler and runtime work to get it right and portable.
A clean way to fix this would be to propose an OpenCL extension that can be used to enforce printf() strings to get flushed at \n to make unsynchronized multi-work-item output more readable. Meanwhile we are relying on the OpenCL driver-specific behavior.
from chipstar.
Related Issues (20)
- [OpenCL] CHIP_USE_INTEL_USM option fails on Intel CPU driver HOT 4
- Why we don't account the tail padding when compute a arg'size? HOT 2
- [OpenCL] Sporadic test failures on `main` HOT 5
- Compiler crash on Sunspot while building chipStar
- Compilation issue for interop samples
- CMake Error for Chipstar Build HOT 18
- Double definitions in vector operator overloading for CUDA source code
- cucc is a fork bomb if a symlink called nvcc pointing to cucc exists HOT 6
- "Missing definition for ldexpf" and hipErrorTbd run-time errors in benchmark involving __builtin_powf
- --relocatable-device-code=true and --device-c (-dc) nvcc flags are not handled by cucc wrapper
- InvalidBitWidth: Invalid bit width in input: 128 when hipspv-linking some of the tests HOT 2
- Level0 backend is uninitialized before destructor for custom class is called
- [devicelib] Device-side math functions do not match results from the host
- Undefined reference to __hip_fatbin during the linking of object files with reallocatable device code HOT 3
- Error: no viable conversion from 'const __hip_builtin_blockIdx_t' to 'dim3'
- __chip__fns64 generates 128bit numbers resulting in InvalidBitWidth: Invalid bit width in input: 128
- NVCC compilation flags/options ordering
- llvm_passes install picks up /usr/local HOT 1
- Can't find declaration for hipLaunchKernel_spt HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chipstar.