跳到主要内容

SimAI 全栈通信仿真系统

SimAI 是阿里云基础设施团队开发的全栈 LLM 训练/推理仿真平台,论文发表于 NSDI'25。官方宣称与真实硬件 98.1% 对齐(1.9% 平均误差)。在 ASTRA-sim 基础上扩展开发,重点强化了集合通信建模和网络仿真精度。

GitHub: https://github.com/aliyun/SimAI


整体架构

SimAI 采用四层全栈架构,每层职责清晰且可独立替换:

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 集合通信库

SimCCL 是 SimAI 的核心差异点,572 行核心代码实现集合通信拦截分解。

核心思路:拦截集合通信操作,生成 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] 的完整结果

阶段 1 ReduceScatter(N-1 步):每步每个 rank 向下一个 rank 发送 chunk_size = message_size/N 数据,同时接收并 reduce。

阶段 2 AllGather(N-1 步):再 N-1 步,广播已 reduce 的 chunk。

总通信量(每 rank)= 2(N-1)/N × message_size,N 增大时带宽利用率趋近 100%。

Tree AllReduce(延迟最优)

Double Binary Tree 结构,O(log N) 步。步数少,适合小消息(延迟主导场景):

T_Tree = 2 × log₂(N) × (α + M / (N × β))  (小消息近似为 2·log₂(N)·α)

N=8 时 Tree 只需 6 步,Ring 需要 14 步。

通过 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 × 7/8 ≈ 394 GB/s)。通过环境变量 AS_NVLS_ENABLE=1 开启。

解决 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(张量并行,节点内)AllReduceNVLS(NVLink-Sharp)
TP(张量并行,节点间)AllReduceRing
DP(数据并行)AllReduce/ReduceScatterRing
EP(专家并行)AllToAllPairwise(节点间)
PP(流水线并行)P2P send/recv无集合算法

SimCCL 共实现 13+ 算法变体,包含 NVLS、PXN、HalvingDoubling 等 ASTRA-sim 原版不具备的算法。


网络仿真三种模式

Analytical 模式

直接使用 busbw.yaml 配置每种并行维度 × 集合操作的等效带宽:

TP:
allreduce: 300 # GB/s,NVLink 节点内 AllReduce 等效带宽
allgather: 280
reducescatter: 280
alltoall: 230
DP:
allgather: 380 # RDMA 跨节点 AllGather
reducescatter: 380
EP:
allgather: 45 # MoE EP AllGather(跨节点,带宽更低)
alltoall: 80 # MoE 路由 AllToAll

计算公式:

comm_time = message_size / bus_bandwidth + latency_overhead

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-3SimAI ns-3-alibabacloud
CC 算法DCQCN, HPCCDCQCN, HPCC, HPCC-PINT, TIMELY, DCTCP, Swift
QP 建模基础真实 RDMA QP 创建/销毁逻辑
NIC 配置统一perIP / perQP 灵活配置
调度基础Max-Min 原则优化
NVSwitch不支持支持节点内 GPU 通信
INT 支持HPCC 基础INT + PINT(头部压缩至 1-2 bytes)
CC 解耦耦合模块化可替换

执行时间:分钟到小时级。适合发表质量结果。

Physical 模式(Beta)

直接生成真实 RDMA 流量在实际硬件上运行,适合最终验证,非仿真。


精度验证结果

SimAI NSDI'25 提供了迄今最系统的精度验证数据:

指标结果
整体对齐精度平均 98.1%(与真实集群对比)
AllReduce与 AllGather 趋势一致
ReduceScatter与 AllGather 趋势一致
测试规模小规模实验室 -> 大规模工业环境(512–1024 GPU)

对比参考:ASTRA-sim 原版 NS-3 后端在基础规模下误差 45.9%,扩展到 512 GPU 时误差飙升至 530.2%。SimAI 通过 ns-3-alibabacloud 将此改善到约 2% 误差。

误差改善的主要来源:

  • 真实 QP 逻辑(发送/接收窗口、每 QP 独立速率控制)
  • 完整拥塞控制闭环(CNP 回传 → 发送端 DCQCN 降速 → 速率恢复)
  • CC 模块解耦,调度遵循 Max-Min 原则

拓扑配置系统

预设拓扑模板(通过 gen_Topo_Template.py 生成):

拓扑名代表集群特点
Spectrum-XNVIDIA RoCE fabric两层 RoCE 交换;8 NIC/节点;带宽密集
AlibabaHPN阿里云 HPN 数据中心Rail-optimized;专为 LLM 训练设计
DCN+增强型胖树多层胖树;-asn/-psn 参数控制交换层级

NVLink 建模策略:用单 NVSwitch 节点抽象全部节点内 GPU 互联(简化但工程实用):

GPU_0..7 → NVSwitch_Node(3600 Gbps 总带宽 × 利用率折扣因子)

与 ASTRA-sim 的差异

维度ASTRA-simSimAI
网络后端Analytical + NS-3 + GarnetAnalytical + 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,多种操作)
规模学术原型生产级,多线程加速
局限无异构支持,计算通信重叠不完整同构集群假设,计算通信重叠仍有缺口

参考资料