是否可以在 Windows 上运行多个 CUDA 版本?

Posted

技术标签:

【中文标题】是否可以在 Windows 上运行多个 CUDA 版本?【英文标题】:Is it possible to run multiple CUDA version on windows? 【发布时间】:2021-08-21 14:01:47 【问题描述】:

我正在做一个胸部 X 光项目的实验。我想要多个版本的 CUDA 工具包,但问题是我的系统放置了我最后安装的最新版本。 是否可以按照 GitHub 代码的要求运行任何 CUDA,例如 9.0、10.2、11.0?

我已经完成了所有初始步骤,例如将路径添加到环境变量,添加 CUDNN 复制文件并添加到环境中。 现在的问题是我想根据我的代码使用 Cuda 9.0,但我的默认设置是 cuda.11.0 什么是在这些版本之间轻松切换的解决方案或脚本

【问题讨论】:

您可以在 Windows 上运行多个 CUDA 版本。如果您为 GPU 安装最新的驱动程序,它将支持您选择的任何 CUDA 最新版本。无需更换驱动程序。 CUDA 工具包安装在不同的位置,因此它们可以并排使用。但是,您需要适当地修改路径并适当地选择要在 VS 中使用的版本。单个应用程序(编译后的可执行文件)不能同时使用两个不同的 CUDA 版本,但我认为您不是在问这个问题。两个不同的应用可以使用两个不同的 CUDA 版本。 感谢您的回复,我知道并且我搜索了很多以拥有多个 CUDA,我还添加了路径并且我也有驱动程序。现在我想使用 cuda 9.0,不想使用其他 10 或 11 cuda。我有所有版本的驱动程序,我安装了它们中的每一个。让我纠正一下,如果我想使用 cuda 9 应该安装兼容版本的 cuda 9 驱动程序吗?还是安装最新的>? 最新的驱动程序可以在 CUDA 9 上正常工作。 但是 nvidia-smi 放了 CUDA 10.2,我的代码放了 11.0,我想要 CUDA 9.0。 【参考方案1】:

您可以正确设置 CUDA_PATH_V9_0、CUDA_PATH_V10_0 等,然后将 CUDA_PATH 设置为其中任何一个(例如 CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0)。

然后在您的 VS 项目中,使用 CUDA_PATH(例如 $CUDA_PATH\lib)设置您的 cuda 库路径。

要切换,只需将 CUDA_PATH 设置为另一个版本,然后清理并重建您的 VS 项目。

【讨论】:

答案并不令人满意。我已经提到我在系统变量和虚拟变量中添加了路径。问题是使用CUDA不同的版本。现在我有 9、10 和 11 cuda,我想要旧的,我安装了 cuda 11 最新的 cuda 驱动程序。那么我应该使用旧版本的 cuda 9 驱动程序并再次安装以默认进入 cuda 9 还是只是更改 VS 项目 cuda 路径,给我一个示例,在代码期间我应该在哪里更改 VS 代码。 您始终可以使用最新的驱动程序并且只使用一个驱动程序。您应该能够简单地将 CUDA_PATH 指向 VS 项目设置中所需的路径,而无需更改代码。 如果您想使用所有 cuda 版本中不可用的某些 CUDA 功能,请检查代码中宏 CUDA_ARCH 的值,并为不同的 CUDA 编写不同的代码架构,并将 CUDA C/C++ --> Device 下的“代码生成”设置更改为正确的设置,例如“计算_30,sm_30”。请参阅 [docs.nvidia.com/nsight-visual-studio-edition/3.2/Content/… 了解详情

以上是关于是否可以在 Windows 上运行多个 CUDA 版本?的主要内容,如果未能解决你的问题,请参考以下文章

Cuda 中的多个 GPU - 以前可以工作的代码,但现在不行了

是否可以在AMD GPU上运行CUDA?

是否可以在 Windows 中将 nvcc 与 gcc/g++ 集成?

在 Windows 上安装 CUDA

如何在我的代码中使用张量核心而不是 cuda 核心?

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