我有一个相当大且复杂的 CUDA 代码,对于大量块/线程来说,它非常可靠地挂起。我试图弄清楚代码挂在哪里。
当我在 中运行代码时cuda-gdb
,我可以看到哪些线程/块挂起,但我看不到“虚拟 PC”之外的位置。
如果我用“-G”编译代码来获取调试信息,无论我运行多长时间,它都会运行得慢很多并且拒绝挂起。
有没有办法将“虚拟PC”映射到源代码中的一行代码,甚至是近似的?或者有没有办法在不关闭所有优化的情况下获取调试信息?
我试过使用“-G3”,但无济于事。这只是给了我“”类型的警告nvcc warning : Setting optimization level to 0 as optimized debugging is not supported
。我正在使用 CUDA 编译工具 4.1 版。