假设我有一台笔记本电脑,上面有 nvcc
和CUDA工具包,以及一个由16台装有Nvidia GPU和MPI的PC组成的网络。这些PC并不知道CUDA,它们只是有普通的Nvidia驱动和支持软件。
我想为这个网络开发一个MPI应用。这些PC将通过MPI获取任务,并使用他们的GPU来完成这些任务。我计划在我的笔记本上开发CUDA部分,将其编译成静态库,之后在PC上用这个静态库链接。mpicxx
编译器。
然而,我找不到任何证据表明这种部署是可能的。恰恰相反,大多数所谓的单独编译的例子都是 最后一步需要安装CUDA (将CUDA感知的静态库与MPI感知的主程序连接起来)。
$ g++ main.cpp -L. -lgpu -o main -L/usr/local/cuda/lib64 -lcudart
那么,是否有可能编译一个使用CUDA的程序或库,而不需要安装驱动程序和CUDA库等任何依赖性?
如果你把cuda运行时动态库和你的可执行文件一起部署的话,一切都应该正常。
同时,确保你在目标机器上安装了足够新的驱动程序。