在 x86 服务器上搞 AI 推理开发,选 Ubuntu 版本的核心逻辑其实就一条:跟 NVIDIA CUDA Toolkit 和 cuDNN 的官方支持列表强绑定。
别听那些“新系统功能多”、“内核更新更友好”的废话。在 AI 这个圈子里,稳定性压倒一切。你不需要最新的内核特性,你需要的是驱动、CUDA、PyTorch/TensorFlow 能一次性装好,跑起来不崩。
直接给结论
首选:Ubuntu 22.04 LTS (Jammy Jellyfish)
次选(如果硬件极新):Ubuntu 24.04 LTS (Noble Numbat)
避坑:不要选 20.04(除非你的 GPU 很老或必须兼容遗留项目),绝对不要用非 LTS 版本(如 23.10)。
为什么是 22.04?深度解析
1. NVIDIA 驱动的“舒适区”
AI 推理依赖 NVIDIA GPU(目前国内主流还是卡夫系列或 A10/H100 等数据中心卡)。NVIDIA 的闭源驱动对 Linux 内核版本有严格限制。
- Ubuntu 22.04 默认搭载的内核版本(5.15/5.19 系列)与当前主流的 NVIDIA Driver(535, 550, 560+)兼容性极好。
- 你在官网上下载
.run文件或者用apt install nvidia-driver-xxx时,几乎不会遇到“内核头文件缺失”或“模块签名失败”这种让人抓狂的问题。 - 相比之下,Ubuntu 24.04 虽然内核更新(6.8+),但对某些旧版 NVIDIA 驱动的支持可能需要手动编译 DKMS,对于追求“开箱即用”的开发环境来说,增加了不必要的调试成本。
2. CUDA 版本的完美匹配
AI 框架(PyTorch, TensorRT, ONNX Runtime)发布的预编译包,通常是针对特定 CUDA 版本构建的。
- CUDA 12.x 系列 是目前的主流。NVIDIA 官方推荐的 OS 就是 Ubuntu 22.04。
- 如果你在 22.04 上安装 CUDA 12.4 或 12.6,配合 PyTorch 2.1+,一切丝滑顺畅。
- 如果你强行上 Ubuntu 24.04,虽然也支持 CUDA 12.x,但部分第三方库(比如一些老旧的 TensorFlow 插件或自定义 C++ 算子)可能会因为 glibc 版本差异(2.35 vs 2.39)出现链接错误,排查起来非常痛苦。
3. 云厂商镜像的成熟度
你提到熟悉国内云厂商。阿里云、腾讯云、华为云等,他们的 ECS/GPU 实例镜像中:
- Ubuntu 22.04 是现成的、经过充分测试的镜像,预装了基础优化脚本。
- 很多云厂商的“AI 提速镜像”或“GPU 驱动自动安装工具”,首先支持的也是 22.04。
- 24.04 刚出来不久,部分云平台的自动化运维工具链可能还没完全跟上,容易出现“买了机器发现驱动没自动装上”的尴尬情况。
什么情况下选 24.04?
只有当你的服务器使用的是 最新一代的 CPU 平台(如 Intel Ultra 系列、AMD Ryzen 9000 系列服务器级处理器),且这些 CPU 需要较新的内核才能正确识别内存控制器或 PCIe 拓扑时,才考虑 24.04。
否则,对于绝大多数使用 Xeon/Epyc + A10/A800/L40S 的组合,22.04 是最稳妥的选择。
实战建议:如何搭建一个“抗造”的推理环境
既然你要做推理开发,我建议你别直接在裸机 Ubuntu 上瞎折腾。按下面这套流程走,能省掉 80% 的坑:
方案一:Docker + NGC 容器(推荐!)
这是目前最标准、最可复现的做法。不管宿主系统是 22.04 还是 24.04,只要装了 Docker 和 NVIDIA Container Toolkit,你拉取的镜像里包含完整的 CUDA/cuDNN/Python 环境。
# 1. 确保安装了 nvidia-container-toolkit
sudo apt update
sudo apt install nvidia-container-toolkit
sudo systemctl restart docker
# 2. 拉取 NVIDIA 官方优化的 PyTorch 镜像(以 22.04 为基础)
docker pull nvcr.io/nvidia/pytorch:24.01-py3
# 3. 启动容器,直通 GPU
docker run --gpus all -it --name ai-inference nvcr.io/nvidia/pytorch:24.01-py3 /bin/bash
优点:环境隔离,换机器迁移方便,不会因为系统升级导致 Python 依赖炸裂。
方案二:Conda + 虚拟环境(适合轻量级开发)
如果你不想用 Docker,那就用 Conda。但记住,不要在 base 环境里装任何东西。
# 创建独立环境
conda create -n infer_env python=3.10
# 激活环境
conda activate infer_env
# 安装 PyTorch(务必从官网复制对应 CUDA 版本的命令,例如 CUDA 12.1)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
关键检查清单
无论选哪个版本,装机后第一件事:
- 更新内核到最新稳定版:
sudo apt update && sudo apt upgrade linux-image-generic - 安装 NVIDIA 驱动:优先用
ubuntu-drivers autoinstall,或者去 NVIDIA 官网下载对应你 GPU 型号的.run文件(注意关闭 secure boot,否则驱动无法加载)。 - 验证:
nvidia-smi # 看驱动版本 nvcc --version # 看 CUDA 编译器版本(可选,通常通过 conda/pip 安装运行时即可) python -c "import torch; print(torch.cuda.is_available())" # 确认 PyTorch 能调用 GPU
总结
- 求稳、求兼容、求快速上线:Ubuntu 22.04 LTS。
- 硬件极新、愿意折腾、需要最新内核特性:Ubuntu 24.04 LTS。
- 核心原则:系统只是载体,容器化部署才是解决 AI 环境碎片化的终极方案。别让操作系统版本成为你推理延迟的瓶颈。
云技术博客