(该操作尽量不要在公司/课题组服务器上面用sudo更改任何环境变量,不然挨领导和同事骂很正常)
1.运行 sudo sh cuda_11.8.0_520.61.05_linux.run 安装 CUDA 11.8 时,确保安装路径指向自定义目录,
sudo sh cuda_11.8.0_520.61.05_linux.run --silent --toolkit --override --installpath=/usr/local/cuda-11.8
这里
--silent:静默安装
--toolkit:仅安装 CUDA Toolkit,不安装驱动(避免影响已有驱动)
--override:忽略驱动检查
--installpath=/usr/local/cuda-11.8:指定安装路径
2.运行以下命令来列出 /usr/local 目录下的 CUDA 安装路径:ls /usr/local
输出中会列出所有在该目录下的文件夹,包括每个 CUDA 版本,例如:
cuda-12.2
cuda-11.8
cuda-10.2
3.用 update-alternatives 方便地切换 CUDA 版本:
先执行:
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-12.2 100
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.8 50
然后切换:
(sudo 不能用)update-alternatives --config cuda
系统会让你选择 CUDA 版本,例如:
There are 2 choices for the alternative cuda (providing /usr/local/cuda).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/local/cuda-12.2 100 auto mode
1 /usr/local/cuda-12.2 100 manual mode
2 /usr/local/cuda-11.8 50 manual mode
Press <enter> to keep the current choice[*], or type selection number:
输入 2 选择 CUDA 11.8。
4. 永久生效,快速全局切换 CUDA 版本:
如果你想方便地切换 CUDA 版本,可以定义一个脚本:
echo 'function switch_cuda() { sudo update-alternatives --config cuda; source ~/.bashrc; }' >> ~/.bashrc
source ~/.bashrc
以后只需要运行 switch_cuda,就可以快速全局切换 CUDA 版本
5.不影响系统的默认版本CUDA12.2环境,用环境变量手动指定 CUDA 11.8路径
方法1.
在要使用 CUDA 11.8 的 Conda 环境中(例如 czy),创建以下文件夹和脚本:
mkdir -p ~/anaconda3/envs/czy/etc/conda/activate.d
mkdir -p ~/anaconda3/envs/czy/etc/conda/deactivate.d
编写激活脚本来设置 CUDA 版本为 11.8
在 activate.d 文件夹中创建一个名为 cuda.sh 的激活脚本:
echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/anaconda3/envs/czy/etc/conda/activate.d/cuda.sh
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/anaconda3/envs/czy/etc/conda/activate.d/cuda.sh
这将确保在 czy 环境被激活时,CUDA 11.8 的路径被添加到环境变量中。
在 deactivate.d 文件夹中创建一个名为 cuda.sh 的脚本,内容如下:
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/anaconda3/envs/czy/etc/conda/deactivate.d/cuda.sh
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/anaconda3/envs/czy/etc/conda/deactivate.d/cuda.sh
这样,每次退出 czy 环境时,CUDA 版本会自动切换回系统默认的 CUDA 12.2。
测试切换效果
conda activate czy
nvcc --version
显示 CUDA 11.8。
conda deactivate
nvcc --version
显示 CUDA 12.2。
方法2.
对于 czy 环境,希望使用 CUDA 11.8
激活 czy 环境:conda activate czy
将 CUDA 11.8 路径添加到该环境的 ~/.bashrc 文件中,修改 ~/.bashrc 或者 ~/.bash_profile 以确保每次激活该环境时会加载特定版本的 CUDA:nano ~/.bashrc
在文件的末尾添加以下内容:
# 设置 CUDA 11.8
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
然后运行:source ~/.bashrc
在 czy 环境中,验证 CUDA 版本:nvcc --version
应该看到 CUDA 11.8 的版本信息。