可以在没有安装CUDA驱动程序的情况下运行CUDA程序或库吗?

4
假设我有一台安装了nvcc和CUDA工具包的笔记本电脑,以及一个由16台Nvidia GPU和MPI组成的网络。这些PC并不知道CUDA,它们只有普通的Nvidia驱动程序和支持软件。
我想为这个网络开发一个MPI应用程序。PC将通过MPI获取任务,并使用其GPU执行这些任务。我计划在我的笔记本电脑上开发CUDA部分,将其编译为静态库,然后使用mpicxx编译器链接此静态库到PC上。
然而,我无法找到任何证据表明这种部署是可能的。相反,大多数所谓的分离编译示例需要在最后一步安装CUDA(将CUDA感知静态库与MPI感知主程序链接)。
$ g++ main.cpp -L. -lgpu -o main -L/usr/local/cuda/lib64 -lcudart

那么,是否有可能编译一个使用CUDA且没有任何依赖项(如已安装的驱动程序和CUDA库)的程序或库呢?

短回答是:您必须将运行时 DLL 与可执行文件一起部署。 - Regis Portalez
奇怪的是,一个 CUDA 计算资源集群并没有预先部署 CUDA 运行时。 - user3528438
@RegisPortalez 谢谢您的回复。所以至少我不需要在目标机器上安装新的视频驱动程序;缺少依赖项的dll文件就足够了。我理解得对吗? - u354356007
最近的驱动程序就可以了。你能做的最好的事情就是在一台单独的机器上使用测试程序试一试。 - Regis Portalez
@RegisPortalez 我刚刚检查了一下,确实,在没有安装特殊的CUDA软件的PC上,CUDA程序可以正常运行。但是,如果GPU驱动程序过旧,CUDA调用可能会失败并显示错误代码35。如果您愿意,可以提交一个答案,我会将其标记为已接受。 - u354356007
1个回答

2

如果您将CUDA运行时动态库与可执行文件一起部署,应该可以使所有内容正常工作。

同时,请确保在目标计算机上安装了足够新的驱动程序。


我想补充一点,如果您的NVCC选项指定了最低所需计算能力,则必须确保目标机器具有足够的计算能力。 - Taro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接