双卡/多卡推理:张量并行入门与坑
GrokCode 品牌专题:双卡/多卡推理:张量并行入门与坑。 锚点:GPU。

开篇
GrokCode 视角下,双卡/多卡推理的核心是让单个 GPU 无法容纳的大模型(如 Llama-70B、Qwen-122B)通过张量并行(Tensor Parallelism)拆分权重矩阵,让多块 GPU 协同计算同一层、同步后继续下一层。这让本地部署实验室(本地部署)与模型天梯(模型天梯)场景下,轻松支持 70B+ 模型推理,同时配合 Grok API 与 xAI 中转实现高吞吐服务。
谁适用:模型参数超过单卡 VRAM(通常 24–48 GB 卡撑不住 70B+)、追求低首Token延迟(Time to First Token)的场景。 怎么决策:优先选相同规格 GPU + NVLink 的双卡/多卡;若 PCIe 仅用 Pipeline Parallelism 或只买更大单卡。决策表见下方。
核心结论:双卡/多卡是本地部署实验室最经济实操的 GPU 扩展方式,但必须走 vLLM 张量并行,否则只加显存不增速度。
核心概念与术语
- 张量并行(Tensor Parallelism):将单个层内的权重矩阵(如 Attention 矩阵、MLP 矩阵)沿维度拆分到多 GPU,每块 GPU 负责部分计算。所有 GPU 同时处理同一请求,完成后通过 NCCL
all-reduce同步中间结果(activations)。 - Pipeline Parallelism(流水线并行):将模型层按顺序拆分(GPU0 负责前 N 层,GPU1 负责后 M 层)。请求像流水线一样流转,适合 PCIe 网络。
- 数据并行(Data Parallelism):每块 GPU 完整加载一份模型,批量拆分请求(不推荐单请求场景)。
- KV Cache:关键缓存,TP 下会因 KV Head 数未被 TP 整除而复制到各 GPU,增加显存消耗(常见陷阱)。
- NCCL:NVIDIA 通信库,TP 核心依赖的 all-reduce 操作。
- vLLM:推荐推理引擎,支持
--tensor-parallel-size N一键开启 TP。 - Ollama / llama.cpp:默认多 GPU 为层拆分(Pipeline),仅增显存不提速。
这些概念直接来自 vLLM 官方文档与 llmhardware.io 实测,可在 GrokCode 本地部署实验室中零成本验证。
决策表
| 场景 | 推荐策略 | 适用硬件 | 预期加速 | 主要限制 |
|---|---|---|---|---|
| 模型 > 单卡 VRAM | Tensor Parallelism(vLLM) | 双卡 RTX 4090 / A100 + NVLink | 1.4–1.6x(PCIe)<br>1.8–2.2x(NVLink) | GPU 必须相同规格 |
| 低延迟单请求 | Tensor Parallelism | NVLink 卡 | TTFT 显著降低 | PCIe 上通信开销大 |
| 追求吞吐(高并发) | Pipeline Parallelism | 任意 PCIe 双卡 | 吞吐线性增长 | 单请求速度接近单卡 |
| 超大模型(405B+) | Tensor + Pipeline | 多节点 8 GPU+ | 模型全量加载 | 多节点调度复杂 |
| 混合卡(24GB + 16GB) | Pipeline(Ollama) | 任意双卡 | 仅容量不提速 | Tensor Parallelism 不支持 |
此表可直接复制到 GrokCode /tools/local-deploy 页面用于快速选型验证。
实操清单:分步可核对
- 硬件准备
- 确保两块(或多块)GPU 为同一型号(RTX 4090、A100 等),检查 nvidia-smi 显示 NVLink 连接(nvidia-smi nvlink -s)。 - 驱动 >= 550+,CUDA 版本匹配 PyTorch。
- 环境准备
``bash pip install vllm torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 ` 确认 vLLM_TORCH_VERSION=2.1+cu121`。
- vLLM 一键启动(推荐双卡 70B Q4)
``bash vllm serve meta-llama/Llama-3.1-70B-Instruct \ --tensor-parallel-size 2 \ --quantization awq \ --max-model-len 8192 \ --port 8000 \ --api-key sk-xxx ` 启动后访问 http://localhost:8000/v1/models` 或 OpenAI 兼容 API。
- 验证张量并行
``bash curl -X POST http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model":"meta-llama/Llama-3.1-70B-Instruct","messages":[{"role":"user","content":"你好"}],"max_tokens":100}' ` 观察日志:[INFO] Using tensor parallel size 2`。
- 吞吐测试(可选)
部署到 GrokCode /api-transit/detector 页面,记录 QPS 与中转倍率。
- 混合卡适配(仅 llama.cpp)
``bash ./llama-cli -m llama-70b-q4.gguf --n-gpu-layers 999 --tensor-split 60,40 ``
- 生产调优
- KV Cache:--kv-cache-dtype fp8 - 并发:--max-num-seqs 256 - 监控:nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits
每步均可在 GrokCode /tools/local-deploy 页面一键复现,工程可核验。
常见坑与风险边界
- GPU 不一致:Tensor Parallelism 要求完全相同型号,否则权重拆分失败或 OOM(PCIe 上速度甚至低于单卡)。
- KV Cache 复制:TP 时 KV Cache 因 Head 数未被整除而复制,显存消耗翻倍(DeepSeek-V3 等 MoE 模型尤其明显)。
- 通信开销:PCIe 环境下 TP=4+ 后反而变慢(有效加速 < 1.2x),建议切换 Pipeline。
- 注意力头数不被整除:2、4、8 是安全倍数,3/5/6 易 crash。
- 多节点扩展:仅用 TP=16 无效,需结合 Pipeline Parallelism。
- 单请求场景:Tensor Parallelism 优势不明显,推荐先单卡测试。
这些坑均已在 vLLM 2026 年版本中得到优化,但仍需手动调参。
风险与边界
GrokCode 仅提供本地部署实验室的工程实践参考,不构成任何投资、部署或法律意见。实际使用请自行评估硬件兼容性、功耗与稳定性。错误配置可能导致显存溢出(Out-Of-Memory)或计算不一致,建议在隔离环境验证。非专业硬件用户请参考官方 vLLM 文档。
站内路径
延伸阅读
- vLLM 官方张量并行文档(推荐)
- 模型天梯页面:/ladder
- 工具实验室:/tools
English summary
Tensor parallelism is the standard method for scaling LLM inference across multiple GPUs using frameworks like vLLM. It splits weight matrices across cards so all GPUs process the same request simultaneously, followed by NCCL all-reduce synchronization. This approach excels in low-latency scenarios with NVLink-equipped GPUs and is ideal for local deployment setups that pair with Grok API transit. In contrast, pipeline parallelism suits PCIe-only systems for memory-constrained or high-throughput workloads. Common pitfalls include mismatched GPUs, KV cache duplication inflating VRAM usage, and communication overhead on consumer PCIe cards that can negate speed gains. Decision trees and tables in the guide help select the right strategy based on hardware and model size. Practical step-by-step checklists and risk boundaries ensure safe implementation in production environments. Overall, tensor parallelism transforms single-GPU limits into scalable local inference labs while maintaining compatibility with xAI and API transit services.
适用于 GrokCode 倍率榜。信息仅供参考,不构成购买、投资或法律意见。