由于我需要跑一些大模型需要cuda12.8,但是很多模型训练又需要cuda11.8。因此,安装2个cuda版本。

第一步骤,添加仓库,这里还没有下载只是添加仓库并不不会根原本的驱动冲突。

# 下载并设置优先级
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

# 添加CUDA 11.8仓库(这只是添加源,不安装任何东西)
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

第二步,只安装11.8.因为我原本是12.8的cuda,575的驱动。直接用官网的指令会新安装驱动的。

# 明确只安装工具包,不安装驱动
sudo apt-get install cuda-toolkit-11-8

这样的步骤再验证一下,没有问题。

(base) lixinru@lixinru-System-Product-Name:~$ nvidia-smi
Wed Nov 12 10:06:05 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 575.57.08              Driver Version: 575.57.08      CUDA Version: 12.9     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 Ti     Off |   00000000:01:00.0  On |                  N/A |
|  0%   38C    P8              8W /  165W |     888MiB /  16380MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1271      G   /usr/lib/xorg/Xorg                       85MiB |
|    0   N/A  N/A            1445      G   /usr/bin/gnome-shell                      3MiB |
|    0   N/A  N/A            1797      G   /usr/lib/xorg/Xorg                      438MiB |
|    0   N/A  N/A            1927      G   /usr/bin/gnome-shell                     41MiB |
|    0   N/A  N/A            7145      G   ...ess --variations-seed-version         20MiB |
|    0   N/A  N/A           21858      G   /usr/lib/firefox/firefox                175MiB |
+-----------------------------------------------------------------------------------------+
(base) lixinru@lixinru-System-Product-Name:~$ ls /usr/local/cuda-11.8/
bin                DOCS      gds      libnvvp           nvvm    src      version.json
compute-sanitizer  EULA.txt  include  nsightee_plugins  README  targets
doc                extras    lib64    nvml              share   tools
(base) lixinru@lixinru-System-Product-Name:~$ /usr/local/cuda-11.8/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
(base) lixinru@lixinru-System-Product-Name:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Tue_May_27_02:21:03_PDT_2025
Cuda compilation tools, release 12.9, V12.9.86
Build cuda_12.9.r12.9/compiler.36037853_0

好的。不知道为啥原本的cuda更新到12.9咯。而且我记得我原本的cuda是12.8,怎么又变成12.6咯,我记忆错乱了???

(base) lixinru@lixinru-System-Product-Name:~$ ls -la /usr/local/ | grep cuda
lrwxrwxrwx  1 root root   20 11月 12 10:14 cuda -> /usr/local/cuda-11.8
lrwxrwxrwx  1 root root   25 11月 12 10:01 cuda-11 -> /etc/alternatives/cuda-11
drwxr-xr-x 15 root root 4096 11月 12 10:01 cuda-11.8
lrwxrwxrwx  1 root root   25 11月  7 08:00 cuda-12 -> /etc/alternatives/cuda-12
drwxr-xr-x 15 root root 4096 11月  7 08:00 cuda-12.6
drwxr-xr-x 15 root root 4096 11月 10 10:13 cuda-12.9

算了不管了。要写一个代码来切换cuda:

sudo nano /usr/local/bin/switch_cuda

然后在里面写上:

#!/bin/bash
if [ "$1" = "11.8" ]; then
    sudo rm -f /usr/local/cuda
    sudo ln -s /usr/local/cuda-11.8 /usr/local/cuda
    echo "Switched to CUDA 11.8"
elif [ "$1" = "12.6" ]; then
    sudo rm -f /usr/local/cuda
    sudo ln -s /usr/local/cuda-12.6 /usr/local/cuda
    echo "Switched to CUDA 12.6"
elif [ "$1" = "12.9" ]; then
    sudo rm -f /usr/local/cuda
    sudo ln -s /usr/local/cuda-12.9 /usr/local/cuda
    echo "Switched to CUDA 12.9"
else
    echo "Usage: switch_cuda [11.8|12.6|12.9]"
    echo "Current CUDA: $(readlink /usr/local/cuda)"
fi

给个权限,哎~兄弟,权限给一下哈哈(脑海里自动浮现画面)

sudo chmod +x /usr/local/bin/switch_cuda

我就能自由得切换不同的cuda版本:

(base) lixinru@lixinru-System-Product-Name:~$ switch_cuda 12.6
Switched to CUDA 12.6
(base) lixinru@lixinru-System-Product-Name:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0
(base) lixinru@lixinru-System-Product-Name:~$ switch_cuda 11.8
Switched to CUDA 11.8
(base) lixinru@lixinru-System-Product-Name:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

再把环境变量给更新一下下:

nano ~/.bashrc

内容是:

# CUDA快速切换函数
cuda11() {
    export PATH=/usr/local/cuda-11.8/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/usr/local/cuda-11.8
    echo "Switched to CUDA 11.8"
}

cuda12.6() {
    export PATH=/usr/local/cuda-12.6/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/usr/local/cuda-12.6
    echo "Switched to CUDA 12.6"
}

cuda12.9() {
    export PATH=/usr/local/cuda-12.9/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH
    export CUDA_HOME=/usr/local/cuda-12.9
    echo "Switched to CUDA 12.9"
}

cudav() {
    echo "System default CUDA: $(nvcc --version | grep "release" | awk '{print $6}')"
    echo "CUDA_HOME: $CUDA_HOME"
}

记得更新噢:

source ~/.bashrc

有时候找不到就导一下路径:
 

export PATH=/usr/local/cuda/bin:$PATH

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