我想问一下如何调试从VS 2010和Nsight的mexfunction调用的cuda内核。我按照http://http.developer.nvidia.com/NsightVisualStudio/2.2/Documentation/UserGuide/HTML/Content/Attach_CUDA_to_Process.htm中的说明操作,但未启用附加按钮以附加matlab。
PS:Win 7 64x,Matlab 2011 x64,VS 2010,CUDA SDK 5.5 64x,Nsight 3.1 64x,GForce 9600。
答案 0 :(得分:2)
NSIGHT_CUDA_DEBUGGER = 1
环境变量并在两个面板中的用户和系统变量中添加上述变量。在Matlab 2011a 64x和VS 2010 SP1上测试。
答案 1 :(得分:1)
仅为MATLAB 设置NSIGHT_CUDA_DEBUGGER
环境变量就足够了,因此您不必通过使每个进程都可连接来减慢整个系统的速度。引用NVIDIA的Nsight文档:
设置
NSIGHT_CUDA_DEBUGGER=1
会降低应用程序的性能,因为调试器是驻留的。 Tesla™设备和无头设备的效果极小;在具有桌面的显示设备上,它是最严重的,其中调试器可能需要序列化本来是异步的启动。因此,并非总是希望在系统范围或用户范围内设置NSIGHT_CUDA_DEBUGGER=1
。
要在正在运行的MATLAB会话中设置它(并为系统的其余部分节省空间):
>> setenv('NSIGHT_CUDA_DEBUGGER','1')
点击刷新或重新选择Nsight GPU调试器,它可以工作:
您仍需要配置Nsight以允许附加,但这是一次性设置: