这是我的场景。我在 Windows 机器上编写我的 CUDA 应用程序。我使用 putty 在远程 linux (Debian) 服务器(没有图形输出)上编译和运行这个应用程序。
我想问一下调试和分析我的应用程序的最佳方法是什么。我读了一些关于 Nvidia 产品 Parallel Nsight 和 Parallel Nsight Monitor 的内容。这是(唯一的)方式吗?
使用 Nsight Eclispe Edition 6.0 在远程机器上运行、调试和分析 CUDA 应用程序变得非常舒适和容易。一切都可以一键式运行。为了能够在远程机器上使用 5.5 版的远程调试 CUDA SDK 和 6.0 版的远程分析,这是必要的。
可以在 Nsight Eclipse文档中找到详细信息。
您可以使用 Cuda 命令行分析器(http://docs.nvidia.com/cuda/profiler-users-guide/index.html#compute-command-line-profiler-overview)您需要导出一些环境变量和驱动程序将使用您的程序的 CUDA 调用生成跟踪文件。之后你可以在 Nvidia Visual Profiler 中导入这个文件并在 Windows 下浏览它。
您也可以使用一些 X 服务器通过 ssh 转发 X 并在 linux 机器上运行分析器,但如果您和远程机器不在同一个网络中,我不建议这样做)
Allinea DDT可以在这种情况下处理调试 CUDA 应用程序:通过 X 转发或通过远程模式。在远程模式下,您将使用运行在 Windows 机器上的调试用户界面来调试在 Linux CUDA 机器上运行的应用程序。源代码位于 Windows 端或 Linux 端 - 以适合您的情况为准。
分析工具Allinea MAP不提供任何 CUDA 工具,但可以让您很好地了解整个应用程序的行为方式,包括等待 CUDA 内核完成所花费的时间。