2、环境搭建:vLLM的安装、依赖环境配置、GPU驱动与CUDA版本要求、验证安装

好,咱们直接进入正题。环境搭建这事儿,说难不难,说简单吧,我见过太多同学卡在这一步。说白了,vLLM 对底层环境的要求比较「挑剔」,尤其是 GPU 驱动和 CUDA 版本。你想想看,推理框架跑不起来,后面再好的优化技巧都是白搭。

我个人习惯是,在搭建任何 AI 推理环境之前,先列一个清单。嗯,咱们就按这个清单一步步来。

2.1 硬件与操作系统要求

先看看你的机器够不够格。vLLM 目前主要跑在 NVIDIA GPU 上,AMD ROCm 的支持还在实验阶段。我建议你直接用 Linux,Ubuntu 20.04 或 22.04 是最省心的选择。

硬件/软件 最低要求 推荐配置
GPU NVIDIA T4 (16GB) A100 80GB / H100
显存 16 GB 80 GB 或以上
系统内存 32 GB 128 GB 或以上
操作系统 Ubuntu 20.04 Ubuntu 22.04
Python 3.8 3.10 - 3.12
⚠️ 注意: 千万别在 Windows 上直接跑 vLLM 生产环境。我曾经试过在 WSL2 里折腾,结果性能损失惨重,而且很多底层算子根本调不通。老老实实用 Linux 吧。

2.2 GPU 驱动与 CUDA 版本

这是最容易踩坑的地方。vLLM 依赖 CUDA 12.1 或更高版本。为什么?因为它用到了很多新的 GPU 特性,比如 FlashAttention 和 PagedAttention 的底层优化。

先检查你的驱动:

nvidia-smi

你会看到类似这样的输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08    Driver Version: 545.23.08    CUDA Version: 12.3     |
+-----------------------------------------------------------------------------+

关键看两行:Driver VersionCUDA Version。驱动版本至少 525.60.13 以上,CUDA 版本必须 ≥ 12.1。

💡 小技巧: 如果你用的是数据中心 GPU(比如 A100、H100),我建议直接装最新的数据中心驱动(Data Center Driver)。普通 Game Ready 驱动也能用,但稳定性差一些。

如果驱动版本不够,去 NVIDIA 官网下载对应驱动。安装命令很简单:

# 卸载旧驱动(如果有)
sudo apt-get purge nvidia-*

# 安装新驱动
sudo chmod +x NVIDIA-Linux-x86_64-545.23.08.run
sudo ./NVIDIA-Linux-x86_64-545.23.08.run

装完重启,再跑 nvidia-smi 确认。

2.3 安装 CUDA Toolkit

驱动搞定后,CUDA Toolkit 其实可以不用单独装。因为 vLLM 的 pip 包会自动拉取 PyTorch 自带的 CUDA 运行时。但如果你需要编译自定义算子,那就得装。

我个人习惯用 conda 管理环境,干净利落:

# 创建虚拟环境
conda create -n vllm_env python=3.10
conda activate vllm_env

# 安装 PyTorch(CUDA 12.1 版本)
pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu121
🔑 关键点: PyTorch 的 CUDA 版本必须和你的驱动支持的 CUDA 版本匹配。比如驱动显示 CUDA 12.3,那 PyTorch 选 cu121 或 cu118 都行,但不能选 cu117。

2.4 安装 vLLM

环境准备好后,安装 vLLM 就一行命令:

pip install vllm

等等,别急着跑。我建议你先设置一个环境变量,避免编译时出幺蛾子:

export MAX_JOBS=4
pip install vllm

MAX_JOBS=4 是限制并行编译的线程数。你想想看,如果服务器上还有其他人在用 GPU,编译时把 CPU 占满,大家都不好过。我一般设成 4 或 8,看 CPU 核心数。

安装过程会编译一些 C++ 和 CUDA 扩展,大概需要 5-15 分钟。如果看到类似这样的输出,说明在正常编译:

Building wheel for vllm (setup.py) ... 
  - Building kernel 'attention' for GPU sm_80
  - Building kernel 'paged_attention' for GPU sm_80
⚠️ 常见错误: 如果报错 CUDA_HOME not set,说明系统找不到 CUDA 路径。执行 export CUDA_HOME=/usr/local/cuda-12 即可。我遇到过好几次,都是因为 conda 环境把 CUDA 路径搞乱了。

2.5 验证安装

装完了,怎么知道能不能用?写个简单的 Python 脚本验证一下:

from vllm import LLM, SamplingParams

# 加载一个很小的模型做测试
llm = LLM(model="facebook/opt-125m")

# 设置采样参数
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

# 跑一次推理
outputs = llm.generate(["Hello, my name is"], sampling_params)

# 打印结果
for output in outputs:
    print(output.outputs[0].text)

如果看到模型输出了完整的句子,恭喜你,环境搭建成功了!

我再教你一个更彻底的验证方法——检查 vLLM 是否正确识别了 GPU 和 CUDA 能力:

import vllm
print(vllm.__version__)

# 检查 GPU 信息
from vllm.utils import get_gpu_memory
print(f"GPU 显存: {get_gpu_memory()} GB")

输出应该类似:

0.4.2
GPU 显存: 79.15 GB
💡 小技巧: 如果你有多张 GPU,可以用 CUDA_VISIBLE_DEVICES=0,1 指定使用哪几张。我一般先只用一张卡测试,确认没问题再开多卡。

2.6 常见问题与避坑指南

这里我总结几个高频问题,都是我在项目中真实遇到过的:

  • 「CUDA out of memory」:模型太大,显存不够。换小模型,或者用 --gpu-memory-utilization 0.8 限制显存使用率。
  • 「RuntimeError: NCCL error」:多卡通信问题。检查 nccl 版本,或者设置 export NCCL_DEBUG=INFO 看详细日志。
  • 「ImportError: libcuda.so.1 not found」:驱动没装好,或者 LD_LIBRARY_PATH 没设置。执行 sudo ldconfig 刷新库缓存。

我曾经在一个客户的服务器上折腾了整整一下午,最后发现是驱动版本太老,连 CUDA 11.8 都不支持。嗯,从那以后我每次搭建环境,第一件事就是 nvidia-smi 确认驱动版本。

2.7 知识体系总览

为了让你对整个环境搭建有个全局认识,我画了一张流程图:

vLLM 环境搭建核心流程 步骤1:硬件检查 GPU型号 / 显存 / 系统内存 步骤2:驱动与CUDA nvidia-smi / CUDA ≥ 12.1 步骤3:安装vLLM pip install vllm 步骤4:验证安装 运行测试脚本 / 检查GPU识别 ✅ 成功:开始推理优化 ❌ 失败:检查驱动/依赖

这张图把整个流程串起来了。你按照这个顺序走,基本不会出大问题。记住一个原则:先硬件,再驱动,最后装框架。顺序反了,后面全是坑。


好了,环境搭建就讲到这里。下一节咱们会深入 vLLM 的核心——动态批处理调度器,看看它到底是怎么把多个请求塞进 GPU 的。嗯,那才是真正有意思的地方。