由于 tensorflow 和 torch 的各个版本对 CUDA 的版本要求极为严格,所以对于自由切换 CUDA 版本甚为需要,并且不要改变最新的显卡驱动。

1、首先下载 CUDA12.5CUDA11.8 的两个 .run 文件到 Downloads 中。因为只有 .run 文件才不会强制覆盖显卡驱动。

1
2
3
4
5
6
7
8
9
10
11
12
cd ~/Downloads

# 下载CUDA12.5
wget https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux.run
sudo sh cuda_12.5.1_555.42.06_linux.run

# 下载CUDA11.8
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

# cuda 10
wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux

tensorflow 与 cuda 版本对照表在 https://www.tensorflow.org/install/source?hl=en#gpu

2、添加以下内容到 ~/.zshrc 中,通过添加环境变量,可以使用 nvcc --version 查看版本。

1
2
3
export CUDA_HOME="/usr/local/cuda"
export PATH="$CUDA_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"

3、切换 CUDA 版本只需要重建软链接即可。

1
2
3
4
5
# 删除原有的软链接
sudo rm -rf /usr/local/cuda

# 重建新的软链接
sudo ln -s /usr/local/cuda-12.5 /usr/local/cuda

参考链接:安装多版本 cuda ,多版本之间切换