EmuDebug vs. Debug Modes What's the difference? Why?

For some reason I got tons of errors when I use Debug mode because of the printf, however, it passes without error when I use the EmuDebug mode? Why is that? What is the difference? Why do I want to use one over the other? Is the EmuDebug codes run on the GPU or just the software emulates the GPU?


EmuDebug is compiling in emulation mode, which runs your kernels on the CPU (hence you can call printf). Debug compiles kernels on the GPU, and the rest of your application in debug mode The printf function does not exist on the GPU, thus the errors you are getting.