【Linux】Linux系统中升级CUDA到最新版本
在Linux系统中升级CUDA到最新版本(例如CUDA Toolkit 12.6),需要确保系统兼容性、卸载旧版本、安装新版本并验证安装。以下是清晰有序的步骤,适用于Ubuntu/Debian或Red Hat/CentOS等常见Linux发行版,涵盖环境准备、安装方法和注意事项。
1. 前期准备
1.1 检查系统兼容性
- 确认GPU支持CUDA:
检查系统中是否有NVIDIA GPU:
验证GPU是否在NVIDIA支持列表中:访问 NVIDIA CUDA GPUs。lspci | grep -i nvidia
- 检查Linux版本:
确认发行版和版本(CUDA支持Ubuntu、Debian、Fedora、CentOS等):
或:lsb_release -a
cat /etc/os-release
- 检查GCC版本:
CUDA需要兼容的GCC版本(例如,CUDA 12.6支持GCC 11.x或更低)。检查当前版本:
如需安装或切换GCC版本:gcc --version
sudo apt install gcc-11 g++-11 # Ubuntu/Debian sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 50
1.2 验证当前CUDA版本
检查已安装的CUDA版本(若有):
nvcc --version
或:
nvidia-smi
nvcc --version
显示CUDA Toolkit版本。nvidia-smi
显示驱动支持的CUDA版本(可能与Toolkit版本不同)。
1.3 备份系统
升级前建议备份重要数据,以防安装失败或系统问题。
2. 卸载旧版本CUDA(可选)
若系统已安装旧版CUDA,建议卸载以避免冲突。
2.1 卸载通过包管理器安装的CUDA
- Ubuntu/Debian:
sudo apt purge nvidia-cuda-toolkit cuda* sudo apt autoremove
- CentOS/RHEL:
sudo yum remove cuda nvidia-cuda-toolkit
2.2 卸载通过.run文件安装的CUDA
若使用NVIDIA提供的.run安装包:
- 查找安装目录(通常为
/usr/local/cuda-X.Y
)。 - 删除目录:
sudo rm -rf /usr/local/cuda-X.Y
- 检查环境变量,移除旧CUDA路径:
删除类似以下行:nano ~/.bashrc
保存并生效:export PATH=/usr/local/cuda-X.Y/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-X.Y/lib64:$LD_LIBRARY_PATH
source ~/.bashrc
2.3 验证卸载
运行以下命令,确保旧版本已移除:
nvcc --version
应提示命令不存在。
3. 安装最新CUDA Toolkit(12.6)
3.1 方法1:使用NVIDIA官方包管理器(推荐)
此方法通过添加NVIDIA仓库安装,适合Ubuntu/Debian和CentOS/RHEL,易于管理和升级。
Ubuntu/Debian
-
下载并添加NVIDIA CUDA仓库:
访问 NVIDIA CUDA Toolkit 下载页面,选择适合的平台(例如,Ubuntu 22.04,x86_64,deb (local))。执行提供的命令,例如:wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
-
更新包索引并安装CUDA:
sudo apt update sudo apt install cuda
cuda
是一个元包,会安装最新版本的CUDA Toolkit(12.6)和兼容的NVIDIA驱动。
-
配置环境变量:
编辑~/.bashrc
:nano ~/.bashrc
添加:
export PATH=/usr/local/cuda-12.6/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH
生效:
source ~/.bashrc
CentOS/RHEL
- 添加NVIDIA CUDA仓库:
执行类似以下命令(根据发行版调整,例如RHEL 8):sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
- 安装CUDA:
sudo dnf install cuda
- 配置环境变量:
同Ubuntu,编辑~/.bashrc
添加路径。
3.2 方法2:使用.run文件安装
适用于需要自定义安装或离线环境的场景。
- 下载.run安装包:
访问 NVIDIA CUDA Toolkit 下载页面,选择.run文件。例如:wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_555.42.02_linux.run
- 运行安装:
sudo sh cuda_12.6.0_555.42.02_linux.run
- 按提示选择安装选项(可选择不安装驱动程序,仅安装Toolkit)。
- 默认安装路径为
/usr/local/cuda-12.6
。
- 配置环境变量:
同上,编辑~/.bashrc
添加路径。
3.3 方法3:使用Conda安装(Anaconda环境)
适用于深度学习用户,集成TensorFlow/PyTorch。
- 激活Conda环境:
conda activate your_env_name
- 安装CUDA Toolkit:
conda install -c nvidia cudatoolkit=12.6
- 验证:
nvcc --version
4. 验证安装
- 检查CUDA版本:
预期输出示例:nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver Cuda compilation tools, release 12.6, V12.6.68
- 检查NVIDIA驱动和CUDA兼容性:
确认驱动版本和CUDA版本(例如,驱动支持CUDA 12.6)。nvidia-smi
- 编译示例程序:
下载NVIDIA CUDA样本:
若输出表明测试通过,CUDA安装成功。git clone https://github.com/NVIDIA/cuda-samples.git cd cuda-samples/Samples/0_Introduction/vectorAdd make ./vectorAdd
5. 升级cuDNN(可选)
cuDNN是深度学习加速库,常与CUDA一起使用。
- 注册NVIDIA开发者账户:
访问 NVIDIA cuDNN 下载页面,登录并下载与CUDA 12.6兼容的cuDNN(例如,cuDNN 9.x)。 - 解压并安装:
tar -xvf cudnn-linux-x86_64-9.x.x.x_cuda12.x-archive.tar.xz sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-12.6/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-12.6/lib64 sudo chmod a+r /usr/local/cuda-12.6/include/cudnn*.h /usr/local/cuda-12.6/lib64/libcudnn*
- 验证:
检查cuDNN版本(需要运行依赖cuDNN的程序,如TensorFlow)。
6. 注意事项与常见问题
6.1 驱动版本不兼容
- 问题:
nvidia-smi
显示CUDA版本低于12.6。 - 解决:更新NVIDIA驱动:
或从 NVIDIA驱动下载页面 获取最新驱动。sudo apt install nvidia-driver-555
6.2 安装冲突
- 问题:旧CUDA残留导致安装失败。
- 解决:彻底卸载旧版本(见步骤2),检查
/usr/local/
下是否有旧CUDA目录。
6.3 环境变量未生效
- 问题:
nvcc
命令未找到。 - 解决:确认
~/.bashrc
中的PATH
和LD_LIBRARY_PATH
设置正确,并运行:source ~/.bashrc
6.4 多版本共存
- CUDA支持并行安装(side-by-side)。安装到不同目录(如
/usr/local/cuda-12.6
),使用符号链接切换版本:
或通过sudo ln -sf /usr/local/cuda-12.6 /usr/local/cuda
update-alternatives
管理:sudo update-altern system cuda /usr/local/cuda-12.6
6.5 权限问题
- 确保使用
sudo
执行安装命令,安装目录(如/usr/local/cuda
)有正确权限:sudo chown -R root:root /usr/local/cuda-12.6
7. 总结
升级CUDA到最新版本(12.6)的步骤:
- 检查系统兼容性(GPU、Linux版本、GCC)。
- 卸载旧版本CUDA(若需要)。
- 通过包管理器或.run文件安装CUDA 12.6。
- 配置环境变量(
PATH
和LD_LIBRARY_PATH
)。 - 验证安装(
nvcc --version
和示例程序)。 - (可选)升级cuDNN以支持深度学习。
参考资源:
- NVIDIA CUDA Toolkit 下载
- NVIDIA CUDA 安装指南
- NVIDIA cuDNN 下载
- Ubuntu CUDA 安装教程