如何在无头节点上配置CUDA代码



我正在开发一个想要评测的CUDA应用程序。到目前为止,我所使用的只是命令行探查器nvprof,它只显示汇总的统计信息。

我考虑过使用GUI探查器NVVP。问题是,我运行应用程序的远程Linux节点没有任何GUI(甚至X.org)。此外,即使我设法在远程节点上获得了一些X11堆栈,在整个评测过程中保持我自己的笔记本电脑的活力也会很乏味。

我尝试通过以下方式收集所有需要的信息:

nvprof --analysis-metrics -o application.nvprof ./myapplication

然后我将输出文件复制到我的笔记本电脑上,并在NVVP中查看。不过,这有三个问题。

首先,当我将输出文件加载到NVVP中时,我不会得到任何文件传输信息。它根本没有显示在NVVP窗口中。

其次,调用图完全失真。内核启动之间的间隔至少是内核持续时间的100倍,这使得任何依赖关系和流分析都不可能。

最后,我的应用程序使用了大量的GPU内存。在分析过程中,设备内存不足,而在独立运行过程中情况并非如此。

我应该如何在无头节点上正确配置我的CUDA应用程序?

NVVP作为一级公民支持无头节点。远程评测是NVVP的一个主要功能。

其工作方式是NVVP在本地启用GUI的主机上运行,并在无头计算机上调用nvprof,在那里生成所需的文件,复制文件并打开它们。所有这些都是透明而自动地发生的。您可以像往常一样从NVVP运行进一步的分析,它将为您重复这些步骤。

要使用远程评测,请打开NVVP,然后打开File->New Session。添加一个连接,而不是使用Local,输入无头机器的详细信息。单击Manage...将NVVP指向远程机器上的工具箱路径。完成此一次性设置后,输入可执行文件的路径并照常运行。

您可以在相关文档中阅读有关远程评测的信息。

相关内容

  • 没有找到相关文章

最新更新