[ PROMPT_NODE_22478 ]
multi-gpu
[ SKILL_DOCUMENTATION ]
# 多 GPU 部署指南
将 TensorRT-LLM 扩展到多个 GPU 和节点的综合指南。
## 并行策略
### 张量并行 (TP)
**作用**: 在水平方向上将模型层拆分到多个 GPU。
**使用场景**:
- 模型总内存适合 GPU,但单卡显存不足
- 需要低延迟 (单次前向传播)
- GPU 在同一节点 (最佳性能需 NVLink)
**示例** (Llama 3-70B 在 4× A100 上):
python
from tensorrt_llm import LLM
llm = LLM(
model="meta-llama/Meta-Llama-3-70B",
tensor_parallel_size=4, # 拆分到 4 个 GPU
dtype="fp16"
)
# 模型自动在 GPU 间分片
# 单次前向传播,低延迟
**性能**:
- 延迟: 与单 GPU 几乎相同
- 吞吐量: 提升 4 倍 (4 个 GPU)
- 通信: 高 (每层同步激活值)
### 流水线并行 (PP)
**作用**: 在垂直方向上将模型层拆分到多个 GPU (按层划分)。
**使用场景**:
- 超大规模模型 (175B+)
- 可容忍较高延迟
- GPU 跨多个节点
**示例** (Llama 3-405B 在 8× H100 上):
python
llm = LLM(
model="meta-llama/Meta-Llama-3-405B",
tensor_parallel_size=4, # 节点内 TP=4
pipeline_parallel_size=2, # 跨节点 PP=2
dtype="fp8"
)
# 总计: 8 个 GPU (4×2)
# 层 0-40: 节点 1 (4 个 GPU,使用 TP)
# 层 41-80: 节点 2 (4 个 GPU,使用 TP)
**性能**:
- 延迟: 较高 (流水线顺序执行)
- 吞吐量: 通过微批处理实现高吞吐
- 通信: 低于 TP
### 专家并行 (EP)
**作用**: 将 MoE 专家分布到多个 GPU。
**使用场景**: 混合专家模型 (Mixtral, DeepSeek-V2)
**示例** (Mixtral-8x22B 在 8× A100 上):
python
llm = LLM(
model="mistralai/Mixtral-8x22B",
tensor_parallel_size=4,
expert_parallel_size=2, # 将 8 个专家分布到 2 个组
dtype="fp8"
)
## 配置示例
### 小型模型 (7-13B) - 单 GPU
python
# Llama 3-8B 在 1× A100 80GB 上
llm = LLM(
model="meta-llama/Meta-Llama-3-8B",
dtype="fp16" # 或 H100 使用 fp8
)
**资源**:
- GPU: 1× A100 80GB
- 内存: ~16GB 模型 + 30GB KV 缓存
- 吞吐量: 3,000-5,000 token/秒
### 中型模型 (70B) - 同节点多 GPU
python
# Llama 3-70B 在 4× A100 80GB (NVLink) 上
llm = LLM(
model="meta-llama/Meta-Llama-3-70B",
tensor_parallel_size=4,
dtype="fp8" # 70GB → 每 GPU 35GB
)
**资源**:
- GPU: 4× A100 80GB (带 NVLink)
- 内存: 每 GPU ~35GB (FP8)
- 吞吐量: 10,000-15,000 token/秒
-