先交代一下背景。我前两天刚在某云厂商的 GPU 实例上重新配了一遍 Ubuntu 22.04 的 NVIDIA 驱动和 CUDA 环境,整个过程踩了不少坑。这个活看起来就是两条命令的事,真上手了才发现,驱动、CUDA、显卡型号、内核版本、云平台虚拟化环境,哪一环不对都能卡你半天。如果你也是刚开了台带 GPU 的云服务器,正准备装驱动和 CUDA,那这篇文章应该能帮你少走很多弯路。
云服务器装 NVIDIA 驱动和 CUDA,和本地物理机最大的不同在于:你没有显示输出,系统大概率是纯命令行,而且云平台对 GPU 的虚拟化方式(直通、MIG、vGPU)会影响驱动下载选择的型号。很多人在本地装没问题,一到云服务器上就懵,原因基本都是没搞清楚这几点。
我把整个实操过程、版本选择的逻辑、以及装完后常见的坑都整理在下面了。内容比较长,建议先收藏,真正开装的时候照着一步步来。
1. 为什么要折腾:云服务器、驱动、CUDA 这三者的关系
1.1 GPU 云服务器到底在解决什么问题
先说清楚一个概念:GPU 云服务器,本质就是一台把 NVIDIA GPU 通过虚拟化或直通方式挂在虚拟机里的服务器。你买的不是一张显卡,而是一个包含 CPU、内存、网络、GPU 的计算单元。
所以你在本地攒机子时的那套"插上显卡、开机、装驱动"的流程,在云服务器上变成了:创建实例、远程登录、在命令行里装驱动。区别在于,本地装驱动后黑屏你可以接显示器排查,云端黑屏了你只能靠 SSH 和系统日志诊断,操作难度完全不是一个量级。
我这次用的是 Ubuntu 22.04 系统,这也是云平台上最主流的 GPU 实例操作系统。为什么选它而不是 CentOS/Rocky?因为 PyTorch、TensorFlow、最新版 CUDA 对 Ubuntu 的支持最好,官方文档示例基本都以 Ubuntu 为主。如果你跑深度学习或 AI 推理,Ubuntu 是第一选择;如果你跑的是传统 HPC 或者有历史包袱的工业软件,再考虑 RHEL 系。
1.2 驱动、CUDA、cuDNN 的分工,用做饭来类比
很多新手分不清"显卡驱动"和"CUDA"到底什么关系。我打个比方:驱动是灶台点火器,决定火能不能烧起来;CUDA 是锅,决定你能炒什么菜;cuDNN 是菜谱里的精密调料包,深度学习框架直接调用它来加速卷积等操作。
具体来说:
- NVIDIA 驱动:负责操作系统和 GPU 硬件之间的通信。装好驱动后,
nvidia-smi能显示 GPU 信息,但此时还不能跑 CUDA 程序。 - CUDA Toolkit:包括编译器
nvcc、运行时库、CUDA 开发库。装好驱动和 CUDA 后,你才能编译运行 CUDA C/C++ 代码,PyTorch、TensorFlow 才能调用 GPU。 - cuDNN:深度学习加速库,专门优化卷积、循环神经网络等算子。跑 PyTorch 时通常也需要装,但要匹配 CUDA 版本。
驱动和 CUDA 不是同一个东西,这一定要记住。驱动是基础,CUDA Toolkit 是上层建筑。很多问题(比如"装完 CUDA 后跑 PyTorch 提示找不到显卡")追根究底都是驱动和 CUDA 版本不匹配。
1.3 安装前必须做好的三件准备
准备工作做得越足,后面翻车概率越低。我列的这三件事,每一件都值得你先花几分钟做好。
第一,确认显卡型号和云平台虚拟化类型。 登录服务器后执行 lspci | grep -i nvidia,能看到 GPU 型号,比如 NVIDIA Corporation GA102 [A100] 或者 AD102 [RTX 4090]。注意有些云平台显示的是 TESLA T4、A10、L40S 这类专业卡,它们同样用于计算。如果 lspci 看不到 NVIDIA 设备,先检查你是否真的选了 GPU 实例,或者联系云厂商确认 GPU 是否已挂载。
第二,确认系统版本和内核版本。 执行 cat /etc/os-release 和 uname -r。Ubuntu 22.04 的内核通常在 5.15 到 6.8 之间。驱动安装包和内核版本有一定关联,尤其是用 runfile 方式安装时,需要内核头文件和编译工具链。内核版本太新或太旧,都会影响驱动的编译和加载。
第三,确认网络可以访问 NVIDIA 官方源。 云服务器在国内的话,默认源可能已经很慢,NVIDIA 的官网和 apt 源也有访问失败的情况。建议先配置好清华源或阿里源,再安装基础依赖。NVIDIA 驱动包我建议直接用官网下载,或者配置 NVIDIA 官方 apt 源,这一点下文会展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. NVIDIA 驱动安装全流程:两种方案,按需选择
2.1 方案一:apt 自动安装,最省心但不够灵活
如果你只是想尽快把驱动装上,不管版本细节,用系统自带的 apt 是最快的。Ubuntu 22.04 的软件源里有 nvidia-driver-525、nvidia-driver-535、nvidia-driver-545 等版本,直接安装即可。
bash复制# 更新源
sudo apt update
# 查询可用的驱动版本和推荐版本
ubuntu-drivers devices
# 安装推荐驱动(会自动选一个)
sudo apt install -y nvidia-driver-535
# 或者直接安装系统推荐的
sudo ubuntu-drivers autoinstall
# 安装完成后重启
sudo reboot
重启后用 nvidia-smi 验证。这种方式适合对驱动版本没有特殊要求的场景,比如你只是想跑一个 PyTorch 项目,而 PyTorch 对驱动版本要求其实很低,只要驱动支持 CUDA 12.x 就行。
但我必须
