Skip to content
Merged
Show file tree
Hide file tree
Changes from 205 commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
9666d79
test: improve core unit coverage
AlexMa616 May 22, 2026
2036f99
ci: fix cuda-only unit test condition
AlexMa616 May 22, 2026
d8f587a
ci: remove cuda-only matrix conditions
AlexMa616 May 22, 2026
97a9a0c
test: focus coverage changes on training
AlexMa616 May 22, 2026
064e3fb
ci: run unit test matrix sequentially
AlexMa616 May 22, 2026
288334c
ci: keep unit test matrix parallel
AlexMa616 May 22, 2026
c88312c
test: expand theoretical memory coverage
AlexMa616 May 22, 2026
de83600
test: raise training coverage for arguments and configs
AlexMa616 May 22, 2026
0fa0fd0
test: fix yaml argument namespace collision
AlexMa616 May 23, 2026
c428c98
test: avoid yaml namespace duplicate keys
AlexMa616 May 24, 2026
9aee133
test: expand training utility coverage
AlexMa616 May 24, 2026
09466d4
test: cover training async and logging helpers
AlexMa616 May 25, 2026
3b4c013
test: cover training arguments and checkpoint helpers
AlexMa616 May 25, 2026
793b958
test: avoid mpu dependency in checkpoint path test
AlexMa616 May 25, 2026
c8343a4
test: fix checkpoint transpose shape fixture
AlexMa616 May 25, 2026
c0d8d07
test: isolate checkpoint cleanup from distributed rank
AlexMa616 May 25, 2026
ab3f712
test: harden training coverage helpers
AlexMa616 May 25, 2026
640bbe9
test: expand training coverage safely
AlexMa616 May 25, 2026
fec9e66
test: broaden training coverage paths
AlexMa616 May 26, 2026
3ff3d7d
test: fix training sample expectation
AlexMa616 May 26, 2026
40050be
test: align data loader phase sample setup
AlexMa616 May 26, 2026
bb083df
test: align validation iterator expectations
AlexMa616 May 26, 2026
918721b
test: limit dummy train rerun loop
AlexMa616 May 26, 2026
2cc3a60
test: harden coverage helper fakes
AlexMa616 May 26, 2026
e57f2d9
test: broaden training loop coverage
AlexMa616 May 26, 2026
1fb2522
test: reduce cpu offloading gpu pressure
AlexMa616 May 26, 2026
e6c76fe
test: expand training coverage paths
AlexMa616 May 26, 2026
98ad590
test: fix train step scheduler increment expectation
AlexMa616 May 26, 2026
9dbf07d
test: add eval iters to train flow fake args
AlexMa616 May 27, 2026
c83e77b
test: harden training coverage fakes
AlexMa616 May 27, 2026
4351d8a
test: align skipped iteration sample accounting
AlexMa616 May 27, 2026
3eab235
test
AlexMa616 May 27, 2026
6f48d0e
test1
AlexMa616 May 27, 2026
37c63fa
test2
AlexMa616 May 27, 2026
6298ec6
test3
AlexMa616 May 27, 2026
a97ccc6
test4
AlexMa616 May 27, 2026
47738e9
test5
AlexMa616 May 27, 2026
a9fe701
test6
AlexMa616 May 27, 2026
b4530db
test7
AlexMa616 May 27, 2026
b18f331
test8
AlexMa616 May 27, 2026
18a574a
Fix test_load_biencoder_checkpoint_can_load_only_query_model to avoid…
AlexMa616 May 27, 2026
fc8b5d8
test9
AlexMa616 May 27, 2026
2e95382
test: fix biencoder checkpoint coverage setup
AlexMa616 May 27, 2026
725a48d
test: avoid duplicate yaml config keys
AlexMa616 May 27, 2026
ffc258a
update GOLDEN_CONFIG to fix CI config drift
AlexMa616 May 28, 2026
2cb0e8f
test: improve Metax core coverage
AlexMa616 Jun 2, 2026
40895ff
test: stabilize Metax CI cases
AlexMa616 Jun 2, 2026
d5e6b10
test: handle Metax CI compatibility gaps
AlexMa616 Jun 2, 2026
f0db30e
test: fix Metax core and Mamba MoE cases
AlexMa616 Jun 2, 2026
7d87937
test: make NVTX decorator test dependency independent
AlexMa616 Jun 2, 2026
73ae489
test: add lightweight Metax core coverage
AlexMa616 Jun 2, 2026
1edd465
test: fix MIMO config lightweight coverage
AlexMa616 Jun 2, 2026
945af4d
test: fix dynamic inference event coverage
AlexMa616 Jun 2, 2026
afaadc2
test: expand stable Metax core coverage
AlexMa616 Jun 2, 2026
3178142
test: broaden stable core coverage paths
AlexMa616 Jun 2, 2026
7d932ff
test: expand stable Metax core training coverage
AlexMa616 Jun 3, 2026
59e5500
test: relax timer sync count assertion
AlexMa616 Jun 3, 2026
773699e
test: stabilize dynamic inference coverage
AlexMa616 Jun 3, 2026
7f460d7
test: avoid fake stream tensor record path
AlexMa616 Jun 3, 2026
ab99b7c
test: fix dict utils matching expectations
AlexMa616 Jun 3, 2026
9d515de
test: align dict utils merge coverage
AlexMa616 Jun 3, 2026
f38bc7a
test: fix nonpersistent extraction index
AlexMa616 Jun 3, 2026
c57f23c
test: harden core coverage isolation
AlexMa616 Jun 3, 2026
33ab31f
test: use slice for fake flattened ranges
AlexMa616 Jun 3, 2026
8349339
test: exercise offload bulk queue flow
AlexMa616 Jun 3, 2026
68741b1
test: align sharded tensor rank offset axis
AlexMa616 Jun 3, 2026
fac7a79
test: align cuda graph token count expectations
AlexMa616 Jun 3, 2026
5d491d9
test: limit unit matrix to core while stabilizing
AlexMa616 Jun 3, 2026
dc6c61e
test: avoid tensor boolean in all gather mock
AlexMa616 Jun 3, 2026
b4dc9cd
test: keep core version helpers comparable
AlexMa616 Jun 3, 2026
07daa12
test: align packed seq padded index expectation
AlexMa616 Jun 3, 2026
1f5f7e3
test: reach train sample assertion path
AlexMa616 Jun 3, 2026
cdb847b
test: extend core lightweight coverage
AlexMa616 Jun 3, 2026
c3ed723
test: expand high-yield core coverage
AlexMa616 Jun 4, 2026
956684c
test: use valid ddp fp32 accumulation config
AlexMa616 Jun 4, 2026
a6b4090
test: cover lightweight inference server and masked dataset
AlexMa616 Jun 4, 2026
c21d6d6
test: align completions engine call assertion
AlexMa616 Jun 4, 2026
e84a946
test
AlexMa616 Jun 4, 2026
a3e7719
test: fix rotary interleaved guard case
AlexMa616 Jun 4, 2026
270ed4b
test: avoid unsupported overlap p2p arg
AlexMa616 Jun 4, 2026
5e088dc
test: allow falsey no load optim default
AlexMa616 Jun 4, 2026
62b76de
test: use type fake for blended dataset
AlexMa616 Jun 4, 2026
5578ac1
test: restore checkpoint isfile for msc branch
AlexMa616 Jun 4, 2026
f1b0f3f
test: cover layer-wise optimizer cpu paths
AlexMa616 Jun 4, 2026
f4be65e
test: expand dynamic context cpu coverage
AlexMa616 Jun 4, 2026
19adde0
test: cover dynamic engine request lifecycle paths
AlexMa616 Jun 4, 2026
f01fd41
test: cover dynamic text generation internals
AlexMa616 Jun 4, 2026
2e75282
test: cover distributed optimizer cpu maps
AlexMa616 Jun 4, 2026
470bffd
test: cover cuda graph cpu helpers
AlexMa616 Jun 4, 2026
6bf48a1
test: cover dynamic engine graph setup paths
AlexMa616 Jun 4, 2026
8de30a5
test: cover cuda graph runner and fsdp buffer helpers
AlexMa616 Jun 4, 2026
d5ce4ae
test: cover dynamic engine scheduling cleanup paths
AlexMa616 Jun 4, 2026
1941d96
test: cover dynamic engine request lifecycle paths
AlexMa616 Jun 4, 2026
9e2926d
test: cover cuda graph global lifecycle paths
AlexMa616 Jun 4, 2026
a9d6b6b
test: cover checkpoint argument loading paths
AlexMa616 Jun 4, 2026
19c11bb
test: keep dynamic context cpu cache path unfused
AlexMa616 Jun 5, 2026
0c276e6
test: add chunked prefill flag to dynamic context fake
AlexMa616 Jun 5, 2026
2e854e6
test: match dynamic engine byte formatting
AlexMa616 Jun 5, 2026
8a64b2b
test: make dynamic engine graph timing mocks reusable
AlexMa616 Jun 5, 2026
8be7755
test: cover dynamic text generation server lifecycle
AlexMa616 Jun 5, 2026
ec41814
test: cover kv block allocator cpu paths
AlexMa616 Jun 5, 2026
a63fcd3
test: cover hybrid cp data schedule paths
AlexMa616 Jun 5, 2026
0f522e1
test: cover training grad finalization helpers
AlexMa616 Jun 5, 2026
258db02
test: cover hybrid cp scheduling paths
AlexMa616 Jun 5, 2026
e1146ea
test: cover pipeline p2p communicator paths
AlexMa616 Jun 5, 2026
7022bcd
test: cover fsdp mixed precision helpers
AlexMa616 Jun 5, 2026
8c41c20
test: cover fsdp param grad buffer core paths
AlexMa616 Jun 5, 2026
6af1b09
test: cover pipeline schedule no-pipeline paths
AlexMa616 Jun 5, 2026
255d976
test: cover distributed optimizer state paths
AlexMa616 Jun 5, 2026
cfa9f8c
test: cover optimizer wrapper training paths
AlexMa616 Jun 5, 2026
cf83da4
test: accept tensor bool memory availability
AlexMa616 Jun 5, 2026
df69ebb
test: expect decorated server backend exit
AlexMa616 Jun 5, 2026
febfef1
test: import clip grads module explicitly
AlexMa616 Jun 5, 2026
cf2c95b
test: patch clip grad function globals
AlexMa616 Jun 5, 2026
177e1f3
test: load clip grads module directly
AlexMa616 Jun 5, 2026
7f4d5b0
test: bypass clip grads override wrappers
AlexMa616 Jun 5, 2026
e00278b
test: load grad modules by source path
AlexMa616 Jun 5, 2026
561ecf1
test: mock fsdp grad without parameter descriptor
AlexMa616 Jun 5, 2026
581fdec
test: expect averaged no-pipeline loss
AlexMa616 Jun 5, 2026
5633687
test: stub missing ring exchange op
AlexMa616 Jun 5, 2026
8919d8e
test: write p2p mock tensors without grad
AlexMa616 Jun 5, 2026
89372b1
test: cache fsdp global buffer mock tensors
AlexMa616 Jun 5, 2026
c0fe396
test: name fsdp expert param path correctly
AlexMa616 Jun 5, 2026
9e4168c
test: broaden core training CPU coverage
AlexMa616 Jun 6, 2026
b6480f4
test: broaden core optimizer and transformer coverage
AlexMa616 Jun 6, 2026
7e9aa46
test: broaden core and training coverage surface
AlexMa616 Jun 6, 2026
dfd17bf
test: expand core CPU coverage across training paths
AlexMa616 Jun 6, 2026
604b5b8
test: stabilize timer elapsed clock
AlexMa616 Jun 6, 2026
e98d3db
test: preserve timer values in gather mock
AlexMa616 Jun 6, 2026
f1b2dcc
test: isolate checkpoint exchange gather scenarios
AlexMa616 Jun 6, 2026
a2e1505
test: configure precision-aware optimizer derived flag
AlexMa616 Jun 6, 2026
a532096
test: avoid metax gc teardown aborts
AlexMa616 Jun 6, 2026
15f61a2
test: restore optimizer state without autograd
AlexMa616 Jun 6, 2026
feee5ed
test: release fsdp bucket before shard allocation
AlexMa616 Jun 6, 2026
bb24fa0
test: model fsdp expert parameter naming
AlexMa616 Jun 6, 2026
3f4e4a0
test: use hashable protected param override
AlexMa616 Jun 6, 2026
53bdf53
test: use valid fp32 optimizer configuration
AlexMa616 Jun 6, 2026
2ffe0c8
test: mirror optimizer constructor signatures
AlexMa616 Jun 6, 2026
b8d5e3f
test: use primary optimizer instance for engram
AlexMa616 Jun 6, 2026
e44773a
test: model parallel process group interface
AlexMa616 Jun 6, 2026
be8b05c
test: pass virtual pipeline stage explicitly
AlexMa616 Jun 6, 2026
32b8fdf
test: reach multimodule cycle validation
AlexMa616 Jun 6, 2026
b5df9b6
test: provide model config for process groups
AlexMa616 Jun 6, 2026
d335cb7
test: stabilize remaining CPU coverage paths
AlexMa616 Jun 6, 2026
d209481
test: relax tensor parallel wrapper value check
AlexMa616 Jun 7, 2026
5d77f70
test: snapshot tensor parallel reduce expectation
AlexMa616 Jun 7, 2026
ed4ebac
test: assert tensor parallel layout transforms
AlexMa616 Jun 7, 2026
f8fa6bc
test: avoid brittle theoretical memory ordering
AlexMa616 Jun 7, 2026
532dd9c
test: isolate tensor parallel RNG tracker state
AlexMa616 Jun 7, 2026
5fca9fa
ci: restore full unit test matrix
AlexMa616 Jun 7, 2026
983f3be
ci: enable transformer unit test group
AlexMa616 Jun 7, 2026
01cbf5b
ci: keep transformer unit group disabled
AlexMa616 Jun 7, 2026
9687856
ci: align CUDA and Metax coverage scope
AlexMa616 Jun 9, 2026
e2e00a2
test: complete dynamic context rotary config
AlexMa616 Jun 10, 2026
13b0573
test: isolate clip grad torch factories
AlexMa616 Jun 10, 2026
eaad420
test: isolate grad finalization coverage state
AlexMa616 Jun 10, 2026
0ebc7fb
test: stabilize core grad and mamba config cases
AlexMa616 Jun 10, 2026
b288452
Merge branch 'main' into metax-test
AlexMa616 Jun 10, 2026
d291624
test: provide tp group for fp32 optimizer coverage
AlexMa616 Jun 11, 2026
a136318
ci: restore Metax functional artifact mounts
AlexMa616 Jun 11, 2026
765dc36
test: fix chained optimizer norm expectation
AlexMa616 Jun 11, 2026
d5bfe27
test: fix distributed optimizer shard expectation
AlexMa616 Jun 11, 2026
2e7d2b6
test: update Metax benchmark golden platform to C550
AlexMa616 Jun 11, 2026
65b1081
ci: isolate unstable Megatron FSDP tests
AlexMa616 Jun 11, 2026
7649302
ci: preserve unit groups when isolating FSDP
AlexMa616 Jun 11, 2026
6f315ac
ci: minimize A100 FSDP stabilization
AlexMa616 Jun 11, 2026
eaf3e37
test: enable distributed mode for precision-aware optimizer
AlexMa616 Jun 11, 2026
ce64c6e
test: make optimizer override inputs explicit
AlexMa616 Jun 11, 2026
e36d6de
test: isolate saved mixed precision parameters
AlexMa616 Jun 11, 2026
ffde6dd
ci: skip sporadic A100 sequence gather OOM
AlexMa616 Jun 11, 2026
889066b
test: reset optimizer shard views without autograd
AlexMa616 Jun 11, 2026
a74aff8
fix: disable autograd during reshardable optimizer load
AlexMa616 Jun 11, 2026
793f1aa
fix: avoid expert group lookup for non-MoE state
AlexMa616 Jun 11, 2026
1d5fbaf
test: use actual free memory for SwiGLU OOM path
AlexMa616 Jun 11, 2026
6e975e3
test: align synthetic FSDP optimizer state keys
AlexMa616 Jun 11, 2026
e833243
test: isolate synthetic FSDP optimizer paths
AlexMa616 Jun 11, 2026
1072659
test: tolerate missing NCCL premul helper
AlexMa616 Jun 11, 2026
dda8c3f
test: avoid shared GPU memory exhaustion
AlexMa616 Jun 11, 2026
4d51650
test: synchronize bridge communicator teardown
AlexMa616 Jun 11, 2026
0c4990c
test: bind torchrun workers to local devices
AlexMa616 Jun 11, 2026
9bea167
test: stabilize FSDP DCP metadata exchange
AlexMa616 Jun 11, 2026
f859d9a
test: reduce heterogeneous GPT forward memory
AlexMa616 Jun 11, 2026
c359b76
test: isolate chained optimizer TP state
AlexMa616 Jun 11, 2026
9ca5060
test: fix layer-wise optimizer shard expectations
AlexMa616 Jun 11, 2026
5ed04d9
test: isolate compiler caches per torchrun rank
AlexMa616 Jun 11, 2026
49e47ba
ci: resolve Qwen tokenizer artifact paths
AlexMa616 Jun 11, 2026
ad78f29
ci: accept mounted Hugging Face tokenizer assets
AlexMa616 Jun 11, 2026
8923823
ci: temporarily skip metax tp2 pp2 benchmark
AlexMa616 Jun 11, 2026
3e79240
test: allow portable qwen functional loss tolerance
AlexMa616 Jun 12, 2026
f4858d6
ci: temporarily disable FlagScale PR trigger
AlexMa616 Jun 12, 2026
e435648
ci: make FlagScale tests manual only
AlexMa616 Jun 12, 2026
6498309
test: stabilize fused MLA RoPE inputs
AlexMa616 Jun 12, 2026
5ad0124
Merge remote-tracking branch 'upstream/main' into metax-test
AlexMa616 Jun 16, 2026
281cb84
test: tolerate sparse MLA RoPE bf16 outliers
AlexMa616 Jun 16, 2026
59a9572
test: prioritize native coverage for training and plugins
AlexMa616 Jun 22, 2026
cef5b6b
test: preserve focused training regressions
AlexMa616 Jun 22, 2026
5fa7f8c
test: retain sys import for plugin lazy resolution
AlexMa616 Jun 22, 2026
6db68d6
fix: make platform capability checks portable
AlexMa616 Jun 22, 2026
f7ceeed
test: remove coverage duplicated by native training suites
AlexMa616 Jun 22, 2026
727a4b6
fix: resolve MoE tracker from its owning module
AlexMa616 Jun 22, 2026
2546f91
test: cover hetero plugin mesh communication paths
AlexMa616 Jun 23, 2026
5cb936d
ci: skip unstable A100 MLA RoPE SBHD split cases
AlexMa616 Jun 23, 2026
d1f70c7
test: initialize bare hetero parallel context state
AlexMa616 Jun 23, 2026
9d72175
test: expand plugin platform and hetero context coverage
AlexMa616 Jun 23, 2026
8d6fa2c
test: stabilize mocked txda and mla rope fusion ci
AlexMa616 Jun 23, 2026
a289ffd
ci: clean up tokenizer and plugin test wiring
AlexMa616 Jun 26, 2026
6bc8c34
ci: keep plugin coverage in core unit group
AlexMa616 Jun 26, 2026
f473f10
test: avoid unnecessary layer-wise optimizer source change
AlexMa616 Jun 26, 2026
5f06a3e
test: remove redundant expert offset guard
AlexMa616 Jun 26, 2026
dfadbcf
plugin: clarify cuda nvml metric fallback
AlexMa616 Jun 26, 2026
649f758
plugin: expose cuda nvml metric errors
AlexMa616 Jun 26, 2026
d9a470f
test: cover fp32 dp reshardable optimizer load
AlexMa616 Jun 26, 2026
12f2f2c
test: revert unproven core source changes
AlexMa616 Jun 26, 2026
04e4668
retest
AlexMa616 Jun 26, 2026
8c76c9e
retest1
AlexMa616 Jun 26, 2026
b12c799
retest3
AlexMa616 Jun 26, 2026
ea2146c
retest4
AlexMa616 Jun 26, 2026
b7b5213
test: avoid duplicate experimental pytest option
AlexMa616 Jun 29, 2026
f612c80
ci: expand mixed core test paths correctly
AlexMa616 Jun 29, 2026
284dcda
test: skip platform monitoring checks without pynvml
AlexMa616 Jun 29, 2026
de73109
test: synchronize unit test data setup across ranks
AlexMa616 Jun 29, 2026
08b5267
ci: tolerate optional metax optimizer dependency failure
AlexMa616 Jun 29, 2026
4a223ae
ci: skip optional emerging optimizers on metax
AlexMa616 Jun 30, 2026
cf66b55
test: skip dist checkpointing muon tests without emerging optimizers
AlexMa616 Jun 30, 2026
6187249
ci: retrigger metax tests
AlexMa616 Jul 1, 2026
8653079
test: relax mocked npu mstx signatures
AlexMa616 Jul 1, 2026
601fcb8
test: harden mocked npu mstx backend
AlexMa616 Jul 1, 2026
b1017e0
test: cover cpu fp16 mkldnn probe paths
AlexMa616 Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/configs/cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,13 @@ test_matrix:
- tests/unit_tests/dist_checkpointing/test_layer_wise_optimizer.py ## sporadic cuda malloc error on CI machines, tests passed locally
- tests/unit_tests/distributed/test_grad_sync_with_expert_parallel.py
- tests/unit_tests/distributed/test_param_and_grad_buffer.py ## test_bucket_sizes[True-True-False-18050] FAILED NCCL SIGABRT
# Sporadic CUDA async allocation failure leaves NCCL ranks on different collective sequences.
- tests/unit_tests/distributed/megatron_fsdp/test_mfsdp_fully_shard.py::TestMegatronFsdpFullyShard::test_fully_shard_custom_dtype
- tests/unit_tests/export/trtllm/test_distributed_fp8.py
- tests/unit_tests/export/trtllm/test_single_device_fp8.py
- tests/unit_tests/export/trtllm/test_trtllm_helper.py
- tests/unit_tests/pipeline_parallel/test_pipeline_layout.py ## sporadic cuda malloc error on CI machines, tests passed locally
- tests/unit_tests/tensor_parallel/test_mappings.py::test_GatherFromSequenceParallelRegion ## sporadic NCCL all-gather OOM on shared A100 CI runner
- tests/unit_tests/transformer/moe/test_a2a_token_dispatcher.py
- tests/unit_tests/transformer/moe/test_token_dispatcher.py ## sporadic cuda malloc error on CI machines, tests passed locally
- tests/unit_tests/test_inference.py
Expand Down Expand Up @@ -86,6 +89,12 @@ test_matrix:
- tests/unit_tests/transformer/test_thd_correctness.py::test_thd_format[long_short_mix] ## TE version does not support CP + THD format attention
- tests/unit_tests/transformer/experimental_attention_variant/test_absorbed_mla.py
- tests/unit_tests/transformer/experimental_attention_variant/test_attention_variant_dsa.py
# KV-split MLA RoPE fusion hits sporadic Triton autotune/compile failures on shared A100 CI.
# Keep the inplace MLA RoPE cases enabled for coverage.
- tests/unit_tests/fusions/test_mla_yarn_rope_apply.py::TestFusedMLARope::test_kv_split_forward_backward[False-sbhd]
- tests/unit_tests/fusions/test_mla_yarn_rope_apply.py::TestFusedMLARope::test_kv_split_forward_backward[True-sbhd]
- tests/unit_tests/fusions/test_mla_yarn_rope_apply.py::TestFusedMLARope::test_kv_split_forward_backward[False-thd]
- tests/unit_tests/fusions/test_mla_yarn_rope_apply.py::TestFusedMLARope::test_kv_split_forward_backward[True-thd]
- tests/unit_tests/dist_checkpointing/test_local.py
- tests/unit_tests/dist_checkpointing/test_serialization.py::TestSerialization::test_remove_sharded_tensors ## NCCL hangs inexplicably during distributed barrier with TP=2 PP=4 on 8 GPUs

Expand Down
108 changes: 67 additions & 41 deletions .github/configs/metax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ runner_labels:
# - /home/flagscale_cicd/docker/docker_build/docker_data/Megatron-LM/datasets:/opt/data/datasets
# - /home/flagscale_cicd/docker/docker_build/docker_tokenizers/Megatron-LM/tokenizers:/opt/data/tokenizers

# Container volumes for online env
# The mx-4g-cicd-megatron runner publishes shared artifacts under
# /mnt/airs-business. Using the legacy /mnt/op paths creates empty bind mounts.
container_volumes:
- /mnt/airs-business/cicd/baai_datasets:/home/gitlab-runner/data
- /mnt/airs-business/cicd/baai_tokenizers:/home/gitlab-runner/tokenizers
Expand Down Expand Up @@ -54,8 +55,17 @@ test_matrix:
# single test cases below are unstable on Metax now, need further investigation
## 1.core
- tests/unit_tests/test_fp8_param.py
- tests/unit_tests/test_optimizer.py ## RuntimeError: No CUDA GPUs are available
- tests/unit_tests/test_utils.py
# Keep the generic optimizer tests enabled. These cases construct CUDA tensors,
# Transformer Engine optimizers, device meshes, or real distributed optimizers.
- tests/unit_tests/test_optimizer.py::test_chained_optimizer
- tests/unit_tests/test_optimizer.py::test_precision_aware_fused_adam
- tests/unit_tests/test_optimizer.py::test_precision_aware_optimizer
- tests/unit_tests/test_optimizer.py::test_distrib_optimizer_save_load_with_non_tensor_state
- tests/unit_tests/test_optimizer.py::test_optim_sharded_state_dict
- tests/unit_tests/test_optimizer.py::test_optimizer_reload_model_params
- tests/unit_tests/test_optimizer.py::test_get_megatron_optimizer_with_custom_process_groups
- tests/unit_tests/test_optimizer.py::test_get_megatron_optimizer_custom_process_groups_validation
- tests/unit_tests/test_utils.py::test_straggler_detector
# Metax C500 CPU optimizer offload overlap has larger numeric drift than CUDA tolerance.
- tests/unit_tests/test_optimizer_cpu_offloading.py::test_overlap_cpu_optimizer_d2h_h2d_sync_correctness

