我正在尝试编译和链接动态内核,并将其与GK110上的 CUDA驱动程序API 一起使用。
我将Visual Studio中的.cu源文件与可重定位设备代码标志和compute_35,sm_35编译成ptx文件然后 CUDA链接器添加cudadevrt.lib (至少它试图根据到链接器调用)。当我在ptx .obj上执行cuModuleLoad时,它表示不支持的设备代码。还有一个 .device-link.obj ,它似乎不切实际的小而且没有驱动程序api函数似乎将它识别为有效图像。在检查ptx文件时,我可以看到它根据CUDA文档(来自PTX部分的动态并行性)生成了对内核启动函数的调用。
如何链接正确的设备代码,以便动态内核调用工作?
(这是带有VC2013的Win64上的CUDA 6.5)
答案 0 :(得分:4)
您需要在使用驱动程序API提供的cuda链接器加载ptx文件时进行链接:
在你的应用中: