使用"本地Windows调试器"时,Visual Studio 2013中.cu文件中的断点可正常工作。但是当使用nsight"开始CUDA调试"断点被忽略了。这怎么可能?在nsight的网站上,他们说:"使用熟悉的Visual Studio Locals,Watches,Memory和Breakpoints窗口"。所以我猜可以使用正常的断点吗?
编辑:
Enable CUDA Memory Checker
:开/关没有区别Generate GPU Debug Information
:否/是(-G0)没有区别Start CUDA/Graphics debugging
:忽略断点答案 0 :(得分:4)
nvcc
编译的内容 - > bunch of preprocessing
- > cudafe++
- > cicc
工具链路径。nvcc
编译的内容 - > bunch of preprocessing
- > cl
或cl
。您的代码位于哪个文件.cpp
,.cu
或.h
无关紧要。唯一重要的是,您的代码是否注明为__device__
或__global__
。
从CUDA 7.5 RC(2015年8月)开始,在Windows上,您一次只能调试其中一个。在Linux和OSX上,您可以使用cuda-gdb
同时调试两者。
另请参阅:NVIDIA CUDA Compiler Driver NVCC
在Windows上调试期间可能导致挫折的其他因素:
.pdb
文件出错了。查看nvcc
,cl
,nvlink
和link
选项。例如,主机和设备调试信息可以写在同一个文件中,相互覆盖。