Expand All @@ -65,7 +75,7 @@ test_matrix:
# need cuda
- tests/unit_tests/models/test_mamba_model.py
# Metax image has an incompatible mamba_ssm/causal_conv1d CUDA extension signature.
- tests/unit_tests/models/test_mamba_moe_model.py
- tests/unit_tests/models/test_mamba_moe_model.py::TestMambaMoEModel::test_forward
# Metax C500 MIMO 1F1B 8-GPU layouts hit missing tensor model-parallel group initialization.
- tests/unit_tests/models/test_mimo_1f1b_schedule.py::TestMimo1F1BSchedule::test_encoder_tp2_llm_tp2_pp3_8gpu
- tests/unit_tests/models/test_mimo_1f1b_schedule.py::TestMimo1F1BSchedule::test_full_pp_8gpu
Expand All @@ -75,6 +85,9 @@ test_matrix:
# Metax C500 MIMO checkpoint follows the same HyperCommGrid + TE attention path and fails with
# "tensor model parallel group is not initialized" when GPTModel/SelfAttention is instantiated.
- tests/unit_tests/models/test_mimo_checkpoint.py
# Metax C500 TE package misses transformer_engine_torch.get_fused_attn_backend.
- tests/unit_tests/models/test_llava_model.py::TestLLaVAModel::test_forward
- tests/unit_tests/models/test_llava_model.py::TestLLaVAModel::test_forward_fsdp

