CUDA - 在远程计算机上运行 NVVP,在没有启用 CUDA 的设备的本地计算机上显示结果

Posted

技术标签:

【中文标题】CUDA - 在远程计算机上运行 NVVP,在没有启用 CUDA 的设备的本地计算机上显示结果【英文标题】:CUDA - Running NVVP on remote computer, showing results on local computer with no CUDA enabled device 【发布时间】:2013-04-02 17:00:14 【问题描述】:

至少我们中的一些人在远程服务器上开发我们的 CUDA 代码。它们通常仅通过 SSH 连接提供访问。可以在远程计算机上使用这样的命令分析 CUDA 应用程序(或内核)

nvprof -o profile.out -s ./prog args

然后将“profile.out”下载到本地计算机。

我的问题是,是否可以在没有启用 CUDA 的设备的计算机上使用可视化分析器打开此文件?是否有任何其他工具可以打开此类文件并提供与 Visual Profiler 相似或更丰富的信息。

我确实收到这样的错误“无法找到 CUDA 库并与 CUDA 驱动程序建立连接。确保 CUDA 和 CUDA 运行时库位于您的库路径中。有关更多信息,请参阅安装指南。Visual Profiler 将退出现在”。

一些参考资料:

Compute Visual Profiler giving error when opening

Remote CUDA profiling?

【问题讨论】:

如果您使用 X 转发(ssh -Xssh -Y),您可以使用 nvvp 直接在远程计算机上进行分析。您不需要在远程机器上运行 X。您确实需要在本地计算机上运行 X,但不必安装 NVIDIA GPU 或 CUDA。 我通过使用 nvprof 在远程机器上进行配置,而不使用 X 转发。我的目标是显示生成的配置文件输出并获得视觉分析器提供的建议。 【参考方案1】:

使用 CUDA 5.5 附带的 nvvp 版本,我能够在未配备 CUDA 的机器上运行 nvvp 以打开 nvprof 生成的配置文件。

这是在 Fedora 20 下。为了让它工作,我做了以下工作:

    从https://developer.nvidia.com/cuda-downloads下载CUDA 5.5的RUN版本

    安装工具包:

    sh cuda_5.5.22_linux_64.run -overide -toolkit -toolkitpath=$HOME/usr/cuda
    

    提取驱动安装程序:

    sh cuda_5.5.22_linux_64.run -extract=/tmp
    

    从驱动安装程序中提取驱动文件:

    cd /tmp
    sh ./NVIDIA-Linux-x86_64-319.37.run -a -x
    

    将驱动程序库链接到 nvvp 将找到的名称:

    cd NVIDIA-Linux-x86_64-319.37
    for i in *.so.319.37; do ln -s $i $i/.319.37/.1; done
    

    设置 LD_LIBRARY_PATH 以便 nvvp 将在解压后的目录中搜索库:

    export LD_LIBRARY_PATH=/tmp/NVIDIA-Linux-x86_64-319.37
    

    运行 nvvp 并导入 nvprof 文件。

NVVP 将显示配置文件,它看起来很合理,但 YMMV 和我不声明其正确性。

【讨论】:

一种更简单的方法是添加 cuda 存储库并安装 cuda-visual-tools。然后可以在 /usr/local/cuda-X.X/bin 中找到 nvvp。在 Fedora 20 上为我工作。【参考方案2】:

NVIDIA Visual Profiler 无法在没有 NVIDIA GPU 的系统上运行。我们将考虑在未来的 CUDA Toolkit 版本之一中引入远程分析器。

【讨论】:

我的目的不是分析程序,而只是显示分析的结果。 不幸的是,目前没有 GPU 的系统不支持。 Profiler 对驱动程序组件有一些不幸的依赖关系,因此它无法在没有驱动程序的系统上工作。我们知道这个问题。 那么,在这种情况下使用 TAU 之类的工具会更好吗?收集 GPU 计数器等并将它们存储在 slogs 等处。你会建议别的东西吗,吸血鬼踪迹?..developer.nvidia.com/tau-performance-system,nvidia.com/content/GTC/posters/…,cscads.rice.edu/workshops/summer09/slides/performance-tools/…,olcf.ornl.gov/kb_articles/gpu-performance-tools【参考方案3】:

在我的大学里,我们编译代码并通过 MobaXterm 使用 SSH 从服务器运行 nvvp。 因此,即使我的笔记本电脑没有 NVidia 显卡,我也可以使用 nvvp。

【讨论】:

谢谢高拉夫。尽管这是一个解决方案,但我一直在寻找 XForwarding 以外的解决方法。我的主要目标是能够随时随地在任何计算机上打开生成的分析文件。我将它们视为保存统计信息的文件,并认为我们可能不需要 NVIDIA gpu 来显示它们。也许第三方解决方案可能会有所帮助..

以上是关于CUDA - 在远程计算机上运行 NVVP,在没有启用 CUDA 的设备的本地计算机上显示结果的主要内容,如果未能解决你的问题,请参考以下文章

GPU运行nvvp失败“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”

GPU运行nvvp失败“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”

GPU运行nvvp失败“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”

如何获得在没有 WMI 的远程计算机上运行的进程的所有者

在没有物理 NVidia GPU 卡的虚拟机上运行 CUDA

如何使用SSH在远程计算机上运行shell脚本?