我想知道当像
这样的行时,CUDA程序会发生什么myKernel<<<16,4>>>(arg1,arg2);
遇到了。
那会怎么样?是否调用了CUDA驱动程序并将ptx代码传递给它或什么?
答案 0 :(得分:3)
“它只是有效”。开玩笑。可能我会发布这个答案,因为我的知识在这方面并不广泛。但这就是我能说的:
mykernel<<<...>>>
(由各种cuda和GPU api库提供服务)。这就是cuda司机在引擎盖下被“调用”的方式。通过研究kernel execution in the driver API可以获得对内核执行的更多了解。为了简要描述驱动程序API,我可以将其称为比cuda运行时API更低级的API。但是,提及它的一点是它可以让我们深入了解如何将内核启动语法(运行时API)转换为实际看起来像库调用的C级API。
其他人可能会提供更好/更详细的解释。