12.8、11.8cuda版本共存
不知道为啥原本的cuda更新到12.9咯。而且我记得我原本的cuda是12.8,怎么又变成12.6咯,我记忆错乱了?由于我需要跑一些大模型需要cuda12.8,但是很多模型训练又需要cuda11.8。因此,安装2个cuda版本。第二步,只安装11.8.因为我原本是12.8的cuda,575的驱动。直接用官网的指令会新安装驱动的。第一步骤,添加仓库,这里还没有下载只是添加仓库并不不会根原本的驱动冲突
·
由于我需要跑一些大模型需要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
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)