feat(simai): SimAI 1.7 - SimCCL v2.30 integration, docs update, send_lat bucketing#294
feat(simai): SimAI 1.7 - SimCCL v2.30 integration, docs update, send_lat bucketing#294tianhao909 wants to merge 6 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
SimAI 1.7 release update centered on integrating SimCCL mock v2.30 (protocol/algorithm-aware NCCL-style flow decomposition), along with supporting build-system wiring, example workloads/configs, and expanded documentation/navigation.
Changes:
- Integrate SimCCL mock v2.30 into ns3 + analytical builds (version selection via
SIMAI_NCCL_VERSION) and propagate flow metadata (algorithm/protocol). - Add/refresh documentation pages (getting started, env vars, build options, docs index) plus release changelog and example workloads/configs.
- Add Dockerfile + small infra tweaks (ns3 optimized build symlink path, expanded
.gitignore, submodule URL updates).
Reviewed changes
Copilot reviewed 44 out of 191 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/build.sh | Point ns3 binary symlink to optimized build output |
| example/workload_fth/None-None-world_size1-tp1-pp1-ep1-gbs4-mbs1-seq2048-MOE-False-GEMM-False-flash_attn-False.txt | Add workload sample (FTH format) |
| example/workload_analytical_fth.txt | Add analytical workload sample |
| example/microAllReduce.txt | Add micro AllReduce workload sample |
| example/busbw.yaml | Add example bus bandwidth config |
| docs/README.md | Add docs navigation landing page |
| docs/getting_started/installation.md | Add installation/build instructions (EN) |
| docs/configuration/env-variables.md | Add env var reference (EN) |
| docs/configuration/build-options.md | Add build options + CLI parameter docs (EN) |
| Dockerfile | Add full-stack container recipe |
| CHANGELOG.md | Add 1.5–1.7 changelog |
| astra-sim-alibabacloud/LICENSE | Add MIT license file for vendored AstraSim tree |
| astra-sim-alibabacloud/inputs/config/SimAI.conf | Add default ns3 simulation config file |
| astra-sim-alibabacloud/CMakeLists.txt | Add mock version selection + glob SimCCL mock sources |
| astra-sim-alibabacloud/build/simai_phy/CMakeLists.txt | Add physical build CMake entry |
| astra-sim-alibabacloud/build/simai_analytical/CMakeLists.txt | Add analytical mock-version selection + symlink include strategy |
| astra-sim-alibabacloud/build/astra_ns3/CMakeLists.txt | Add ns3 build CMake entry |
| astra-sim-alibabacloud/build/astra_ns3/build.sh | Copy versioned mock into ns3 app tree; switch to optimized ns3 build |
| astra-sim-alibabacloud/astra-sim/workload/Workload.hh | Add/restore workload interface definition |
| astra-sim-alibabacloud/astra-sim/workload/Workload.cc | Guard dimension utilization finalize on null writer |
| astra-sim-alibabacloud/astra-sim/workload/CSVWriter.hh | Add CSV writer helper |
| astra-sim-alibabacloud/astra-sim/system/UsageTracker.hh | Add usage tracking interface |
| astra-sim-alibabacloud/astra-sim/system/UsageTracker.cc | Add usage tracking implementation |
| astra-sim-alibabacloud/astra-sim/system/Usage.hh | Add usage record type |
| astra-sim-alibabacloud/astra-sim/system/Usage.cc | Add usage record implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/Torus3D.hh | Add Torus3D topology |
| astra-sim-alibabacloud/astra-sim/system/topology/Torus3D.cc | Add Torus3D topology implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/RingTopology.hh | Add ring topology definition |
| astra-sim-alibabacloud/astra-sim/system/topology/Node.hh | Add tree node definition |
| astra-sim-alibabacloud/astra-sim/system/topology/Node.cc | Add tree node implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/LogicalTopology.hh | Add logical topology base interface |
| astra-sim-alibabacloud/astra-sim/system/topology/LogicalTopology.cc | Add logical topology helpers |
| astra-sim-alibabacloud/astra-sim/system/topology/LocalRingNodeA2AGlobalDBT.hh | Add composite topology type |
| astra-sim-alibabacloud/astra-sim/system/topology/LocalRingNodeA2AGlobalDBT.cc | Add composite topology implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/LocalRingGlobalBinaryTree.hh | Add composite topology type |
| astra-sim-alibabacloud/astra-sim/system/topology/LocalRingGlobalBinaryTree.cc | Add composite topology implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/GeneralComplexTopology.hh | Add general complex topology |
| astra-sim-alibabacloud/astra-sim/system/topology/GeneralComplexTopology.cc | Adjust flow-model topology condition for NcclFlowModel |
| astra-sim-alibabacloud/astra-sim/system/topology/DoubleBinaryTreeTopology.hh | Add DBT topology definition |
| astra-sim-alibabacloud/astra-sim/system/topology/DoubleBinaryTreeTopology.cc | Add DBT topology implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/ComputeNode.hh | Add compute-node stub base |
| astra-sim-alibabacloud/astra-sim/system/topology/ComplexLogicalTopology.hh | Add complex topology base |
| astra-sim-alibabacloud/astra-sim/system/topology/BinaryTree.hh | Add binary tree topology definition |
| astra-sim-alibabacloud/astra-sim/system/topology/BinaryTree.cc | Add binary tree topology implementation |
| astra-sim-alibabacloud/astra-sim/system/topology/BasicLogicalTopology.hh | Add basic topology base |
| astra-sim-alibabacloud/astra-sim/system/Sys.cc | Switch to NcclFlowModel; add analytical ratio CSV loading; add PAT handling |
| astra-sim-alibabacloud/astra-sim/system/StreamStat.hh | Add stream stat aggregation |
| astra-sim-alibabacloud/astra-sim/system/StreamBaseline.hh | Add baseline stream type |
| astra-sim-alibabacloud/astra-sim/system/StreamBaseline.cc | Add baseline stream implementation |
| astra-sim-alibabacloud/astra-sim/system/StatData.hh | Add stat call-data type |
| astra-sim-alibabacloud/astra-sim/system/SimSendCaller.hh | Add deferred send wrapper |
| astra-sim-alibabacloud/astra-sim/system/SimSendCaller.cc | Add deferred send wrapper implementation |
| astra-sim-alibabacloud/astra-sim/system/SimRecvCaller.hh | Add deferred recv wrapper |
| astra-sim-alibabacloud/astra-sim/system/SimRecvCaller.cc | Add deferred recv wrapper implementation |
| astra-sim-alibabacloud/astra-sim/system/SimAiPhyCommon.hh | Add physical-network shared structs/constants |
| astra-sim-alibabacloud/astra-sim/system/SimAiFlowModelRdma.hh | Add RDMA flow modeling declarations |
| astra-sim-alibabacloud/astra-sim/system/SendPacketEventHandlerData.hh | Add send packet handler data structure |
| astra-sim-alibabacloud/astra-sim/system/SendPacketEventHandlerData.cc | Add send packet handler data implementation |
| astra-sim-alibabacloud/astra-sim/system/scheduling/OfflineGreedy.hh | Add offline greedy scheduler interface |
| astra-sim-alibabacloud/astra-sim/system/RendezvousSendData.hh | Add rendezvous send call-data |
| astra-sim-alibabacloud/astra-sim/system/RendezvousSendData.cc | Add rendezvous send call-data implementation |
| astra-sim-alibabacloud/astra-sim/system/RendezvousRecvData.hh | Add rendezvous recv call-data |
| astra-sim-alibabacloud/astra-sim/system/RendezvousRecvData.cc | Add rendezvous recv call-data implementation |
| astra-sim-alibabacloud/astra-sim/system/RecvPacketEventHadndlerData.hh | Add recv packet handler data |
| astra-sim-alibabacloud/astra-sim/system/RecvPacketEventHadndlerData.cc | Add recv packet handler data implementation |
| astra-sim-alibabacloud/astra-sim/system/QueueLevels.hh | Add queue-level allocator interface |
| astra-sim-alibabacloud/astra-sim/system/QueueLevels.cc | Add queue-level allocator implementation |
| astra-sim-alibabacloud/astra-sim/system/QueueLevelHandler.hh | Add queue-level handler interface |
| astra-sim-alibabacloud/astra-sim/system/QueueLevelHandler.cc | Add queue-level handler implementation |
| astra-sim-alibabacloud/astra-sim/system/PhyMultiThread.hh | Add physical multi-thread interfaces/locks |
| astra-sim-alibabacloud/astra-sim/system/PacketBundle.hh | Add packet bundle wrapper type |
| astra-sim-alibabacloud/astra-sim/system/PacketBundle.cc | Add packet bundle implementation |
| astra-sim-alibabacloud/astra-sim/system/NetworkStat.hh | Add network stat aggregation |
| astra-sim-alibabacloud/astra-sim/system/MyPacket.hh | Add packet representation |
| astra-sim-alibabacloud/astra-sim/system/MyPacket.cc | Add packet implementation |
| astra-sim-alibabacloud/astra-sim/system/MockNcclQps.h | Forwarding header to SimCCL mock location |
| astra-sim-alibabacloud/astra-sim/system/MockNcclLog.h | Forwarding header to SimCCL mock location |
| astra-sim-alibabacloud/astra-sim/system/MockNcclLog.cc | Add MockNcclLog static definitions |
| astra-sim-alibabacloud/astra-sim/system/MockNcclChannel.h | Forwarding header to SimCCL mock location |
| astra-sim-alibabacloud/astra-sim/system/MockNcclChannel.cc | Add MockNcclComm wrapper implementation |
| astra-sim-alibabacloud/astra-sim/system/memory/SimpleMemory.hh | Add simple memory model interface |
| astra-sim-alibabacloud/astra-sim/system/memory/SimpleMemory.cc | Add simple memory model implementation |
| astra-sim-alibabacloud/astra-sim/system/MemMovRequest.hh | Add memory movement request type |
| astra-sim-alibabacloud/astra-sim/system/MemMovRequest.cc | Add memory movement request implementation |
| astra-sim-alibabacloud/astra-sim/system/MemBus.hh | Add memory bus abstraction |
| astra-sim-alibabacloud/astra-sim/system/MemBus.cc | Add memory bus implementation |
| astra-sim-alibabacloud/astra-sim/system/LogGP.hh | Add LogGP model interface |
| astra-sim-alibabacloud/astra-sim/system/IntData.hh | Add integer call-data wrapper |
| astra-sim-alibabacloud/astra-sim/system/DMA_Request.hh | Add DMA request type |
| astra-sim-alibabacloud/astra-sim/system/DMA_Request.cc | Add DMA request implementation |
| astra-sim-alibabacloud/astra-sim/system/DataSet.hh | Add dataset aggregation type |
| astra-sim-alibabacloud/astra-sim/system/DataSet.cc | Add dataset aggregation implementation |
| astra-sim-alibabacloud/astra-sim/system/Common.hh | Add H20 GPU type; add Broadcast; remove NcclTreeFlowModel enum |
| astra-sim-alibabacloud/astra-sim/system/CollectivePhase.hh | Add collective phase wrapper |
| astra-sim-alibabacloud/astra-sim/system/CollectivePhase.cc | Add collective phase implementation |
| astra-sim-alibabacloud/astra-sim/system/collective/Ring.hh | Add ring algorithm interface |
| astra-sim-alibabacloud/astra-sim/system/collective/NcclTreeFlowModel.hh | Keep legacy tree flow model header (present in tree) |
| astra-sim-alibabacloud/astra-sim/system/collective/NcclFlowModel.hh | Add unified flow model with algo/proto tagging |
| astra-sim-alibabacloud/astra-sim/system/collective/HalvingDoubling.hh | Add halving-doubling algorithm interface |
| astra-sim-alibabacloud/astra-sim/system/collective/DoubleBinaryTreeAllReduce.hh | Add DBT allreduce algorithm interface |
| astra-sim-alibabacloud/astra-sim/system/collective/AllToAll.hh | Add all-to-all algorithm interface |
| astra-sim-alibabacloud/astra-sim/system/collective/AllToAll.cc | Add all-to-all algorithm implementation |
| astra-sim-alibabacloud/astra-sim/system/collective/Algorithm.hh | Add algorithm base interface |
| astra-sim-alibabacloud/astra-sim/system/collective/Algorithm.cc | Add algorithm base implementation |
| astra-sim-alibabacloud/astra-sim/system/CallData.hh | Add call-data base type |
| astra-sim-alibabacloud/astra-sim/system/Callable.hh | Add callable base type |
| astra-sim-alibabacloud/astra-sim/system/BootStrapnet.hh | Add MPI bootstrap declarations |
| astra-sim-alibabacloud/astra-sim/system/BootStrapnet.cc | Add MPI bootstrap implementation |
| astra-sim-alibabacloud/astra-sim/system/BasicEventHandlerData.hh | Add basic event handler data type |
| astra-sim-alibabacloud/astra-sim/system/BasicEventHandlerData.cc | Add basic event handler data implementation |
| astra-sim-alibabacloud/astra-sim/system/BaseStream.hh | Add base stream interface |
| astra-sim-alibabacloud/astra-sim/system/BaseStream.cc | Add base stream implementation |
| astra-sim-alibabacloud/astra-sim/system/AstraSimDataAPI.hh | Add stats API data structures |
| astra-sim-alibabacloud/astra-sim/system/AstraParamParse.cc | Add static definitions for argument parser |
| astra-sim-alibabacloud/astra-sim/system/AstraNetworkAPI.hh | Extend ncclFlowTag with algorithm/protocol/gpus_per_node |
| astra-sim-alibabacloud/astra-sim/system/AstraMemoryAPI.hh | Add memory API interface |
| astra-sim-alibabacloud/astra-sim/system/AstraComputeAPI.hh | Add compute API interface |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/SimAiPhyNetwork.h | Add physical network frontend API |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/SimAiPhyNetwork.cc | Add physical network frontend implementation |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/SimAiEntry.h | Add physical entrypoint declarations |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/SimAiEntry.cc | Add physical callback wiring + RDMA send wrapper |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/PhySimAi.h | Add physical scheduler declarations |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/PhySimAi.cc | Add physical scheduler implementation |
| astra-sim-alibabacloud/astra-sim/network_frontend/phynet/CMakeLists.txt | Add phynet build rules |
| astra-sim-alibabacloud/astra-sim/network_frontend/ns3/AstraSimNetwork.h | Add ns3 network header stub |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/CMakeLists.txt | Add analytical build rules |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/AnaSim.h | Add analytical scheduler declarations |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/AnaSim.cc | Add analytical scheduler implementation |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/AnalyticalNetwork.h | Add analytical network frontend API |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/AnalyticalNetwork.cc | Add analytical network frontend implementation |
| astra-sim-alibabacloud/astra-sim/network_frontend/analytical/AnalyticalAstra.cc | Add analytical executable entrypoint |
| .gitmodules | Switch submodule URLs (currently to SSH) |
| .gitignore | Ignore build artifacts, results, and editor temp files |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| #include "Common.hh" | ||
| #include "RendezvousRecvData.hh" | ||
| #include "RendezvousSendData.hh" | ||
| #include "calbusbw.h" |
| RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple | ||
| RUN pip config set install.trusted-host mirrors.aliyun.com | ||
| ENV UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple" |
| RUN mv ./workload_generator /usr/local/lib/python3.12/dist-packages &&\ | ||
| mv ./utils /usr/local/lib/python3.12/dist-packages &&\ | ||
| mv ./log_analyzer /usr/local/lib/python3.12/dist-packages |
| [submodule "SimCCL"] | ||
| path = SimCCL | ||
| url = https://github.com/aliyun/SimCCL | ||
| url = git@github.com:aliyun/SimCCL |
| [submodule "aicb"] | ||
| path = aicb | ||
| url = https://github.com/aliyun/aicb | ||
| url = git@github.com:aliyun/aicb.git |
| [submodule "ns-3-alibabacloud"] | ||
| path = ns-3-alibabacloud | ||
| url = https://github.com/aliyun/ns-3-alibabacloud | ||
| url = git@github.com:aliyun/ns-3-alibabacloud |
6e5e727 to
d83189a
Compare
…lat bucketing [EN] - Integrate SimCCL v2.30 mock: update astra-sim forwarding headers, entry.h send_lat bucketing, NcclFlowModel, Sys.cc flowTag - Change default mock version to v2.30 (build.sh, CMakeLists.txt) - Add SimCCL mock version selection for analytical build - Update README (EN/CN/JA): 1.7 release notes, Use SimCCL section, fix links - Add docs/README.md navigation, docs/CN/Tutorial.md translation - Add CHANGELOG.md (v1.5/v1.6/v1.7) - Update docs/getting_started with v2.30 default note and SimCCL standalone section - Add H20 topology configs (128gpu/64gpu/16gpu) - Fix scripts/build.sh symlink target [ZH] - 集成 SimCCL v2.30 mock:更新 astra-sim 转发头文件、entry.h send_lat 分桶、NcclFlowModel、Sys.cc flowTag - 默认 mock 版本改为 v2.30(build.sh、CMakeLists.txt) - 为 analytical 构建添加 SimCCL mock 版本选择 - 更新 README(中/英/日):1.7 发布说明、Use SimCCL 段落、修复链接 - 添加 docs/README.md 导航、docs/CN/Tutorial.md 中文翻译 - 添加 CHANGELOG.md(v1.5/v1.6/v1.7) - 更新 docs/getting_started(v2.30 默认说明 + SimCCL standalone 章节) - 添加 H20 拓扑配置(128gpu/64gpu/16gpu) - 修复 scripts/build.sh symlink 目标
d83189a to
632e146
Compare
| #endif // ASTRA_SIM_MOCKNCCL_MOCKNCCL_H | ||
| // Forwarding header: MockNccl was relocated into SimCCL/mock/ (Task 3, 2026-06-02). | ||
| // Kept here so existing includes "astra-sim/system/MockNccl.h" keep working. | ||
| #include "SimCCL/mock/MockNccl.h" |
| layerData.avg_network_message_dealy.push_back(std::make_pair(i, ml / FREQ)); | ||
| } | ||
| if (seprate_log) | ||
| if (seprate_log && EndToEnd) |
There was a problem hiding this comment.
看下判断EndToEnd需要存在的作用,是否为了修复某些bug,例如文件不存在导致的报错
| int total_rows, | ||
| int stat_row, | ||
| CSVWriter* detailed, | ||
| CSVWriter* EndToEnd, |
…compat shims
[EN]
- Untrack 3 generated topology files (Rail_Opti_SingleToR_16g/64gpu/128gpu_8gps_200Gbps_H20);
kept locally via .gitignore. They are produced by
astra-sim-alibabacloud/inputs/topo/gen_Topo_Template.py (see quickstart step 2).
- .gitignore: ignore astra-sim-alibabacloud/inputs/topo/Rail_Opti_SingleToR_* and
repo-root /Rail_Opti_SingleToR_* (generation output).
- Keep the 5 MockNccl forwarding headers (astra-sim/system/MockNccl{,Channel,Group,Log,Qps}.h)
as backward-compatible shims to SimCCL/mock/*; ~25 sources still include the
astra-sim/system/ paths, so the shims are intentional (not dead code).
[ZH]
- 取消跟踪 3 个生成的拓扑文件(Rail_Opti_SingleToR_16g/64gpu/128gpu_8gps_200Gbps_H20),
通过 .gitignore 本地保留;它们由
astra-sim-alibabacloud/inputs/topo/gen_Topo_Template.py 生成(见 quickstart 第 2 步)。
- .gitignore:忽略 astra-sim-alibabacloud/inputs/topo/Rail_Opti_SingleToR_* 与
仓根 /Rail_Opti_SingleToR_*(生成产物)。
- 保留 5 个 MockNccl 转发头(astra-sim/system/MockNccl{,Channel,Group,Log,Qps}.h)
作为到 SimCCL/mock/* 的向后兼容 shim;约 25 个源文件仍通过 astra-sim/system/
路径 include,故 shim 为有意保留(非无用代码)。
Review update (round 2)Changes
Tests
Submodule note (ordering)
Review 更新(第 2 轮)改动
测试
Submodule 说明(顺序依赖)
|
[EN] - Remove astra-sim/system/MockNccl.h forwarding shim: verified 0 references via the "astra-sim/system/MockNccl.h" include path (repo-wide grep); full ns3 build + microAllReduce e2e pass without it (addresses PR aliyun#294 request to delete mocknccl.h) - Dockerfile: use HTTPS pip index (drop http + trusted-host) to avoid MITM; compute site-packages path dynamically instead of hardcoding python3.12/dist-packages [ZH] - 删除 astra-sim/system/MockNccl.h 转发 shim:经全仓 grep 确认无任何经该路径的 include(0 引用);删除后全量 ns3 构建 + microAllReduce 端到端仿真均通过(回应 PR aliyun#294 删除 mocknccl.h 的要求) - Dockerfile:pip 源改用 HTTPS(去掉 http 与 trusted-host)避免 MITM;site-packages 路径动态计算,不再硬编码 python3.12/dist-packages
Review 修复 + 5.1 分析 + 测试结果 / Review fixes + shim analysis + testsCommit: 5.1 Mock shim 可行性分析(先分析后删)/ Mock shim analysis对
结论: 对其余 review 的回复 / Replies
静态测试(全量 ns3 构建)/ Static test (full ns3 build)compiler: g++ 13.3.0 / cmake 3.31.6。删除 MockNccl.h 后无任何编译错误。 动态测试(端到端仿真)/ Dynamic test (e2e simulation)依赖声明 / Dependencies本 PR 依赖 aliyun/SimCCL#4(SimCCL v2.30 mock)与 aliyun/ns-3-alibabacloud#22(CMake glob),需三者一起合并。submodule 指针当前指向 aliyun upstream base(SimCCL
|
三仓统一端到端集成测试 / Unified 3-repo end-to-end test在整合好的开发仓(SimCCL v2.30 + ns3 CMake glob + 本 PR astra-sim 改动)上,三仓改动合并后的完整验证。 构建矩阵 / Build matrix
compiler: g++ 13.3.0 / cmake 3.31.6。删除 ns3 端到端 + send_lat A/B(与 docs/getting_started/quickstart.md 预期值逐一对择)8 GPU / H20 /
另:16 GPU / 2 节点跨节点( analytical 运行 / analytical run坦诚标注 / Caveats
|
There was a problem hiding this comment.
回退一下,默认使用optimized可能导致bug
…back to debug
[EN]
- Remove 4 forwarding shims and 3 in-tree mock impls under astra-sim/system/
(MockNcclChannel/Group/Log.{cc,h}, MockNcclQps.h); mock now lives solely in
SimCCL (SimCCL/src/mock/<version>)
- Redirect all 23 remaining source includes from "astra-sim/system/MockNccl*.h"
(and bare "MockNcclLog.h") to "SimCCL/mock/MockNccl*.h" (version-agnostic;
resolved via the per-mode SimCCL/mock symlink or flat copy)
- Point mock source path to SimCCL/src/mock: astra-sim-alibabacloud/CMakeLists.txt
glob, build/astra_ns3/build.sh MOCK_SRC, build/simai_analytical/CMakeLists.txt
symlink
- Add the same SimCCL/mock symlink + include root to build/simai_phy/CMakeLists.txt
so phy resolves SimCCL/mock consistently
- ns3 back to debug: scripts/build.sh symlink dir (-debug) and
build/astra_ns3/build.sh `./ns3 configure -d debug --enable-mtp`
- Mock sources are provided by the SimCCL submodule (SimCCL/src/mock) once it is
bumped to the merged SimCCL (the three PRs merge together). Validated
end-to-end in the integrated SimAI monorepo: analytical + ns3 debug build +
8-GPU AllReduce simulation. NcclTreeFlowModel retained with updated include
path (its removal is a separate refactor, out of this PR's scope).
[ZH]
- 删除 astra-sim/system/ 下 4 个转发 shim 与 3 个内置 mock 实现
(MockNcclChannel/Group/Log.{cc,h}、MockNcclQps.h);mock 现仅存于 SimCCL
(SimCCL/src/mock/<版本>)
- 将全部 23 处源码 include 从 "astra-sim/system/MockNccl*.h"(及裸 "MockNcclLog.h")
改为 "SimCCL/mock/MockNccl*.h"(版本无关,经各模式 SimCCL/mock 软链或平铺拷贝解析)
- mock 源路径指向 SimCCL/src/mock:astra-sim-alibabacloud/CMakeLists.txt 的 glob、
build/astra_ns3/build.sh 的 MOCK_SRC、build/simai_analytical/CMakeLists.txt 的软链
- 为 build/simai_phy/CMakeLists.txt 补齐相同的 SimCCL/mock 软链 + include 根,
使 phy 一致解析
- ns3 回退 debug:scripts/build.sh 软链目录(-debug)与
build/astra_ns3/build.sh 的 `./ns3 configure -d debug --enable-mtp`
- mock 源由 SimCCL 子模块(SimCCL/src/mock)在其 bump 到合并后的 SimCCL 时提供
(三仓一起合并)。已在 SimAI 单体仓端到端验证:analytical + ns3 debug 构建 +
8-GPU AllReduce 仿真。NcclTreeFlowModel 保留并更新 include 路径(其删除属另一
重构,不在本 PR 范围)。
Update addressing review (2026-07)
Why the
ns3 back to debug (re: discussion_r3556089090 / discussion_r3556092216)
Static/dynamic test (integrated SimAI monorepo, Ubuntu 24.04, GCC 13.3.0):
|
…wModel
[EN]
- Delete NcclTreeFlowModel.cc/.hh (superseded by NcclFlowModel; Sys.cc only
instantiates NcclFlowModel, zero remaining references, dev builds clean)
- Add missing docs/CN/configuration/{build-options,env-variables,send-lat-analysis}.md
- Add missing docs/CN/getting_started/{installation,quickstart}.md to mirror EN docs
[ZH]
- 删除已废弃的 NcclTreeFlowModel.cc/.hh(已被 NcclFlowModel 取代;Sys.cc 仅实例化
NcclFlowModel,无其它引用,dev 可干净编译)
- 补齐缺失的 docs/CN/configuration/{build-options,env-variables,send-lat-analysis}.md
- 补齐缺失的 docs/CN/getting_started/{installation,quickstart}.md,与英文文档对齐
Test Report / 测试报告 (SimAI 1.7)Environment: Ubuntu 24.04, g++ 13.3.0, x86_64. Tested on the integrated tree (this PR + SimCCL#4 + ns-3-alibabacloud#22). 1. Static build / 静态构建
2. Dynamic run — ns3 end-to-end (8 GPU, H20,
|
| Case | Total time (ns) |
Doc value | Match |
|---|---|---|---|
| Baseline (send_lat_table) | 389,404 | 389,404 | YES |
AS_SEND_LAT=6 |
1,772 | 1,772 | YES |
AS_SEND_LAT=6000 |
169,604 | 169,604 | YES |
AS_SEND_LAT=7200 |
203,204 | 203,204 | YES |
Cross-node 16 GPU (2 nodes, all_gpus: 16): simulation completed exit 0, ranks 0-15 all active (146,800,640 bytes sent/received per node). Confirms the send_lat bucketing path (algorithm/protocol/gpus_per_node carried to flowTag) works end-to-end.
16 GPU 跨节点:仿真 exit 0,rank 0-15 全部参与,验证 send_lat 分桶路径端到端可用。
Output files generated as documented: ncclFlowModel_EndToEnd.csv, ncclFlowModel_detailed_N.csv, ncclFlowModel_detailed_flows.csv, *_dimension_utilization_*.csv.
3. Notes on this PR's changes / 本次改动说明
- Removed deprecated
NcclTreeFlowModel.cc/.hh:NcclFlowModelis a strict superset (rename +algorithm/protocol/gpus_per_nodecarried toflowTag).Sys.cconly instantiatesNcclFlowModel; zero remaining references toNcclTreeFlowModel. Tests above pass without it. - Added missing
docs/CN/configuration/*anddocs/CN/getting_started/*so Chinese docs mirror the English set. - 删除废弃的
NcclTreeFlowModel.*(NcclFlowModel为其严格超集;仅Sys.cc实例化,无其它引用)。 - 补齐缺失的中文文档
docs/CN/configuration/*与docs/CN/getting_started/*,与英文对齐。
… unsupported -busbw [EN] - Promote the automatic bus-bandwidth command (-nv/-nic/-n_p_s) to the primary runnable analytical example across README (EN/CN/JA), build-options, and Tutorial (EN/CN) - Retain the -busbw example/busbw.yaml command but annotate it as not wired in the current open-source analytical binary (flag not parsed; refer to earlier SimAI versions) - Fix build-options parameter table (-busbw row) and the backwards busbw description sentence [ZH] - 将自动总线带宽命令(-nv/-nic/-n_p_s)提升为 analytical 的主/默认可运行示例, 覆盖 README(EN/CN/JA)、build-options、Tutorial(EN/CN) - 保留 -busbw example/busbw.yaml 示例,但备注其在当前开源 analytical 二进制中未接线 (参数不解析;手动 busbw.yaml 用法请参考早期 SimAI 版本) - 修正 build-options 参数表(-busbw 行)与描述句中与现实相反的表述
Follow-up: analytical
|
| Command | Result |
|---|---|
./bin/SimAI_analytical ... -r test- -busbw example/busbw.yaml |
FAIL — exit 255, only prints usage/help (flag unrecognized) |
./bin/SimAI_analytical -w ./example/workload_analytical.txt -g 9216 -nv 360 -nic 48.5 -n_p_s 8 -g_p_s 8 -r example- |
PASS — exit 0, produced results/example-EndToEnd.csv (Total time 7,545,619) |
Doc change / 文档改动
- Promote the automatic-busbw command (
-nv/-nic/-n_p_s) to the primary, runnable default in README (EN/CN/JA),docs[/CN]/configuration/build-options.md, anddocs[/CN]/Tutorial.md. - Retain the
-busbw example/busbw.yamlcommand and busbw.yaml section, annotated as not wired in the current open-source binary (refer to earlier SimAI versions). - 保留
-busbw/busbw.yaml 内容并加注"当前开源二进制未接线",将自动档设为默认可运行示例。

Summary
SimAI 1.7: SimCCL v2.30 integration (NCCL-style collective flow decomposition) plus review fixes — MockNccl fully relocated to SimCCL, ns3 back to debug, EndToEnd null-guard.
Key Changes
MockNccl relocation to SimCCL
astra-sim/system/MockNccl shims and in-tree mock implementations; mock now lives solely in SimCCL (SimCCL/src/mock/<version>).SimCCL/mock/MockNccl*.h; updated mock source path toSimCCL/src/mock(astra-simCMakeLists.txt,astra_ns3/build.sh, analytical symlink); added the same symlink + include root tosimai_phy/CMakeLists.txt.EndToEnd null-deref guard
Layer::reportusesif (seprate_log && EndToEnd).end_to_endis null on non-zero ranks / when the writer isn't created (Workload.ccL53/L67/L71); the guard prevents a null dereference (segfault). Defensive fix; no behavior change with a valid writer.ns3 back to debug (reverted from optimized)
scripts/build.shsymlink →ns3.36.1-AstraSimNetwork-debug;astra-sim-alibabacloud/build/astra_ns3/build.sh→./ns3 configure -d debug --enable-mtp.SimCCL v2.30 + docs
Dependencies (land together)
SimCCL/src/mock)After all three merge, the SimCCL/ns-3 submodule pointers here are bumped to the merge commits.
Quick Verification (Ubuntu 24.04, GCC 13.3.0; integrated monorepo)
Part of SimAI 1.7 Release