如何在远程服务器上启用TCC的设备上调试CUDA代码?

如何在远程服务器上启用TCC的设备上调试CUDA代码?,cuda,nsight,Cuda,Nsight,我想在即将成为生产服务器的开发pc上启动远程调试会话。在服务器上,我使用远程桌面启动NSight,然后尝试在本地计算机上启动CUDA调试(之前将服务器作为目标)。结果是,调试会话断开连接,表示“远程系统通过远程桌面登录。WDDM适配器将不可调试” 这是预期的行为、错误还是错误的配置?如果没有涉及远程桌面的解决方案,如何启动NSight监视器,以便启动调试会话 在目标服务器上,我有两台特斯拉K10和一台Quadro FX(用于显示)。所有特斯拉设备(实际上是四个)显示TCC开启 我正在使用NSig

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

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

在目标服务器上,我有两台特斯拉K10和一台Quadro FX(用于显示)。所有特斯拉设备(实际上是四个)显示TCC开启

我正在使用NSight 3.0、CUDA 5.0和visualstudio2008(后两种仅在开发工作站上使用)


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

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

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

是否可以尝试在服务器上运行(双击)应用程序,但不从Nsight将应用程序同步到的目录运行?它应该位于
%appdata\NVIDIA Corporation\Nsight\Monitor\Mirror\\\
我知道您提到您试图复制它,但我想看看是否所有Nsight sync都是应用程序所需的,并且可能没有缺少您需要指定的同步内容(有关同步的更多信息,请参阅此处:)


谢谢

如果您设置与服务器的连接并执行菜单命令Nsight | Windows | System Information(系统信息)页面是否显示2 K10处于TCC模式?我将与Nsight CUDA调试器团队验证此配置是否受支持。我在以前的版本中使用过此配置。同时,您可以使用VNC而不是远程桌面。是的,它在TCC模式下显示设备。但它实际上显示了4个设备,因为我们在服务器中有两个物理卡,每个卡包含两个GK104子系统(据我所知)。您好,您完全正确。我试着执行一个小的测试程序,只有几个依赖项,它工作了。(测试程序实际上枚举了设备并执行了一点测试内核,它只显示了启用TCC的设备)。驱动程序是307.32我想调试的应用程序,在sync目录下工作,但是当远程启动时,它似乎做了一些事情,输出窗口(控制台)消失得非常快(我昨天错过了),但它从未到达第一个内核的第一行。有什么方法可以保持此窗口打开或达到输出?嗨,Georg,也许你可以尝试将getchar()添加到应用程序中,这样它将等待键盘输入,你可以看到控制台输出。嗨,Georg,还有一件事,你能在“Nexus用户属性”(右键单击你的VS项目)中专门设置工作目录吗?在启动节点下,将“工作目录”设置为您希望它从中运行的目录。默认情况下(如果为空),Nsight将您的工作目录设置为.vc[x]proj所在的位置。如果这些对你有帮助,请告诉我。谢谢拉斐尔。getchar()是一个提示,对我帮助最大。有时候,我们看不见树木,看不见森林。。。它现在可以按预期工作了,我可以解决实际问题(这看起来很简单,因为它在我的应用程序逻辑中)。