我正在做一个CUDA应用程序,我想介绍一下。到目前为止,我所使用的只是命令行分析器nvprof,它只显示汇总的统计数据。
我考虑过使用GUI分析器,NVVP。问题是,我运行应用程序的远程Linux节点没有任何GUI (甚至是X.org)。而且,即使我设法在远程节点上获得了一些X11堆栈,在整个分析过程中保持我自己的笔记本电脑的正常运行也是很乏味的。
我尝试以以下方式收集所有需要的信息:
nvprof --analysis-metrics -o application.nvprof ./myapplication然后,我将输出文件复制到我的笔记本上,并在NVVP中查看它。不过,这有三个问题。
首先,当我将输出文件加载到NVVP中时,我不会得到任何文件传输信息。它完全没有显示在NVVP窗口中。
其次,调用图是完全失真的。内核发布之间的差距至少比内核持续时间大100倍,这使得任何依赖和流分析都不可能。
最后,我的应用程序使用了很多GPU内存。在分析过程中,设备会从内存中流出,而在独立运行时则不是这样。
如何正确地在无头节点上描述我的CUDA应用程序?
发布于 2017-11-08 04:54:20
NVVP支持作为一流公民的无头节点.远程分析是NVVP的一个主要特征。
其工作方式是,NVVP运行在本地启用GUI的主机上,并在无头计算机上调用nvprof,在那里生成所需的文件,复制文件并打开它们。所有这些都是透明和自动发生的。您可以运行进一步的分析,从NVVP一如既往,它将重复这些步骤为您。
若要使用远程分析,请打开NVVP,然后打开File->New Session。添加一个连接而不是使用Local,输入无头机器的详细信息。单击Manage...将NVVP指向远程计算机上的工具包路径。完成这一次设置后,输入可执行文件的路径并照常运行。
您可以在相关文件中阅读有关远程分析的内容。
https://stackoverflow.com/questions/47167801
复制相似问题