2

我想问一下我们如何调试从带有 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。

在此处输入图像描述

4

2 回答 2

2
  1. 打开 Nsight Monitor Nsight Visual Studio Edition 3.1 -> Nsight Monitor
  2. 转到 Nsight 监视器选项(在任务栏左侧)-> CUDA -> 使用此监视器进行 CUDA 附加 -> true
  3. NSIGHT_CUDA_DEBUGGER = 1通过高级系统设置 -> 环境变量添加环境变量,并在两个面板的用户系统变量中添加上述变量。
  4. 启动 Matlab 和 Visual Studio 并尝试将 Matlab 与 Nsight 调试器和限定计算机名称 以及它是。

在 Matlab 2011a 64x 和带有 SP1 的 VS 2010 上测试。

在此处输入图像描述

于 2013-10-02T15:41:14.797 回答
1

仅为 MATLABNSIGHT_CUDA_DEBUGGER设置环境变量就足够了,因此您不必通过让每个进程都可附加来减慢整个系统的速度。引用 NVIDIA 的 Nsight 文档:

设置NSIGHT_CUDA_DEBUGGER=1会降低应用程序的性能,因为调试器是常驻的。对 Tesla™ 设备和无头设备的影响很小;它在带有桌面的显示设备上最为严重,其中调试器可能需要序列化否则将是异步的启动。因此,并不总是需要NSIGHT_CUDA_DEBUGGER=1在系统范围或用户范围级别进行设置。

要在正在运行的 MATLAB 会话中设置它(并保留系统的其余部分):

>> setenv('NSIGHT_CUDA_DEBUGGER','1')

点击刷新或重新选择 Nsight GPU 调试器,它可以工作:

在此处输入图像描述

您仍然需要配置 Nsight 以允许附加,但这是一次性设置:

在此处输入图像描述

于 2015-02-20T21:21:49.110 回答