# 3.transformer
# TE _extra_state compatibility issue with AbsorbedMLA
Expand Down Expand Up @@ -131,6 +144,10 @@ test_matrix:
# Metax C500 8-GPU layer-wise optimizer checkpointing times out in
# determine_main_replica_uniform_distribution/all_gather_object during fully-parallel save.
- tests/unit_tests/dist_checkpointing/test_layer_wise_optimizer.py::TestLayerWiseOptimizer::test_optimizer_common_state_dict
# Metax CI image does not install nvidia-resiliency-ext; keep mcore async strategy covered.
- tests/unit_tests/dist_checkpointing/test_async_save.py::TestAsyncSave::test_get_async_strategy[nvrx]
# Metax torch-dist checkpointing strategy does not expose remove_sharded_tensors in this image.
- tests/unit_tests/dist_checkpointing/test_serialization.py::TestSerialization::test_remove_sharded_tensors

# 6.distributed
- tests/unit_tests/distributed/test_distributed_data_parallel.py
Expand Down Expand Up @@ -168,52 +185,60 @@ test_matrix:
#11.unit_tests/utils

# === Need >2 GPU(model_size > 2) ===
# Metax runner has recovered to 8 GPUs. In ignored_tests, uncommented "- ..." entries
# are skipped by pytest, so keep these historical records commented to let CI run them.
# core: tp=2,pp=4 or tp=world_size
- tests/unit_tests/test_parallel_state.py
- tests/unit_tests/test_hyper_comm_grid.py

