Scope
Track the Miles MI355X daily pipeline:
- Build dated MI35X images from the latest Miles
main.
- Run the currently enabled ROCm 7.2 GPU tests on MI355X.
Live status
The dashboard reports suite-level status. GitHub Actions logs remain the source of truth for individual test results.
Daily pipeline
| Step |
Schedule |
Output |
| ROCm 7.2 MI35X image |
12:00 UTC |
rocm/sgl-dev:miles-rocm720-mi35x-YYYYMMDD |
| ROCm 7.2 MI355X tests |
17:30 UTC |
2-GPU, 4-GPU, and 8-GPU suites |
The test workflow selects the newest ROCm 7.2 dated image available.
Currently enabled GPU tests
The daily workflow currently selects 14 test files:
| Suite |
Enabled files |
Runner pool |
stage-c-2-gpu-mi350 |
1 |
linux-mi35x-gpu-2 |
stage-c-4-gpu-mi350 |
6 |
linux-mi35x-gpu-8 |
stage-c-8-gpu-mi350 |
7 |
linux-mi35x-gpu-8 |
| Total |
14 |
|
tests/e2e/
├── ckpt/ [8 GPU]
│ └── test_qwen3_4B_ckpt.py
├── long/ [2 GPU]
│ └── test_qwen2.5_0.5B_gsm8k_async.py
├── lora/ [4 GPU]
│ └── test_lora_qwen2.5_0.5B.py
├── megatron/ [4 GPU]
│ ├── test_mimo_7B_mtp_only_grad.py
│ └── test_qwen3_30B_A3B/
│ ├── test_baseline.py
│ └── test_r3_baseline.py
├── precision/ [4 GPU]
│ ├── test_hf_attention_cp_relayout.py
│ └── test_qwen3_5_cp_correctness.py
├── sglang_config/ [8 GPU]
│ ├── test_sglang_config.py
│ ├── test_sglang_config_mixed_offload.py
│ └── test_sglang_config_mixed_offload_ft.py
└── short/ [8 GPU]
├── test_qwen2.5_0.5B_gsm8k_async_short.py
├── test_qwen2.5_0.5B_gsm8k_short.py
└── test_run_megatron.py
The workflow invokes all three suites with --match-all-labels.
Pending review
tests/e2e/ [4 GPU]
├── fsdp/test_qwen3_4B_fsdp_hybrid_shard_r2s2.py
├── megatron/
│ ├── model_scripts/
│ │ ├── test_deepseek_v4_flash_4layer_ci.py
│ │ ├── test_glm5_2_744b_a40b_5layer_ci.py
│ │ └── test_inkling_small_4layer_ci.py
│ ├── test_glm47_flash/test_amd_r3_mtp.py
│ ├── test_qwen3_30B_A3B/test_amd_moriep_fp8_bridge.py
│ ├── test_qwen3_4B_offload_disk_stream.py
│ └── test_qwen3_5_35B_A3B_mtp/test_amd_mtp1_spec_v2_r3.py
tests/
├── e2e/ [2 GPU]
│ ├── fsdp/test_qwen3_0.6B_megatron_fsdp_align.py
│ ├── long/test_qwen2.5_0.5B_gsm8k.py
│ ├── sglang/test_session_server_multi_role/test_qwen3.py
│ └── short/test_qwen3_0.6B_fsdp_colocated_2xGPU.py
├── fast-gpu/test_run_megatron_worker_main.py [2 GPU]
├── e2e/ [4 GPU]
│ ├── fsdp/test_qwen3_0.6B_fsdp_distributed.py
│ ├── megatron/
│ │ ├── test_qwen3_4B_offload_disk.py
│ │ ├── test_qwen3_4B_offload_disk_stream.py
│ │ ├── test_qwen3_4B_ppo.py
│ │ └── test_qwen3_4B_variable_gbs.py
│ └── sglang/
│ ├── test_chat_input_ids_equivalence.py
│ └── test_session_server_multi_role/test_qwen35.py
├── fast-gpu/test_det_process_group.py [4 GPU]
└── e2e/ [8 GPU]
├── megatron/
│ ├── test_qwen3_30B_A3B/test_disagg_broadcast.py
│ ├── test_qwen3_30B_A3B/test_fully_async.py
│ ├── test_qwen3_4B_disk_delta.py
│ └── test_qwen3_4b_fully_async_eval.py
└── short/
├── test_dumper.py
├── test_qwen2.5_0.5B_compact_rollout.py
├── test_qwen2.5_0.5B_fully_async_eval.py
└── test_qwen2.5_0.5B_opd_sglang.py
GPU tests to enable next
This backlog only tracks GPU paths that have a plausible MI355X implementation. CPU tests and tests tied to NVFP4/Blackwell-only recipes, CUDA-only INT4 or modelopt kernels, or H200-specific FA3 parity are excluded.
tests/
├── e2e/
│ ├── fsdp/
│ │ ├── r3/
│ │ │ ├── test_glm47_flash_r3.py
│ │ │ ├── test_qwen3_30b_a3b_r3.py
│ │ │ └── test_qwen3_5_35b_a3b_r3.py
│ │ ├── test_qwen3_4B_fsdp_hybrid_shard_r2s4.py
│ │ ├── test_qwen3_4B_fsdp_true_on_policy.py
│ │ └── test_qwen3_vl_4B_fsdp.py
│ ├── ft/
│ │ ├── test_trainer_ft_deterministic_dp2_cp2_pp2.py
│ │ ├── test_trainer_ft_deterministic_dp2_cp2_real_rollout.py
│ │ ├── test_trainer_ft_deterministic_dp2_cp2_tp2_ep2.py
│ │ ├── test_trainer_ft_deterministic_dp4_cp2.py
│ │ ├── test_trainer_ft_no_failure_dp2_cp2_pp2.py
│ │ ├── test_trainer_ft_no_failure_dp2_cp2_real_rollout.py
│ │ ├── test_trainer_ft_no_failure_dp2_cp2_tp2_ep2.py
│ │ ├── test_trainer_ft_no_failure_dp4_cp2.py
│ │ ├── test_trainer_ft_with_failure_dp2_cp2_pp2.py
│ │ ├── test_trainer_ft_with_failure_dp2_cp2_real_rollout_dense.py
│ │ └── test_trainer_ft_with_failure_dp2_cp2_tp2_ep2.py
│ ├── long/
│ │ └── test_qwen3_0.6B_verifiers.py
│ ├── megatron/
│ │ ├── model_scripts/
│ │ │ ├── test_deepseek_v32_5layer_fp8.py
│ │ │ ├── test_glm5_1_744b_a40b_6layer_lora_ci.py
│ │ │ ├── test_glm5_2_744b_a40b_5layer_lora_ci.py
│ │ │ ├── test_glm5_744b_a40b_4layer_ci.py
│ │ │ ├── test_glm5_744b_a40b_4layer_r3.py
│ │ │ ├── test_gpt_oss_20b_moe_lora_ci.py
│ │ │ ├── test_inkling_small_4layer_lora_ci.py
│ │ │ └── test_nemotron_3_ultra_4layer_ci.py
│ │ ├── test_glm47_flash/
│ │ │ └── test_r3_mtp.py
│ │ ├── test_qwen3_30B_A3B/
│ │ │ ├── test_deepep_fp8.py
│ │ │ └── test_dp_attention.py # AITER hipIpcGetMemHandle invalid argument
│ │ ├── test_qwen3_5_35B_A3B_mtp/
│ │ │ └── test_mtp0_spec_v2.py
│ │ ├── test_qwen3_30B_A3B_p2p.py
│ │ └── test_qwen3_5_35b_a3b_lora_ci.py
│ └── sglang/
│ └── test_session_server_multi_role/
│ ├── test_deepseekv4.py
│ ├── test_glm47.py
│ └── test_nemotron3.py
└── fast-gpu/
└── test_fsdp_hybrid_shard.py
GPU tests intentionally skipped
These already carry disabled= on their register_cuda_ci, so upstream does not run them on any hardware either.
tests/
├── e2e/
│ ├── ckpt/
│ │ └── test_glm47_flash_ckpt.py
│ ├── ft/
│ │ ├── test_trainer_ft_random_dp2_cp2_real_rollout.py
│ │ ├── test_trainer_ft_random_dp2_cp2_tp2_ep2.py
│ │ └── test_trainer_ft_realistic_gsm8k.py
│ ├── megatron/
│ │ ├── test_glm47_flash/
│ │ │ └── test_r3_mtp_deepep.py
│ │ ├── test_qwen3_30B_A3B/
│ │ │ └── test_r3_deepep_fp8.py
│ │ ├── test_quick_start_glm4_9B.py
│ │ └── test_qwen3_5_35B_A3B_cp.py
│ ├── precision/
│ │ └── test_qwen3_0.6B_parallel_check.py
│ └── sglang/
│ ├── test_session_server_multi_role/
│ │ └── test_minimax_m27.py
│ └── test_r3_router_equivalence.py
└── fast-gpu/
├── test_mxfp8_quantizer.py
└── test_semaphore.py
These tests are outside the MI355X enablement backlog because their current test contract is cuda-specific. They can be reconsidered only after the test or kernel path is redesigned for ROCm.
tests/
├── fast-gpu/
│ ├── test_nvfp4_quantizer.py
│ └── test_quantizer_ci
└── e2e/
├── megatron/
│ ├── model_scripts/
│ │ ├── test_deepseek_v32_5layer_mxfp8.py
│ │ └── test_kimi_k25_2layer_ci.py
│ ├── test_glm5_2_744b_a40b_5layer_nvfp4.py
│ ├── test_joyai_llm_flash_mxfp8.py
│ └── test_qwen3_30B_A3B/
│ └── test_int4_rollout.py
└── sglang/
├── test_session_v1_v2_parity.py
└── test_session_server_multi_role/
└── test_inkling.py
- NVFP4 and the B200 MXFP8 recipes require NVIDIA/Blackwell paths.
- The Kimi K2.5 and Qwen3 INT4 tests use the CUDA-only fake INT4 quantization extension.
- Session parity asserts an H200 device and FA3; the Inkling session test uses an NVFP4 checkpoint.
Last audited against Miles main on 2026-08-13.
Thanks to CI dashboard owners @michaelzhang-ai, @bingxche for making the Miles pipeline easy to track.
Scope
Track the Miles MI355X daily pipeline:
main.Live status
The dashboard reports suite-level status. GitHub Actions logs remain the source of truth for individual test results.
Daily pipeline
rocm/sgl-dev:miles-rocm720-mi35x-YYYYMMDDThe test workflow selects the newest ROCm 7.2 dated image available.
Currently enabled GPU tests
The daily workflow currently selects 14 test files:
stage-c-2-gpu-mi350linux-mi35x-gpu-2stage-c-4-gpu-mi350linux-mi35x-gpu-8stage-c-8-gpu-mi350linux-mi35x-gpu-8The workflow invokes all three suites with
--match-all-labels.Pending review
GPU tests to enable next
This backlog only tracks GPU paths that have a plausible MI355X implementation. CPU tests and tests tied to NVFP4/Blackwell-only recipes, CUDA-only INT4 or modelopt kernels, or H200-specific FA3 parity are excluded.
GPU tests intentionally skipped
These already carry
disabled=on theirregister_cuda_ci, so upstream does not run them on any hardware either.These tests are outside the MI355X enablement backlog because their current test contract is cuda-specific. They can be reconsidered only after the test or kernel path is redesigned for ROCm.
Last audited against Miles main on 2026-08-13.
Thanks to CI dashboard owners @michaelzhang-ai, @bingxche for making the Miles pipeline easy to track.