Win11配置多个CUDA环境

概述

由于跑项目发现需要配置不同版本的Pytorch,而不同版本的Pytorch又对应不同版本的CUDA,于是有了在Win上装多个CUDA的打算

默认已经在电脑上装了一个CUDA

屏幕截图 2023-09-30 112423

现在开始下载第二个CUDA版本,前面下载的操作和普通安装的几乎一样

安装CUDA

CUDA下载链接

下载自己需要的CUDA版本,以我自己要安装的为例

屏幕截图 2023-09-30 095614

屏幕截图 2023-09-30 095815

下载打开exe文件进行安装,第一步不用管,直接点击确认

屏幕截图 2023-09-30 100402

后面选择自定义安装,只选择安装CUDA

屏幕截图 2023-09-30 100534

其他一路下一步就可以了

安装cuDNN

cuDNN下载链接

PS:下载需要登录一下账号

屏幕截图 2023-09-30 100047

下载下来后,把压缩包解压,得到如下文件

image-20230930100746137

bin,include文件夹中的文件,分别复制到下列地址对应的文件夹下(CUDA的安装地址,以我的地址为例),遇到提示,为全部选择覆盖和替换。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7

需要注意的是,lib文件夹里的所有文件,需要复制到

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\lib\x64

至此,安装工作就做完了,可以看到电脑上已经有两个CUDA版本了

image-20230930101157014

配置环境

由于CUDA11.7是后面安装的,所以可以看到系统把之前的环境覆盖了

屏幕截图 2023-09-30 103109

以作者在为例,系统变量的PATH里配置一下路径

CUDA_11.7

%CUDA_PATH_V11_7%\lib\x64
%CUDA_PATH_V11_7%\include
%CUDA_PATH_V11_7%\extras\CUPTI\lib64
%CUDA_PATH_V11_7%\bin
%CUDA_PATH_V11_7%\libnvvp

CUDA_11.0

%CUDA_PATH_V11_0%\lib\x64
%CUDA_PATH_V11_0%\include
%CUDA_PATH_V11_0%\extras\CUPTI\lib64
%CUDA_PATH_V11_0%\bin
%CUDA_PATH_V11_0%\libnvvp

配置好如下:

微信截图_20230930105036

配置好之后,默认CUDA版本是11.7的,如果要切换到11.0版本的,只需要把下面的五条整体上移到CUDA_11.7配置的前面

微信截图_20230930105411

验证

测试CUDA11.7

首先验证CUDA_11.7是否配置成功

image-20230930105601201

测试Pytorch是否可以调用显卡

python
import torch
torch.cuda.is_available()
torch.cuda.get_device_name(0)
torch.version.cuda

image-20230930120418607

测试CUDA11.0

先把系统变量里Path里相关路径上移

微信截图_20230930110409

然后重启!重启!重启!

验证CUDA_11.7是否配置成功

image-20230930112425329

测试Pytorch是否可以调用显卡

image-20230930112626663

总结

切换CUDA的时候除了要修改系统变量Path中的路径顺序,一定要记得重启!

### 如何在 Windows 11 上同时安装和管理多个 CUDA 版本 为了实现多版本 CUDA 的共存并方便切换,以下是详细的说明: #### 多版本 CUDA 安装方法 在 Windows 平台上支持多版本 CUDA 的安装主要依赖于独立的目录结构以及环境变量的动态调整。每种 CUDA 工具包会被安装到不同的文件夹路径中[^3]。 - **安装过程** 需要分别下载不同版本的 CUDA Toolkit,并按照官方指南逐步执行安装操作。确保每次安装时指定自定义路径而非默认位置,这样可以防止覆盖旧版工具链中的重要组件。 ```bash # 假设我们正在设置两个版本:CUDA 10.2 和 CUDA 11.7 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\ ``` #### 环境变量配置策略 成功部署各版本之后,通过修改系统的 PATH 环境变量来控制当前活动的 CUDA 版本。具体做法如下所示: - 创建单独用于存储特定 CUDA 路径的新变量名(例如 `CUDA_PATH_V10_2` 对应 v10.2),并将这些新创建的条目加入全局 PATH 中。 ```plaintext Variable Name: CUDA_PATH_V10_2 Value : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp; Variable Name: CUDA_PATH_V11_7 Value : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp; ``` 随后依据实际需求更改 PATH 条目的顺序或者临时替换掉原有的通用项指向新的目标版本即可生效。 #### 切换机制设计建议 考虑到频繁手动编辑注册表可能带来风险,推荐编写批处理脚本来简化此流程。下面给出一段简单的例子展示如何快速转换至预选好的某个已知可用状态下的开发环境。 ```batch @echo off setlocal enabledelayedexpansion :: Define all possible cuda versions here as array elements. set "versions=(v10.2 v11.7)" for %%i in %versions% do ( set "_path=!PATH!" :: Remove any existing reference to other CUDA paths first. call :remove_from_path "!_path!" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA" :: Then add the desired version's path at front of _path variable. if /I "%%~i"=="v10.2" ( set "_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin;!_path!" set "_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp;!_path!" ) else if /I "%%~i"=="v11.7" ( set "_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin;!_path!" set "_path=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp;!_path!" ) echo Switching to CUDA %%~i... ) endlocal & exit /b :remove_from_path <current-path> <keyword-to-remove> set "__new=%~1" :set_loop_start if defined __new ( for /f "tokens=1,* delims=;" %%a in ("!__new!") do ( if not "%%~a"=="" ( findstr /lic:"%%~a" "%~2">nul || (set "__new=%%~b") && goto :set_loop_start ) ) ) goto :eof ``` 上述脚本实现了自动清理原有 CUDA 相关路径后再添加所请求的具体版本的功能。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Otto_1027

蟹蟹你,我会继续努力的~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值