# models: tp≥4
- tests/unit_tests/models/test_t5_model.py
- tests/unit_tests/models/test_llava_model.py
# - tests/unit_tests/test_parallel_state.py
# - tests/unit_tests/test_hyper_comm_grid.py
# models: tp>=4
# - tests/unit_tests/models/test_t5_model.py
# - tests/unit_tests/models/test_llava_model.py
# transformer: tp*pp>2 or ep>2
- tests/unit_tests/transformer/test_transformer_layer.py
- tests/unit_tests/transformer/test_submodule_callables.py
- tests/unit_tests/transformer/experimental_attention_variant/test_absorbed_mla.py
- tests/unit_tests/transformer/moe/test_sequential_mlp.py
- tests/unit_tests/transformer/moe/test_token_dispatcher.py
# tensor_parallel: tp≥4 or tp*pp=8
- tests/unit_tests/tensor_parallel/test_cross_entropy.py
- tests/unit_tests/tensor_parallel/test_mappings.py
- tests/unit_tests/tensor_parallel/test_data.py
- tests/unit_tests/tensor_parallel/test_random.py
- tests/unit_tests/tensor_parallel/test_initialization.py
- tests/unit_tests/tensor_parallel/test_tensor_parallel_utils.py
- tests/unit_tests/tensor_parallel/test_layers.py
# pipeline_parallel: pp≥4
- tests/unit_tests/pipeline_parallel/test_schedules.py
- tests/unit_tests/pipeline_parallel/test_pipeline_layout.py
- tests/unit_tests/pipeline_parallel/test_bridge_communicator.py
# - tests/unit_tests/transformer/test_transformer_layer.py
# - tests/unit_tests/transformer/test_submodule_callables.py
# - tests/unit_tests/transformer/experimental_attention_variant/test_absorbed_mla.py
# - tests/unit_tests/transformer/moe/test_sequential_mlp.py
# - tests/unit_tests/transformer/moe/test_token_dispatcher.py
# tensor_parallel: tp>=4 or tp*pp=8
# - tests/unit_tests/tensor_parallel/test_cross_entropy.py
# - tests/unit_tests/tensor_parallel/test_mappings.py
# - tests/unit_tests/tensor_parallel/test_data.py
# - tests/unit_tests/tensor_parallel/test_random.py
# - tests/unit_tests/tensor_parallel/test_initialization.py
# - tests/unit_tests/tensor_parallel/test_tensor_parallel_utils.py
# - tests/unit_tests/tensor_parallel/test_layers.py
# pipeline_parallel: pp>=4
# - tests/unit_tests/pipeline_parallel/test_schedules.py
# - tests/unit_tests/pipeline_parallel/test_pipeline_layout.py
# - tests/unit_tests/pipeline_parallel/test_bridge_communicator.py
# distributed: pp=4
# - tests/unit_tests/distributed/test_grad_reduce_for_replicated_embedder.py
# dist_checkpointing: tp*pp=8
# - tests/unit_tests/dist_checkpointing/test_serialization.py
# - tests/unit_tests/dist_checkpointing/test_strict.py
# - tests/unit_tests/dist_checkpointing/test_async_save.py
# - tests/unit_tests/dist_checkpointing/test_msc.py
# - tests/unit_tests/dist_checkpointing/test_torch_dist.py
# - tests/unit_tests/dist_checkpointing/test_replication.py
# ssm: cp>=4 or tp=4
# - tests/unit_tests/ssm/test_mamba_mixer.py
# - tests/unit_tests/ssm/test_mamba_context_parallel.py

