SimAI
四组件如何协作达成生产级仿真精度
核心要点:
- 四组件架构:AICB (真实 profiling) + astra-sim-alibabacloud (事件引擎) + SimCCL (集合通信分解) + ns-3-alibabacloud (包级网络)
- SimCCL: 572 行核心代码,完整实现 Ring / Tree / NVLS / PXN 等 13+ 算法
- 三种模式:Analytical (秒) / NS-3 Simulation (分钟-小时) / Physical (真实硬件)
- 生产拓扑:Spectrum-X / AlibabaHPN / DCN+ 预设模板,直接对应真实数据中心
- 精度:512-1024 GPU 集合通信场景平均误差 1.9%,是 ASTRA-sim 原版 NS-3 (530%) 的根本改善
SimAI 是阿里云基础设施团队开发的全栈 LLM 训练 / 推理仿真平台 (NSDI'25[1])。官方报告与真实集群对齐 98.1% (1.9% 平均误差)。在 ASTRA-sim 基础上扩展,重点强化集合通信建模和网络仿真精度。
GitHub: https://github.com/aliyun/SimAI
四组件架构怎么分工
核心问题:工作负载怎么从真实 GPU 一路流到包级网络?每层加了什么?
AICB (AI Communication Benchmark, 真实 GPU profiling)
↓ 生成 workload 文件 (compute / comm 模式)
astra-sim-alibabacloud (事件驱动仿真引擎)
↓ 集合通信操作 (由 SimCCL 分解为 P2P flows)
SimCCL (集合通信 → P2P 分解, 572 行核心代码)
↓
[三选一网络后端]
├─ Analytical: busbw 公式计算, 秒级, 适合探索
├─ NS-3 (ns-3-alibabacloud): 包级 RoCEv2 / DCQCN, 分钟级, 高精度
└─ Physical (Beta): 真实 RDMA 硬件流量生成
vidur-alibabacloud (SimAI 1.5):推理专用调度层,支持多请求动态 batching 和 Prefill / Decode 分离 — 这是 ASTRA-sim 不具备的推理仿真能力。
SimCCL 怎么把集合通信展开为 P2P
核心问题:SimAI 比 ASTRA-sim 多了哪些算法变体?NVLS / PXN 怎么建模?
SimCCL 核心思路:拦截集合通信操作,生成 P2P send / recv 序列,不做实际数据传输,只模拟通信流模式。每种算法完整展开为逐步的 P2P 原语,仿真引擎据此驱动网络后端。
Ring AllReduce (带宽最优)
两阶段 $N-1$ 步展开,以 4 个 rank 为例:
初始状态: 每个 rank 持有 [A/B/C/D] 中自己的分片
ReduceScatter 阶段 (3 步, 每步每 rank 发送 chunk_size = M/4):
步骤 1: rank0→rank1, rank1→rank2, rank2→rank3, rank3→rank0
步骤 2: rank0→rank1, rank1→rank2, ... (携带上一步 reduce 结果)
步骤 3: 同上
结果: 每个 rank 持有一个完整 reduce 后的分片
AllGather 阶段 (3 步, 广播已 reduce 的分片):
步骤 1-3: 依次将 reduce 结果沿环传播
结果: 每个 rank 持有全部 [A+B+C+D] 的完整结果
总通信量 (每 rank) = $2(N-1)/N \times M$, $N$ 增大时带宽利用率趋近 100%。
Tree AllReduce (延迟最优)
Double Binary Tree 结构,$O(\log N)$ 步,步数少,适合小消息 (延迟主导):
$$\begin{equation} T_{\text{Tree}} \approx 2 \log_2 N \cdot \alpha + \log_2 N \cdot \frac{M}{\beta} \label{eq:sim-simai-tree-ar} \end{equation}$$$N=8$ 时 Tree 只需 6 步,Ring 需 14 步。
NVLS (NVLink-Sharp,节点内专用)
NVSwitch 硬件在交换时完成 in-network reduce, GPU 不参与中间 reduce 步骤:
GPU_0..7 → NVSwitch (硬件 reduce) → 结果广播回所有 GPU
NVLS 总步数 = 2 (vs Ring 的 $2(N-1) = 14$ 步),消除 Ring 的多步开销。H100 DGX (8 GPU) 实测 BusBW 可达 480+ GB/s,超过 Ring 的理论上限 ($450 \times 7/8 \approx 394$ GB/s)。环境变量 AS_NVLS_ENABLE=1 开启。
PXN (PCIe × NVLink)
解决 GPU 向不同 Rail 对端发数据时的带宽瓶颈:
传统路径: GPU-0 → PCIe → CPU → QPI → CPU → PCIe → NIC-1 (带宽受限于 PCIe)
PXN 路径: GPU-0 → NVLink → GPU-1 → PCIe → NIC-1 (绕开 CPU, 带宽 ≈ NVLink)
NCCL 2.12 引入 PXN,实测 AllToAll 性能提升超过 2×。
算法选择逻辑
| 并行维度 | 操作类型 | 默认算法 |
|---|---|---|
| TP (节点内) | AllReduce | NVLS (NVLink-Sharp) |
| TP (节点间) | AllReduce | Ring |
| DP | AllReduce / ReduceScatter | Ring |
| EP | AllToAll | Pairwise (节点间) |
| PP | P2P send / recv | 无集合算法 |
@tbl-sim-simai-algo-routing SimCCL 算法选择路由表
SimCCL 共实现 13+ 算法变体,包含 NVLS / PXN / HalvingDoubling 等 ASTRA-sim 原版不具备的算法。
三种网络模式怎么用
核心问题:Analytical / Simulation / Physical 三种模式输入输出和典型用途有什么差别?
Analytical 模式
直接使用 busbw.yaml 配置每种并行维度 × 集合操作的等效带宽:
TP:
allreduce: 300 # GB/s, NVLink 节点内
allgather: 280
reducescatter: 280
alltoall: 230
DP:
allgather: 380 # RDMA 跨节点
reducescatter: 380
EP:
allgather: 45 # MoE EP AllGather (跨节点)
alltoall: 80 # MoE 路由 AllToAll
计算公式:
$$\begin{equation} T_{\text{comm}} = \frac{M}{\text{bus\_bandwidth}} + \text{latency\_overhead} \label{eq:sim-simai-busbw} \end{equation}$$busbw 可从 nccl-tests 实测获取,或通过参数自动推算:
-nv [NVLink_bw] -nic [NIC_bw] -n_p_s [NICs_per_switch] -g_p_s [GPUs_per_switch]
执行时间:秒级。适合大规模参数空间扫描 (数百种并行策略 × 拓扑配置组合)。
Simulation 模式 (NS-3 集成)
SimCCL 产出的 P2P 流通过 AstraSimNetwork.cc 接口注入 ns-3-alibabacloud:
sim_send()— 生成 NS-3 网络包sim_recv()— 注册回调,包到达后唤醒仿真事件
支持的传输协议:RoCEv2 / TCP
支持的拥塞控制算法:DCQCN / HPCC / HPCC-PINT / TIMELY / DCTCP / Swift
ns-3-alibabacloud 相比 ASTRA-sim 原版 NS-3 后端的核心增强:
| 维度 | ASTRA-sim NS-3 | SimAI ns-3-alibabacloud |
|---|---|---|
| CC 算法 | DCQCN, HPCC | DCQCN, HPCC, HPCC-PINT, TIMELY, DCTCP, Swift |
| QP 建模 | 基础 | 真实 RDMA QP 创建 / 销毁逻辑 |
| NIC 配置 | 统一 | perIP / perQP 灵活配置 |
| 调度 | 基础 | Max-Min 原则优化 |
| NVSwitch | 不支持 | 支持节点内 GPU 通信 |
| INT 支持 | HPCC 基础 | INT + PINT (头部压缩至 1-2 bytes) |
| CC 解耦 | 耦合 | 模块化可替换 |
@tbl-sim-simai-ns3-vs-astra ns-3-alibabacloud 相比 ASTRA-sim NS-3 的增强
执行时间:分钟到小时级。适合发表质量结果。
Physical 模式 (Beta)
直接生成真实 RDMA 流量在实际硬件上运行,适合最终验证,非仿真。
精度怎么从 530% 改到 1.9%
核心问题:SimAI 与 ASTRA-sim 原版精度差距来自哪?主要修了什么?
SimAI NSDI'25 验证数据:
| 指标 | 结果 |
|---|---|
| 整体对齐精度 | 平均 98.1% (与真实集群对比) |
| AllReduce | 与 AllGather 趋势一致 |
| ReduceScatter | 与 AllGather 趋势一致 |
| 测试规模 | 小规模实验室 → 大规模工业环境 (512–1024 GPU) |
@tbl-sim-simai-validation SimAI 精度验证结果
对比参考:ASTRA-sim 原版 NS-3 后端基础规模误差 45.9%,扩展到 512 GPU 时飙升至 530.2%。SimAI 通过 ns-3-alibabacloud 改善到 ~2%。
误差改善的主要来源:
- 真实 QP 逻辑 (发送 / 接收窗口,每 QP 独立速率控制)
- 完整拥塞控制闭环 (CNP 回传 → 发送端 DCQCN 降速 → 速率恢复)
- CC 模块解耦,调度遵循 Max-Min 原则
生产拓扑模板有哪些
核心问题:预设拓扑分别对应什么真实集群?NVLink 怎么建模?
预设拓扑 (通过 gen_Topo_Template.py 生成):
| 拓扑名 | 代表集群 | 特点 |
|---|---|---|
| Spectrum-X | NVIDIA RoCE fabric | 两层 RoCE 交换;8 NIC / 节点;带宽密集 |
| AlibabaHPN | 阿里云 HPN 数据中心 | Rail-optimized;专为 LLM 训练设计 |
| DCN+ | 增强型胖树 | 多层胖树;-asn/-psn 参数控制交换层级 |
@tbl-sim-simai-topo-template 生产拓扑预设模板
NVLink 建模策略:用单 NVSwitch 节点抽象全部节点内 GPU 互联 (简化但工程实用):
GPU_0..7 → NVSwitch_Node (3600 Gbps 总带宽 × 利用率折扣因子)
跟 ASTRA-sim 差在哪
核心问题:一张表里能看出 SimAI vs ASTRA-sim 各维度的差异吗?
| 维度 | ASTRA-sim | SimAI |
|---|---|---|
| 网络后端 | Analytical + NS-3 + Garnet | Analytical + NS-3 + Physical |
| 集合通信 | 抽象层,无 NCCL 细节 | MockNCCL, Ring / Tree / NVLS / PXN 完整实现 |
| Workload 来源 | 手写或脚本生成 | AICB 真实 GPU profiling |
| MoE 支持 | 有限 | 完整 EP + AllToAll 建模 |
| 推理仿真 | 不支持 | SimAI 1.5 支持 Prefill / Decode 分离 |
| NVLink 建模 | 无专门支持 | NVLS (in-network reduce) + PXN 路由优化 |
| 拓扑模板 | 通用参数化 | Spectrum-X / AlibabaHPN / DCN+ 生产拓扑 |
| 精度验证 | 5% (4–16 GPU,仅 AllReduce) | 1.9% (512–1024 GPU,多种操作) |
| 规模 | 学术原型 | 生产级,多线程加速 |
| 局限 | 无异构支持,计算通信重叠不完整 | 同构集群假设,计算通信重叠仍有缺口 |
@tbl-sim-simai-vs-astra SimAI vs ASTRA-sim 各维度差异
Takeaway
| 知识点 | 核心结论 |
|---|---|
| 四组件架构 | AICB + astra-sim-alibabacloud + SimCCL + ns-3-alibabacloud |
| SimCCL | 572 行核心代码,13+ 算法变体,含 NVLS / PXN |
| NVLS 步数 | 2 步 vs Ring $2(N-1)$, H100 DGX BusBW 480+ GB/s 超过 Ring 上限 |
| 三模式 | Analytical (秒) / NS-3 (分-小时) / Physical (硬件) |
| 精度 1.9% | 真实 QP + 完整 CC 闭环 + Max-Min 调度 |
| 生产拓扑 | Spectrum-X / AlibabaHPN / DCN+ 直接对应真实集群 |
参考资料
- Wang et al., SimAI: Unifying Architecture Design and Performance Tuning for Large-Scale LLM Training, NSDI 2025. https://www.usenix.org/conference/nsdi25/presentation/wang-xizheng-simai