我已经在nvidia论坛上提出了这个问题,但从未得到答案link。
每当我尝试进入内核时,我都会收到类似的错误消息:
__device_stub__Z10bitreversePj (__par0=0x110000) at
/tmp/tmpxft_00005d4b_00000000-1_bitreverse.cudafe1.stub.c:10
10 /tmp/tmpxft_00005d4b_00000000-1_bitreverse.cudafe1.stub.c: No such file or directory.
in /tmp/tmpxft_00005d4b_00000000-1_bitreverse.cudafe1.stub.c
我试图通过错误保持按照cuda-gdb演练的说明进行操作。
有人提示可能导致此行为吗?
答案 0 :(得分:1)
bitreverse(unsigned int*)
(无论是什么)的“设备存根”是使用调试信息编译的,它位于/tmp/tmpxft_00005d4b_00000000-1_bitreverse.cudafe1.stub.c
(可能是机器生成的)。
"No such file"
错误告诉您系统上没有(或不再存在)该文件,但这不是错误; GDB
无法向您展示来源。
这应该不阻止你进一步踩踏,或者在其他功能中设置断点并继续。
答案 1 :(得分:1)
我能够通过在nvcc编译器上使用-keep标志来解决这个问题。这指定编译器应保留在编译期间创建的所有中间文件,包括由cudafe创建的stub.c文件,这些文件是调试器逐步执行内核函数所需的。否则,在编译结束时,默认情况下中间文件似乎被删除,调试器将无法找到它们。您也可以为中间文件指定目录,并且需要将调试器(cuda-gdb,nsight等)指向此位置。
答案 2 :(得分:0)
我想我曾经有过这样的问题,但不能真正记住它是由什么造成的。你在内核中使用纹理吗?在这种情况下,你无法调试它。