# Metax runtime aborts in multimodule bridge communicator teardown.
- tests/unit_tests/pipeline_parallel/test_multimodule_communicator.py
# Metax C500 TE package misses transformer_engine_torch.get_fused_attn_backend, so the 8-GPU
# multimodule schedule path aborts inside TE attention backend selection.
- tests/unit_tests/pipeline_parallel/test_multimodule_schedules.py::TestMultimoduleSchedules::test_single_encoder_8gpu
- tests/unit_tests/pipeline_parallel/test_multimodule_schedules.py::TestMultimoduleSchedules::test_dual_encoder_8gpu
# Metax C500 bridge communicator combined send/recv paths hit Maca invalid device pointer.
- tests/unit_tests/pipeline_parallel/test_bridge_communicator.py::TestBridgeCommunicator::test_send_forward_recv_backward_send_backward_recv_forward
# Metax C500 transformer-block bridge path hits NCCL/Maca invalid device pointer during all_reduce.
- tests/unit_tests/pipeline_parallel/test_bridge_communicator.py::TestBridgeCommunicator::test_bridge_communicator_with_transformer_blocks
# Metax C500 TE package misses transformer_engine_torch.get_fused_attn_backend.
- tests/unit_tests/pipeline_parallel/test_pipeline_layout.py::test_forward_vpp
# Metax C500 pipeline CI hits flaky fine-grained activation offload paths.
- tests/unit_tests/pipeline_parallel/test_fine_grained_activation_offloading.py
# distributed: pp=4
- tests/unit_tests/distributed/test_grad_reduce_for_replicated_embedder.py
# dist_checkpointing: tp*pp=8
- tests/unit_tests/dist_checkpointing/test_serialization.py
- tests/unit_tests/dist_checkpointing/test_strict.py
- tests/unit_tests/dist_checkpointing/test_async_save.py
- tests/unit_tests/dist_checkpointing/test_msc.py
- tests/unit_tests/dist_checkpointing/test_torch_dist.py
- tests/unit_tests/dist_checkpointing/test_replication.py
# ssm: cp≥4 or tp=4
- tests/unit_tests/ssm/test_mamba_mixer.py
- tests/unit_tests/ssm/test_mamba_context_parallel.py

