CUDA 12.4 升 12.8 踩过的坑:驱动版本、容器镜像、PyTorch 编译链全梳理
Blackwell 架构的 5090 只认 CUDA 12.8+,老机器跑 12.4 想统一版本,升级前先看清依赖链,别无脑 apt upgrade。
驱动版本是第一道坎
CUDA 12.8 要求 Driver ≥ 570.xx。老机器跑 550 驱动直接装 12.8 toolkit 会报版本错,但 nvcc 能编、nvidia-smi 起不来——比直接报错更坑,因为你会以为装好了。
# 先确认当前驱动
nvidia-smi | head -3
cat /proc/driver/nvidia/version
# 驱动升级走官方仓库,别走 Ubuntu 自带源
# 570-server 分支比 570-desktop 稳,生产用 server
容器镜像断裂
- nvidia/cuda:12.4-devel 镜像里 apt 源指向 12.4 仓库,升到 12.8 后部分 dev 包版本冲突
- 解法:FROM 层换 12.8 基础镜像重 build,别在 12.4 容器里 inplace 升
- 已跑的容器别动,新容器用新镜像,灰度切
PyTorch 编译链
PyTorch 2.6+ 才完整支持 CUDA 12.8 + Blackwell。低于 2.6 的版本即使编译过,FP4/FP8 算子会 fallback 到 FP16,性能差 30-40%。
# 确认 torch 是否真的在用 12.8
python -c "import torch; print(torch.version.cuda)"
# 显示 12.8 才算对
# 源码编译要重配 CMAKE_CUDA_ARCHITECTURES
# 5090 是 sm_120,不加这个 flag 编出来跑不了
升级顺序
- 驱动先升(重启确认 nvidia-smi 正常)
- CUDA toolkit 升(多版本共存用 update-alternatives 切)
- 容器镜像重 build
- PyTorch 重装或重编
- 跑 benchmark 对比 12.4 性能,确认没回退
达拉斯 GPU 节点预装 12.8 + 570 驱动,开箱不用自己升:云数方舟美国 GPU 独立服务器