bash展开代码# 下载并安装官方密钥包
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# 更新软件源缓存
sudo apt update
| 版本 | 适用场景 | 命令 |
|---|---|---|
| Server 版 | 数据中心、无显示器、计算节点 | sudo apt install nvidia-driver-570-server |
| 普通版 | 工作站、有显示器、图形界面 | sudo apt install nvidia-driver-570 |
注意:Server 版与普通版 互斥,同时安装会导致冲突!
| 方式 | 特点 | 命令 |
|---|---|---|
| 官方 CUDA Toolkit | 版本可控、功能完整、推荐 | sudo apt install cuda-toolkit-12-8 |
| Ubuntu 仓库版 | 版本固定、可能滞后、不推荐 | sudo apt install nvidia-cuda-toolkit |
展开代码# 创建环境变量文件 echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' | sudo tee /etc/profile.d/cuda.sh echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' | sudo tee -a /etc/profile.d/cuda.sh # 立即生效 source /etc/profile.d/cuda.sh # 验证 nvcc --version nvidia-smi
展开代码# 1. 从官网下载对应版本 # https://www.nvidia.cn/drivers/lookup/ wget https://us.download.nvidia.cn/XFree86/Linux-x86_64/580.65.06/NVIDIA-Linux-x86_64-580.65.06.run # 2. 添加执行权限 sudo chmod +x NVIDIA-Linux-x86_64-580.65.06.run # 3. 安装(关键参数说明) sudo ./NVIDIA-Linux-x86_64-580.65.06.run \ --no-opengl-files \ # 不安装 OpenGL(Server 场景推荐) --dkms \ # 使用 DKMS 自动重建内核模块 --silent \ # 静默安装(批量部署用) --no-x-check # 不检查 X Server(无图形界面必需) # 4. 验证 nvidia-smi
| 参数 | 作用 |
|---|---|
--no-opengl-files | 不安装 OpenGL 库,避免与 Mesa 冲突 |
--dkms | 内核升级后自动重建驱动模块 |
--silent | 无交互安装,适合脚本 |
--no-x-check | 忽略 X Server 运行状态 |
--uninstall | 卸载当前驱动 |
展开代码# 因为 cuda12.2 已经被官方下架,只能通过本地建仓库或者从官方下载 runfile 进行安装 cuda12.2 # 下载 12.2 runfile(含 535 驱动,但只装 Toolkit) wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run sudo sh cuda_12.2.0_535.54.03_linux.run --toolkit --silent --override # 写环境变量 echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' | sudo tee -a /etc/profile.d/cuda.sh echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' | sudo tee -a /etc/profile.d/cuda.sh source /etc/profile # 验证 nvcc --version # 若是没有正确返回,则重启后再次尝试
展开代码# 步骤 1:停止相关服务 sudo systemctl stop nvidia-persistenced sudo systemctl stop docker # 如使用 GPU 容器 # 步骤 2:卸载 NVIDIA 驱动包 sudo apt --purge remove nvidia* # 步骤 3:卸载 CUDA 相关包 sudo apt --purge remove "*cublas*" "cuda*" # 步骤 4:再次确认无残留 sudo apt --purge remove "*nvidia*" # 步骤 5:清理自动依赖 sudo apt autoremove sudo apt autoclean # 步骤 6:运行官方 CUDA 卸载程序(如存在) sudo /usr/local/cuda-12.8/bin/cuda-uninstaller # 步骤 7:删除残留目录 sudo rm -rf /usr/local/cuda* sudo rm -rf /opt/cuda* # 步骤 8:清理内核模块 sudo dkms status | grep nvidia # 如有输出,执行: sudo dkms remove nvidia/$(dkms status | grep nvidia | awk -F', ' '{print $2}' | head -1) --all # 步骤 9:重建 initramfs sudo update-initramfs -u # 步骤 10:重启验证 sudo reboot nvidia-smi # 应提示 command not found
展开代码# 使用官方自带的卸载脚本 sudo /usr/bin/nvidia-uninstall # 或重新运行 run 文件加 --uninstall sudo ./NVIDIA-Linux-x86_64-580.65.06.run --uninstall
展开代码# 步骤 1:停止驱动相关服务 sudo systemctl stop nvidia-persistenced # 步骤 2:尝试卸载内核模块 sudo rmmod nvidia_drm nvidia_modeset nvidia_uvm nvidia 2>/dev/null || true # 步骤 3:如模块正在使用,查找占用进程 sudo lsof /dev/nvidia* 2>/dev/null | grep -v "^COMMAND" # 步骤 4:停止占用进程(示例:停止容器、推理服务等) sudo docker stop $(sudo docker ps -q --filter "device=nvidia.com/gpu=all") 2>/dev/null || true sudo kill -9 <PID> # 替换为实际 PID # 步骤 5:确认模块已卸载 lsmod | grep -E 'nvidia|nouveau' # 应无输出 # 步骤 6:查询已安装的驱动包(精确匹配) dpkg -l | grep -E 'nvidia-(driver|dkms|kernel|utils|firmware|modprobe|persistenced)' # 步骤 7:卸载驱动包(保留 cuda-toolkit) sudo apt-get remove --purge -y \ nvidia-driver-* \ nvidia-dkms-* \ nvidia-kernel-common-* \ nvidia-firmware-* \ nvidia-utils-* \ nvidia-modprobe \ nvidia-persistenced # 步骤 8:清理 DKMS 残留 sudo dkms status | grep nvidia # 如有,执行: sudo dkms remove nvidia/$(sudo dkms status | grep nvidia | head -1 | awk -F', ' '{print $2}') --all 2>/dev/null || true # 步骤 9:删除驱动配置文件 sudo rm -rf \ /lib/modules/*/updates/dkms/nvidia* \ /etc/nvidia* \ /etc/modprobe.d/nvidia* \ /etc/udev/rules.d/*nvidia* \ /var/lib/dkms/nvidia* \ /usr/lib/nvidia* # 步骤 10:重建 initramfs sudo update-initramfs -u # 步骤 11:重启并验证 sudo reboot # 验证:驱动已卸载,CUDA 仍在 nvidia-smi # 应提示 command not found nvcc --version # 应正常显示 CUDA 版本
展开代码# 查看已加载的 NVIDIA 模块 lsmod | grep nvidia # 查看模块详细信息 modinfo nvidia # 查看模块依赖关系 modprobe --show-depends nvidia
展开代码# 基础信息 nvidia-smi # 详细信息(包括温度、功耗、ECC 等) nvidia-smi -q # 只看显存信息(指定 GPU 0) nvidia-smi -q -d MEMORY -i 0 # 持续监控(每秒刷新) nvidia-smi -l 1 # 查看进程占用 nvidia-smi pmon -s um
展开代码# 驱动版本 cat /proc/driver/nvidia/version # CUDA 版本(多方式) nvcc --version cat /usr/local/cuda/version.json 2>/dev/null || true ls -la /usr/local/cuda | grep -Po '\d+\.\d+'
本文作者:zzz
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!