- tests/unit_tests/pipeline_parallel/test_fine_grained_activation_offloading.py::test_gpt_fine_grained_activation_offloading_correctness_and_memory
- tests/unit_tests/pipeline_parallel/test_fine_grained_activation_offloading.py::test_fine_grained_activation_offload_with_ep_a2a_overlap_compatibility
# specific case that are unstable on Metax
# models
- tests/unit_tests/models/test_gpt_model.py::TestGPTModelWithCustomPG::test_gpt_model_with_custom_pg
Expand All @@ -227,6 +252,7 @@ test_matrix:
golden_environment: dev
golden_platform: c550
enable_lightweight_mode: false
# Temporarily disabled while investigating the C550 TP2/PP2 performance timeout.
# - model: gpt
# test_case: qwen3_0p6b_mcore_te_tp2_pp2_benchmark_metax
# training_script: pretrain_gpt.py
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/flagscale-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
name: Trigger FlagScale Training Tests

on:
push:
branches: ["main", "dev"]
pull_request_target:
branches: ["main"]
# Temporarily disable automatic FlagScale runs.
# push:
# branches: ["main", "dev"]
# pull_request_target:
# branches: ["main"]
workflow_dispatch:
inputs:
flagscale_ref:
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/functional_tests_common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,60 @@ jobs:

