So, to summarize, only the code parallelized by CUDA threads and blocks will run on GPU, and all other setup code will run on CPU?
ChandlerBing
@andrewwuan Yes I think that's right. Only the computation intensive code would be shifted to the GPU from the CPU.
BigFish
Yes, I think only the part defined in kernel functions will be executed on GPU.
kayvonf
Correct. CUDA device code runs on the CUDA device. One possible CUDA device is a NVIDIA GPU.
It's possible that in the future other CUDA devices that execute CUDA programs will exist. (But CUDA is not an open standard so that presently is not the case.)
For example, NVIDIA used to provide a "CUDA Device" that was implemented as software running on the CPU. (At the time it was useful for debugging.) This "virtual CUDA device" is no longer available as debugging support for CUDA code on GPUs has improved over the years as CUDA has matured.
So, to summarize, only the code parallelized by CUDA threads and blocks will run on GPU, and all other setup code will run on CPU?
@andrewwuan Yes I think that's right. Only the computation intensive code would be shifted to the GPU from the CPU.
Yes, I think only the part defined in kernel functions will be executed on GPU.
Correct. CUDA device code runs on the CUDA device. One possible CUDA device is a NVIDIA GPU.
It's possible that in the future other CUDA devices that execute CUDA programs will exist. (But CUDA is not an open standard so that presently is not the case.)
For example, NVIDIA used to provide a "CUDA Device" that was implemented as software running on the CPU. (At the time it was useful for debugging.) This "virtual CUDA device" is no longer available as debugging support for CUDA code on GPUs has improved over the years as CUDA has matured.