3、硬件要求:GPU型号与显存需求、CPU与内存配置、多卡环境考虑

核心原理:为什么硬件配置决定 vLLM 的部署上限

vLLM 的核心优势在于通过 PagedAttention 和 Continuous Batching 技术,将显存利用率提升到传统推理框架的 2~4 倍。但无论软件优化多么出色,物理硬件的边界始终是部署方案的“天花板”。理解硬件要求,本质上是理解三个关键约束:模型权重驻留空间、KV Cache 动态空间以及计算单元吞吐能力。

模型权重所需显存可以精确估算:对于 FP16 精度,每 10 亿参数约占用 2GB 显存。例如 7B 模型需要约 14GB,70B 模型则需要约 140GB。KV Cache 则随并发请求数和序列长度动态增长,vLLM 默认预留显存的 30% 作为 KV Cache 池,但实际需求可能更高。GPU 的计算能力(FLOPS)和显存带宽决定了 token 生成速度,而 CPU 和内存则负责数据预处理、调度和落盘,避免成为瓶颈。

核心公式: 总显存需求 ≈ 模型权重(FP16)+ KV Cache 预留 + 激活值开销 + 推理引擎自身开销(约 1~2GB)
vLLM 硬件资源分配全景图 GPU 显存分配(以 24GB 为例) 模型权重(FP16)≈ 14GB(7B 模型) KV Cache 池 ≈ 7GB(默认预留 30%) 激活值 ≈ 1GB 引擎开销 ≈ 1~2GB GPU 计算核心(SM) CPU 与内存配置 CPU 核心 ≥ 8 核 内存 ≥ 32GB 数据预处理 / Tokenizer / 调度 多卡互联:NVLink / PCIe 4.0 / RDMA 数据 关键结论 显存决定模型能否加载,KV Cache 决定并发上限,CPU/内存决定数据供给速度,多卡互联决定扩展效率

方法流程:从模型需求反推硬件选型

硬件配置不应“拍脑袋”,而应遵循一套可量化的决策流程。以下步骤适用于单卡和多卡场景:

  1. 确定模型精度与权重大小:FP16 每 10 亿参数约 2GB;INT8 约 1GB;INT4 约 0.5GB。以实际部署精度为准。
  2. 估算 KV Cache 需求:公式为 KV Cache 大小 = 2 × 层数 × 注意力头数 × 头维度 × 序列长度 × 并发数 × 精度字节数。例如 7B 模型(32 层,32 头,头维度 128),序列长度 2048,并发 16,FP16 下约需 2 × 32 × 32 × 128 × 2048 × 16 × 2 = 17.2GB。
  3. 叠加计算总显存:总显存 = 权重 + KV Cache + 激活值(约 1~2GB)+ 引擎开销(约 1GB)。若超出单卡容量,则需考虑多卡切分。
  4. 匹配 GPU 型号:根据总显存选择 A100(80GB)、A800、H100、L40S(48GB)、RTX 4090(24GB)或消费级显卡。
  5. 验证 CPU 与内存:CPU 核心数建议 ≥ 8 核,内存 ≥ 32GB(70B 模型建议 64GB 以上),并确保磁盘 IO 足够快(推荐 NVMe SSD)。
实操建议: 使用 nvidia-smi 监控显存占用,结合 vLLM 的 --gpu-memory-utilization 参数(默认 0.9)动态调整 KV Cache 预留比例。若显存不足,可降低该值,但会牺牲并发能力。

案例/场景:三种典型部署配置

场景 模型规模 GPU 配置 CPU / 内存 关键考量
轻量级演示 7B(FP16) 单张 RTX 4090(24GB) 8 核 / 32GB KV Cache 约 7GB,并发 8~16
生产级服务 13B(FP16) 单张 A100(40GB)或 L40S(48GB) 16 核 / 64GB 支持并发 32+,延迟 < 100ms
大规模部署 70B(INT8) 4× A100(80GB)通过 NVLink 互联 32 核 / 128GB 张量并行 + 流水线并行,需高速互联

以 70B 模型 INT8 量化为例,权重约 70GB,4 张 A100 每张分配 17.5GB 权重,剩余显存用于 KV Cache 和激活值。此时多卡通信成为关键:NVLink 提供 600GB/s 带宽,而 PCIe 4.0 仅 32GB/s,差距近 20 倍。

多卡环境考虑:并行策略与互联拓扑

多卡部署并非简单“堆卡”,需要根据模型结构和硬件拓扑选择并行策略:

  • 张量并行(Tensor Parallelism):将单个 Transformer 层的权重矩阵切分到多卡,适合单机多卡且 NVLink 互联的场景。vLLM 通过 --tensor-parallel-size 参数控制。
  • 流水线并行(Pipeline Parallelism):按层切分,将不同层分配到不同 GPU,适合跨节点部署,通信压力较小。
  • 数据并行(Data Parallelism):每张卡持有完整模型副本,处理不同请求,适合并发量极大的场景。
常见误区: 使用 PCIe 互联的多卡机器运行张量并行,通信延迟会严重拖慢推理速度,甚至不如单卡。务必确认 nvidia-smi topo -m 输出的拓扑结构,优先选择 NVLink 或 NVSwitch 互联的 GPU。

多卡环境下,CPU 和内存的配置同样需要升级。vLLM 的调度器需要将请求分发到不同 GPU,CPU 核心数不足会导致调度延迟;内存不足则可能触发 swap,造成推理中断。建议每增加一张 GPU,至少增加 4 个 CPU 核心和 16GB 内存。

误区/复盘:硬件配置中的常见陷阱

在实际部署中,以下问题最容易导致性能不达标或部署失败:

  • 只关注显存总量,忽略显存带宽:RTX 4090 显存带宽约 1TB/s,而 A100 约 2TB/s,即使显存相同,token 生成速度差距明显。
  • KV Cache 预留不足:默认 30% 预留可能不够,高并发场景建议通过 --max-num-seqs 和 --max-model-len 精确计算。
  • CPU 成为瓶颈:当 GPU 利用率不足 70% 时,检查 CPU 是否满载,尤其是 Tokenizer 和预处理环节。
  • 多卡通信未优化:未设置 NCCL_P2P_DISABLE 或 NCCL_SOCKET_IFNAME 等环境变量,导致跨节点通信走慢速网络。
复盘建议: 部署前使用 vllm benchmark 工具进行压测,记录 GPU 利用率、显存占用、TTFT(首 token 延迟)和 TPOT(每 token 延迟)。若 TPOT 高于预期,优先检查显存带宽和 KV Cache 命中率;若 TTFT 偏高,则检查 CPU 预处理和调度效率。

硬件配置是 vLLM 部署的基石,合理的选型能最大化软件优化带来的收益。建议在正式部署前,使用 vllm.engine.arg_utils 中的 AsyncEngineArgs 打印实际显存分配日志,验证配置是否符合预期,再逐步调整并发参数,找到硬件性能与业务需求的最佳平衡点。