【问题标题】:How to debug CUDA code on TCC enabled device on a remote server?如何在远程服务器上启用 TCC 的设备上调试 CUDA 代码?
【发布时间】:2013-01-02 15:11:50
【问题描述】:

我想通过我的开发电脑在我们即将成为生产服务器上启动一个远程调试会话。在服务器上,我使用远程桌面启动 NSight,然后尝试在本地计算机上启动 CUDA 调试(之前将服务器作为目标)。结果是,调试会话断开连接并显示“远程系统已通过远程桌面登录。WDDM 适配器将无法调试”。

这是预期的行为、错误、错误的配置吗?如果没有涉及远程桌面的解决方案,我该如何启动 NSight 监视器,以便我可以启动调试会话?

在目标服务器上,我有两个 Tesla K10 和一个 Quadro FX(用于显示)。所有 Tesla 设备(实际上是四个)都显示 TCC 已打开。

我正在使用 NSight 3.0、CUDA 5.0 和 Visual Studio 2008(后两者仅在开发工作站上)。

最后一件事:将应用程序复制到服务器并通过远程桌面执行即可。

【问题讨论】:

  • 在 Nsight Connections 工具栏中,如果您设置连接到您的服务器并执行菜单命令 Nsight |窗户 |系统信息 系统信息页面是否显示 2 K10 处于 TCC 模式?我将与 Nsight CUDA 调试器团队验证是否支持此配置。我在过去的版本中使用过这个配置。同时,您可以使用 VNC 代替远程桌面。
  • 是的,它显示了处于 TCC 模式的设备。但它实际上显示了 4 个设备,因为我们在服务器中有两张物理卡,每张卡包含两个 GK104 子系统(据我了解)。

标签: cuda nsight


【解决方案1】:

您引用的消息是一条警告,让用户知道 Nsight 已检测到您在目标端运行 RDP 会话,并且它无法在其中的任何 WDDM 卡上进行 Nsight 调试,如果有一个(或多个) - 看起来像你一样,使用你提到的 Quadro FX)。 此消息是一个警告,它应该继续让您在 Nsight 下运行或调试应用程序,并假设 GPU 代码在 TCC 设备上运行时调试应用程序。您确定应用程序在目标机器上成功运行了吗?您能否再次检查您是否设置了 GPU 断点并查看您是否遇到了这些断点? 是否显示任何其他消息? - 您可以查看 VS 输出窗口。

您使用的是哪个驱动程序版本?

您能否尝试在服务器上运行(双击)应用程序,但从 Nsight 同步应用程序的目录中运行?它应该在%appdata\NVIDIA Corporation\Nsight\Monitor\Mirror\<hostdev_machine_name>\<path_to_the_sync_app>下 我知道您提到您尝试复制它,但我想看看 Nsight 同步的所有内容是否都是应用程序所需的,并且可能没有缺少您需要指定同步的内容(有关同步的更多信息在这里:@ 987654321@)

谢谢

【讨论】:

  • 您好,您说的完全正确。我尝试执行一个小测试程序,只有几个依赖项并且它有效。 (测试程序实际上枚举了设备并执行了一个小测试内核,它只显示了启用 TCC 的设备)。驱动程序是 307.32
  • 我要调试的应用程序正在同步目录中工作,但是当远程启动时它似乎做了一些事情并且输出窗口(控制台)消失得非常快,(我昨天错过了),但是它永远不会到达第一个内核的第一行。有没有办法让这个窗口保持打开,或者到达输出?
  • 嗨 Georg,也许您可​​以尝试在应用程序中添加一个 getchar(),这样它将等待键盘输入,您可以看到控制台输出。
  • 嗨,Georg,还有一件事,您能否在“Nexus 用户属性”中专门设置工作目录(右键单击您的 VS 项目)?在 Launch 节点下,将“工作目录”设置为您希望它运行的目录。默认情况下(如果为空),Nsight 会将您的工作目录设置为 .vc[x]proj 所在的位置。如果这对您有任何帮助,请告诉我。
  • 谢谢拉斐尔。 getchar() 是提示,对我帮助最大。有时人们只见树木不见森林......它现在按预期工作,我可以解决实际问题(这看起来很容易,因为它在我的应用程序逻辑中)。
猜你喜欢
  • 2018-12-20
  • 2019-07-12
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 2013-08-03
  • 2018-07-01
  • 2018-10-19
相关资源
最近更新 更多