Debugging Linux服务器上运行的CUDA程序的远程调试和评测

Debugging Linux服务器上运行的CUDA程序的远程调试和评测,debugging,cuda,profiling,nsight,Debugging,Cuda,Profiling,Nsight,这是我的设想。我在windows机器上编写CUDA应用程序。我使用putty在远程linux(Debian)服务器(无图形输出)上编译并运行此应用程序 我想问一下调试和评测我的应用程序的最佳方法是什么。我读了一些关于Nvidia产品Parallel Nsight和Parallel Nsight Monitor的信息。这是唯一的方法吗?您可以使用Cuda命令行探查器() 您需要导出几个环境变量,驱动程序将生成带有CUDA调用的跟踪文件。 之后,您可以在Nvidia Visual Profiler中

这是我的设想。我在windows机器上编写CUDA应用程序。我使用putty在远程linux(Debian)服务器(无图形输出)上编译并运行此应用程序


我想问一下调试和评测我的应用程序的最佳方法是什么。我读了一些关于Nvidia产品Parallel Nsight和Parallel Nsight Monitor的信息。这是唯一的方法吗?

您可以使用Cuda命令行探查器() 您需要导出几个环境变量,驱动程序将生成带有CUDA调用的跟踪文件。 之后,您可以在Nvidia Visual Profiler中导入此文件并在Windows下浏览它

您还可以使用一些X服务器通过ssh转发X,并在linux机器上运行探查器,但如果您和远程机器不在同一网络中,我不建议这样做)

可以在这种情况下处理CUDA应用程序的调试:通过X转发,或通过远程模式。在远程模式下,您将使用Windows计算机上运行的调试用户界面调试Linux CUDA计算机上运行的应用程序。源代码要么在Windows端,要么在Linux端——以适合您的情况为准


评测工具不提供任何CUDA指令,但可以让您很好地了解整个应用程序的运行情况,包括等待CUDA内核完成所花费的时间。

使用Nsight Eclispe Edition 6.0运行,在远程机器上调试和评测CUDA应用程序变得非常舒适和容易。一切都只需点击一下。为了能够在远程计算机上使用远程调试,需要5.5版CUDA SDK和6.0版远程评测


详细信息可以在Nsight Eclipse中找到。

您还可以从命令行启动VNC服务器,然后使用远程VNC客户端连接到该服务器。这允许您在远程机器上运行X程序,即使没有根访问权限。Nxclient是目前为止在远程Linux服务器上工作的最佳方式。