export PYTHONPATH=${{ github.workspace }}:${PYTHONPATH:-}

QWEN_TOKENIZER_PATH=''
if grep -q '\${QWEN_TOKENIZER_PATH}' \
"./tests/functional_tests/test_cases/${MODEL}/${TEST_CASE}/model_config.yaml"; then
TOKENIZER_ROOTS=(
'/home/gitlab-runner/tokenizers'
'/opt/data/tokenizers'
'/home/gitlab-runner/data'
)
TOKENIZER_CANDIDATES=(
'/home/gitlab-runner/tokenizers/qwentokenizer'
'/home/gitlab-runner/tokenizers/Megatron-LM/tokenizers/qwentokenizer'
'/opt/data/tokenizers/huggingface'
'/opt/data/tokenizers/qwentokenizer'
'/home/gitlab-runner/data/Qwen2.5-VL-32B-Instruct'
)
for candidate in "${TOKENIZER_CANDIDATES[@]}"; do
if [[ -f "${candidate}/tokenizer_config.json" ]] \
&& [[ -f "${candidate}/tokenizer.json" \
|| -f "${candidate}/tokenizer.model" ]]; then
QWEN_TOKENIZER_PATH="${candidate}"
break
fi
done
if [[ -z "${QWEN_TOKENIZER_PATH}" ]]; then
for tokenizer_root in "${TOKENIZER_ROOTS[@]}"; do
[[ -d "${tokenizer_root}" ]] || continue
TOKENIZER_CONFIG=$(find "${tokenizer_root}" -maxdepth 6 -type f \
-path '*/Qwen*/tokenizer_config.json' -print -quit)
if [[ -n "${TOKENIZER_CONFIG}" ]]; then
tokenizer_dir=$(dirname "${TOKENIZER_CONFIG}")
if [[ -f "${tokenizer_dir}/tokenizer.json" \
|| -f "${tokenizer_dir}/tokenizer.model" ]]; then
QWEN_TOKENIZER_PATH="${tokenizer_dir}"
break
fi
fi
done
fi
if [[ -z "${QWEN_TOKENIZER_PATH}" ]]; then
echo "Qwen tokenizer was not found in the mounted artifact directories." >&2
for tokenizer_root in "${TOKENIZER_ROOTS[@]}"; do
echo "Contents of ${tokenizer_root}:" >&2
if [[ -d "${tokenizer_root}" ]]; then
find "${tokenizer_root}" -maxdepth 3 -mindepth 1 -print 2>/dev/null \
| head -100 || true
else
echo " <missing>" >&2
fi
done
exit 1
fi
echo "Qwen tokenizer path: ${QWEN_TOKENIZER_PATH}"
fi

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just put the tokenizer path inside the test config file? And make sure the workflow is clean. Besides, this is not a "Qwen" test

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

OUTPUT_DIR="./test_output/${TEST_CASE}"
TENSORBOARD_PATH="${OUTPUT_DIR}/${TENSORBOARD_SUBPATH}"
mkdir -p "${OUTPUT_DIR}"
Expand All @@ -227,6 +281,10 @@ jobs:
"ENABLE_LIGHTWEIGHT_MODE=${ENABLE_LIGHTWEIGHT_MODE}"
)

if [[ -n "${QWEN_TOKENIZER_PATH}" ]]; then
ARGUMENTS+=("QWEN_TOKENIZER_PATH=${QWEN_TOKENIZER_PATH}")
fi

if [[ -n "${GPUS_PER_NODE}" ]]; then
ARGUMENTS+=("GPUS_PER_NODE=${GPUS_PER_NODE}")
fi
Expand Down
Loading
Loading