是否可以在未安装 CUDA 驱动程序的情况下运行 CUDA 程序或库?

Posted

技术标签:

【中文标题】是否可以在未安装 CUDA 驱动程序的情况下运行 CUDA 程序或库?【英文标题】:Is it possible to run CUDA program or library without CUDA driver installed? 【发布时间】:2016-08-14 18:09:56 【问题描述】:

假设我有一台装有nvcc 和CUDA Toolkit 的笔记本电脑,以及一个由16 台装有Nvidia GPU 和MPI 的PC 组成的网络。 PC 不知道 CUDA,它们只有常规的 Nvidia 驱动程序和支持软件。

我想为此网络开发一个 MPI 应用程序。 PC 将通过 MPI 获取任务并使用它们的 GPU 来完成这些任务。我计划在我的笔记本电脑上开发 CUDA 部分,在静态库中编译它,然后使用 mpicxx 编译器在 PC 上链接这个静态库。

但是,我找不到任何证据表明这种部署是可能的。相反,大多数所谓的单独编译的例子require CUDA installed for the final step(链接CUDA-aware静态库和MPI-aware主程序):

$ g++ main.cpp -L. -lgpu -o main -L/usr/local/cuda/lib64 -lcudart

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

【问题讨论】:

简短回答是:您必须将运行时 dll 与可执行文件一起部署 奇怪的是一个cuda计算资源集群没有部署cuda运行时。 @RegisPortalez 感谢您的回复。所以至少我不必在目标机器上安装新的视频驱动程序;缺少依赖项的 dll 就足够了。我做对了吗? 最近足够的驱动程序就可以了。您能做的最好的事情就是在带有测试程序的单台机器上尝试一下 @RegisPortalez 刚刚检查过,是的,确实,CUDA 程序在没有安装特殊 CUDA 东西的 PC 上运行良好。但是,如果 GPU 驱动程序太旧,CUDA 调用可能会失败并显示错误 35。如果您愿意,请随时提交答案,我会将其标记为已接受。 【参考方案1】:

如果您将 cuda 运行时动态库与您的可执行文件一起部署,那么一切都应该正常工作。

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

【讨论】:

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

以上是关于是否可以在未安装 CUDA 驱动程序的情况下运行 CUDA 程序或库?的主要内容,如果未能解决你的问题,请参考以下文章

在未安装 .Net Framework 的情况下运行 c# 3 应用程序?

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

如何使用软件实现在没有 GPU 的情况下运行 CUDA?

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

是否可以通过 OBEX 在未配对的设备之间传输文件?

我可以在没有 Visual Studio 的 Windows 7 中编译和运行 cuda 程序吗?