Hi,
I wondering how does CUDA kernel code something like <<<>>> translates to the cudaLaunchKernel.
Is there any specific cuda runtime API? or translated during compiling?
Thanks
Hi,
I wondering how does CUDA kernel code something like <<<>>> translates to the cudaLaunchKernel.
Is there any specific cuda runtime API? or translated during compiling?
Thanks
It is translated during compiling by nvcc
Thanks, @Robert_Crovella
I have one more follow-up question.
When I pass the device pointer to the kernel with shape <<<>>> as a function argument, the pointer address seems to change when it comes to cudaLaunchKernel.
For instance, I run the kernel with 3 arguments and the third one is the device pointer.
Before the kernel execution, the address where the pointer points is something like 0x3~~~
but inside of cudaLauncKernel, when i print the address of void**args (ex ags[2]) it shows 0x7~~~
It shows different addresses.
++ follow up information
When I access to the non-pointer arguments, I got the right values.
Can you tell me what happened here?
No I’m not able to understand your description. When launching the kernel using cudaLaunchKernel
, your arguments are passed using pointer-to-pointer. Its unlikely you also witnessed the pointer-to-pointer version inside device code. Probably a short, complete example that printed out the two values would clear things up.