0

我正在尝试调试 cuda-gdb 中的程序。我能够在主机 (CPU) 上运行的代码中成功设置断点,但是每当我尝试在 GPU 上运行的代码中设置断点时,调试器就会跳过断点并给我以下错误:

"warning: Cuda API error detected: cudaLaunchKernel returned (0x7)"

然后它继续成功地执行其余的代码。我怎样才能使这些工作?

4

1 回答 1

2

根据 NVIDIA 开发论坛的这个答案,我能够让断点工作。即,在 nvcc 编译器选项中,您需要通过使用maxrregcount标志来限制使用的寄存器数量,例如:

nvcc -arch sm_60 -g -G -dc --maxrregcount=64 --compiler-options -Wall -std=c++14 basic.cu

(注意:要查看您有多少寄存器,请进入info cuda devicescuda-gdb 并检查该Regs/Lane列)

于 2019-11-12T17:31:41.957 回答