安装多版本cuda,实现不同版本CUDA切换
背景:目前已安装12.4,加装11.3

参考:
参考一:ubuntu22.04系统安装CUDA多个版本,且自由切换
参考二:Ubuntu安装两个版本cuda(cuda12.2和cuda11.8),不同虚拟环境用不同cuda
用参考一的方法安装cuda和cudnn,然而参考一的切换cuda版本的方法是修改软链接指向,但是这样会使得所有环境以及所有账户的cuda版本都改变,会影响其他人,所以用参考二的方法实现切换cuda。
安装cuda 11.3
下载地址:https://developer.nvidia.com/cuda-11.3.0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local
按以下步骤安装:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda11.3*
查看cuda安装路径
cd /usr/local
路径中有两个CUD版本索说明安装成功

安装cudnn 8.9.7 for cuda11.x
下载地址:https://developer.nvidia.com/rdp/cudnn-archive

解压完成后,在解压后的目录下打开一个终端,依次执行如下命令即可。
sudo cp cudnn/include/cudnn.h /usr/local/cuda-11.3/include
sudo cp cudnn/lib/libcudnn* /usr/local/cuda-11.3/lib64
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn.h /usr/local/cuda-11.3/lib64/libcudnn*
实现CUDA版本切换
1. 创建conda环境
进入Conda 环境后,创建并编辑一个 env_vars.sh 文件,用来配置环境变量以指向特定的 [CUDA 版本](https://so.csdn.net/so/search?q=CUDA 版本&spm=1001.2101.3001.7020)。这个文件可以放在 Conda 环境的根目录下。
2. 安装 env_vars.sh 文件
(1)找到 Conda 环境的路径:
运行conda info --envs假设 Conda 环境位于 /home/username/anaconda3/envs/myenv。
(2)创建 env_vars.sh 文件:
gedit /home/username/miniconda3/envs/myenv/env_vars.sh
(3)在 env_vars.sh 中添加以下内容:
#!/bin/bash
export CUDA_HOME=/usr/local/cuda-11.3
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
根据你服务器上 CUDA 11.3 的实际安装路径进行调整(通常是 /usr/local/cuda-11.3)。
3. 配置 conda 激活脚本
mkdir -p /home/username/anaconda3/envs/myenv/etc/conda/activate.d
gedit /home/username/anaconda3/envs/myenv/etc/conda/activate.d/env_vars.sh
在文件中添加以下内容:
#!/bin/bash
source /home/username/miniconda3/envs/myenv/env_vars.sh
4.(可选)配置 deactivate.d 脚本
为了在退出当前 Conda 环境时还原环境变量,建议配置 deactivate.d 脚本。
mkdir -p /home/username/anaconda3/envs/myenv/etc/conda/deactivate.d
gedit /home/username/anaconda3/envs/myenv/etc/conda/deactivate.d/env_vars.sh
在文件中添加以下内容:
#!/bin/bash
unset CUDA_HOME
unset PATH
unset LD_LIBRARY_PATH
5.激活Conda 环境,并验证是否成功切换到 CUDA 11.3:
conda activate myenv
nvcc --version
存在的问题
退出当前虚拟环境后,在当前控制台输入的命令都会显示找不到文件夹,但是重新打开一个控制台又恢复正常,还没找到原因。

3万+

被折叠的 条评论
为什么被折叠?



