简要结论
单节点多 GPU 环境应选用张量并行;多节点环境则选用流水线并行。 该规则适用于绝大多数部署场景。
张量并行原理说明
张量并行机制是将各层权重矩阵拆分至不同 GPU 上。执行前向传播时,各 GPU 同步计算矩阵乘法的一部分,随后借助高速互连技术(如 NVLink、PCIe 或 InfiniBand)实现数据同步。- 每块显卡仅负责存储某一层或多层的部分内容
- 处理每个令牌时所有显卡均处于活跃状态
- 该方案需要高带宽的互连技术(NVLink 的性能远超 PCIe)
- 虽然会增加每层的同步开销,但能确保每个令牌的处理延迟维持在较低水平
- vLLM 将此机制称为
--tensor-parallel-size
流水线并行机制详解
流水线并行机制会将不同层分配给不同显卡处理。显卡 0 负责存储 0 至 15 层,显卡 1 则负责存储 16 至 31 层。前向传播过程如同流水线作业:显卡 0 处理输入数据后,将激活值传递给后续的显卡 1 继续运算。- 每块显卡仅存储连续排列的若干层内容
- 每次仅有 1 个 GPU 针对某个令牌处于活跃状态(其余 GPU 则处于闲置状态或正在处理其他令牌)
- 该方案对互连速度要求较低——因为激活值的大小远小于完整的权重矩阵。
- 添加流水线空闲时段以降低资源利用率
- vLLM将此功能称为
--pipeline-parallel-size
决策矩阵
请回答以下问题以确定最佳部署策略:-
该模型能否完整载入 1块 GPU?
- 能 → 无需并行处理。若需提升吞吐量则可采用数据并行方式。
- 不能 → 请继续作答。
-
所有 GPU是否位于同一台机器上?
- 是 → 推荐采用 张量并行 方案(可降低延迟并提升解码效率)。
- 否 → 请继续作答。
-
GPU是否分布在 2台以上的机器上?
- Yes → pipeline parallelism across nodes. If each node has 2+ GPUs, use TP within each node + PP across nodes.
-
该模型规模是否极为庞大(需 405B 块以上 GPU)?
- Yes → hybrid TP + PP. Example: TP=2 within each DGX Spark, PP=2 across 2 Sparks.
针对特定硬件的部署建议
数据并行与专家并行
还有两种策略适用于特定场景: 数据并行 (DP) — 在每个 GPU 上复制完整模型并将传入请求分配到各 GPU 上。当模型能够完整容纳在 1 个 GPU 中且需要服务更多并发用户时,此策略最为适用。vLLM 原生支持该模式,只需在负载均衡器后启动多个实例即可。 专家并行 (EP) — 专为混合专家模型设计。不同 GPU 负责存储不同专家组。当某个令牌需要特定专家处理时,相关激活数据会被发送至对应 GPU。该策略对超大规模混合专家模型尤为有效,能避免仅采用处理器并行时闲置专家占用内存的问题。配置示例
采用张量并行机制的 vLLM
采用流水线并行技术的 vLLM
混合张量并行与流水线并行方案(适用于大型模型及多节点部署)
For a 405B model across 2× DGX Spark (TP within each node, PP across nodes):采用张量并行技术的 SGLang
在特定工作负载场景下,双显卡配置下的 SGLang 性能与 vLLM 不相上下:NCCL 环境变量设置
为实现多显卡间通信,启动前需配置以下参数:在通过 200 吉比特/秒速率 QSFP 接口互联的 DGX Spark 集群中,NCCL 会自动选定最优传输方式。通常无需手动修改
NCCL_IB_DISABLE 或 NCCL_SOCKET_IFNAME 参数,除非需排查连接故障。性能对比分析
基于针对 70B 级别密集型模型的社区基准测试数据:不宜采用并行处理策略的情形
并非所有部署场景都能从多 GPU 并行中获益:- 模型大小可轻松容纳在 1 块 GPU 内存中——此时并行反而会增加额外开销。建议仅在 1 块 GPU 上运行并采用数据并行以提升吞吐量。
- 小型模型(7B至13B参数规模)在消费级 GPU 上运行——张量并行所需的同步操作会导致使用 2 块 GPU 时的运行速度低于仅用 1 块 GPU 的情况。SGLang 在此类场景下也出现了明显的性能下降。
- 单用户推理场景——除非模型确实超出单块 GPU 的承载极限,否则使用 1 块 GPU 的方案更为简便且速度更快。
- 节点间网络带宽低于 10 GbE——网络传输速度过慢会严重限制流水线并行机制的效能。此时应优先升级网络设施。
常见问题的排查方法
在 vLLM 环境下多 GPU 部署时出现内存溢出现象
vLLM 会预先预留大量内存用于 CUDA 计算图构建及 KV 缓存存储。在配备 2 块 RTX 3090 显卡(总显存容量达 48 GB)的系统中,某些 32B 规模的模型仍可能出现内存溢出,即便 Ollama 可顺利运行。此时需将--gpu-memory-utilization 参数值从默认的 0.90 数值下调:
NCCL 连接失败现象
若多块 GPU 之间无法正常通信,请检查以下项目:nvidia-smi topo -m— 确认 NVLink 或 PCIe 物理拓扑结构是否正常NCCL_DEBUG=INFO— 核实 NCCL 实际选定的数据传输方式- 端口 29500 上的防火墙规则(该端口为 NCCL 通信的默认端口)
不同类型的 GPU 混用
vLLM 支持多种 GPU 混用部署,但整体吞吐量受限于速度最慢的 GPU。为获得最佳性能,建议使用规格一致的 GPU。若必须混用,可通过流水线并行机制并调整各阶段分配比例,将更多计算层分配给速度更快的 GPU。通过 Tokios 实现多 GPU 部署的对外访问
无论您采用张量并行还是流水线并行,亦或两者兼用,部署后的 vLLM 或 SGLang 服务器都会在本地主机上提供兼容 OpenAI 规范的/v1 API。只需在同一台机器上运行 Tokios 连接器,即可让任何设备、智能体或团队成员都能访问该部署,且无需开放任何入站端口。
后续步骤
模型服务部署与扩展
了解各类推理引擎如何管理内存、批量处理及 KV 缓存机制。
DGX Spark 应用场景
在 DGX Spark 或 2-Spark 集群上完成 Tokios 的配置。
vLLM 远程访问配置
无论身处何处,都能安全地对外提供您的 vLLM 服务器服务。
量化操作指南
在启用并行处理机制之前,先对模型进行压缩以便适配更少的 GPU 资源。