Very long ns-3 simulation runtime for 64-GPU Megatron/MoE workload, looking for recommended acceleration settings
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- python
調査の方向性
workload_generator.SimAI_training_workload_generator と、示されている SimAI_simulator コマンドでワークロードを再現します。NS3_MTP と PHY_MTP のビルド構成およびランタイム処理を調査し、その後、64-GPU ケースで利用可能なシミュレーションまたは解析バックエンドを比較します。完了条件は、予想されるランタイム、推奨設定、大規模なワークロード向けのスケーラブルなワークフローを文書化することです。
索引モデルが issue の本文から書いたものです。
説明
Hi SimAI team,
Thank you for releasing SimAI. I am currently using SimAI to simulate communication time for large-model training workloads with custom topology and placement, and I have encountered a very long runtime when using the ns-3 backend. I would like to ask whether there are recommended settings, build options, or simulation modes that I may have missed.
My workload is generated by AICB / SimAI workload generator with the following configuration:
python3 -m workload_generator.SimAI_training_workload_generator \
--frame Megatron \
--model_name Mixtral_8x7B_tp8_dp2_cp4_ep4_sp_hier \
--world_size 64 \
--tensor_model_parallel_size 8 \
--context_parallel_size 4 \
--pipeline_model_parallel 1 \
--expert_model_parallel_size 4 \
--global_batch 2 \
--micro_batch 1 \
--epoch_num 1 \
--num_layers 32 \
--seq_length 4096 \
--hidden_size 4096 \
--num_attention_heads 32 \
--ffn_hidden_size 14336 \
--vocab_size 32000 \
--max_position_embeddings 4096 \
--moe_enable \
--moe_router_topk 2 \
--num_experts 8 \
--moe_grouped_gemm \
--enable_sequence_parallel \
--swiglu \
--use-distributed-optimizer
The generated workload has 64 GPUs, TP=8, DP=2, CP=4, EP=4, PP=1, 32 layers, and includes TP/CP collectives, EP all-to-all, and large DP/DP-MoE optimizer or gradient collectives. I found that although the current version reserves command-line arguments for CP, no further functionality has actually been implemented. Therefore, I additionally implemented the CP-related workload, collective groups, and communication components.
I run the ns-3 simulator with:
./bin/SimAI_simulator \
-t 48 \
-w <generated_workload.txt> \
-n <64gpu_topology.txt> \
-c <network.conf>
The machine has 96 logical CPUs:
2 sockets, 24 cores/socket, 2 threads/core
Intel Xeon Gold 5318Y
The current build appears to enable NS3_MTP but not PHY_MTP. I confirmed that the compile commands contain -DNS3_MTP, and I pass -t 48 to the simulator.
The simulation progresses correctly, but it is extremely slow. In one run, the forward phase and most backward input-gradient collectives completed, but the final large weight-gradient collectives were still very time-consuming. For example, the tail of the workload includes collectives such as:
moe_grad_norm2: REDUCESCATTER, size ~= 4.30 GB
moe_grad_norm1: ALLGATHER_DP_EP, size ~= 2.15 GB
grad_param_comm: REDUCESCATTER, size ~= 1.08 GB
grad_gather: ALLGATHER, size ~= 0.54 GB
These large collectives seem to dominate the runtime. I also noticed that CSV result files are only written after the full workload finishes, so it is difficult to obtain partial results if the final collectives take too long.
My questions are:
For this type of 64-GPU training workload, is ns-3 packet-level simulation expected to take this long?
Are there recommended build options to improve runtime, for example release mode instead of debug mode?
Should I enable PHY_MTP, NS3_MTP, or another backend/mode for large training workloads?
Is there a recommended way to use SimCCL-style acceleration or analytical collective timing while still preserving topology-aware communication behavior?
For paper-scale experiments such as 512/1024 GPUs, which backend and settings were used in your evaluation to keep simulation runtime manageable?
Any guidance on the recommended workflow for large-scale Megatron/MoE communication simulation would be greatly appreciated.
Thanks!
- 主要言語
- Python
- スター
- 1.2k
- フォーク
- 189
- 平均マージ
- 29分
- マージ済み PR(30日)
- 1
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
aliyun/SimAI のほかの issue
-
运行vidur时,采用“backend=aicb” 导致 attention 耗时路径读取缺失的 attn_kv_cache_save_* 字段并触发 KeyError対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
Duplicated groups for EP and DP_EP対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
hpn组网问题オープン
難易度 4/5 1〜2日 初心者へのやさしさ 45/100
-
Spectrum-X和HPN组网下,通信仿真时间问题対応中かも @tianhao909 が 13 日前に担当しました。 オープン
似ている issue
-
The changelog workflow excludes otelbot but not dependabot, so every Dependabot pull request fails the changelog check対応中かも @ocelotl が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
open-telemetry/opentelemetry-python#5825 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cuga-project/cuga-agent#1020 ·
メンテナーはふだん 2 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
microsoft/playwright#43640 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
stac-utils/stac-fastapi-elasticsearch-opensearch#965 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信