Appearance
分布式计算 — 练习
练习 1:并行策略选择
为以下模型和硬件配置选择最佳并行策略:
- LLaMA-70B,4× A100-80GB,在线服务
- LLaMA-405B,2 节点 × 8× H100,在线服务
- DeepSeek-V3 (671B MoE),8 节点 × 8× H100
- LLaMA-7B,8× A100-40GB,高并发批量推理
参考答案
TP=4:70B FP16 约 140GB,4×80GB = 320GB,足够。TP=4 在单节点内 NVLink 通信效率高。
TP=8 + PP=2:405B FP16 约 810GB。TP=8 在节点内,PP=2 跨节点。每节点需存储约 405GB(一半模型),8×80GB=640GB 够用。
TP=8 + EP=64(或其他组合):DeepSeek-V3 是 MoE 模型,256 个路由专家。EP 将专家分布到所有 GPU。TP=8 处理共享参数。
DP=8:7B 模型单卡可运行。DP=8 可以同时处理 8 倍的请求,最大化吞吐。
练习 2:通信量分析
分析 TP=4 的通信量:
- 模型 hidden_size = 8192
- 32 层 Transformer
- FP16
- 每层的 All-Reduce 通信量是多少?
- 单步推理的总通信量?
- 如果使用 NVLink(600 GB/s),通信延迟是多少?
参考答案
每个 All-Reduce:hidden_size × 2 bytes (FP16) = 16384 bytes。Ring All-Reduce 需要 2 × (N-1)/N × data_size ≈ 2 × 3/4 × 16384 = 24576 bytes ≈ 24 KB。每层 2 次 All-Reduce ≈ 48 KB。
32 层 × 48 KB = 1536 KB ≈ 1.5 MB per step。
1.5 MB / 600 GB/s ≈ 2.5 μs。实际延迟还包括 kernel launch 和同步开销,约 10-50 μs。
拓展挑战
- 阅读
vllm/distributed/parallel_state.py,理解进程组管理 - 分析
kv_transfer/目录的 KV 缓存传输实现 - 研究 Elastic EP(弹性专家并行)的动态负载均衡