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 -X
或 ssh -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 的设备的本地计算机上显示结果的主要内容,如果未能解决你的问题,请参考以下文章