Repository navigation
[FlyDSL] Add gfx1250 grouped MoE A-preshuffle and tuned CSV validation - #6709
Conversation
# Conflicts: # aiter/configs/tuned_grouped_fmoe.csv
🏷️ CI GuideRuns automatically on every PR:
Extended tests (opt-in via labels):
One backend per PR: PR title tags & labels: |
Resolve grouped MoE AOT and CSV conflicts while preserving the test removals in f073496. Retain main's quant-layout checks alongside branch A-preshuffle coverage and dual-CSV sweep behavior.
#6709 added an a_preshuffle column to tuned_grouped_fmoe.csv without a blank-cell value, so retuning a row of the production table raises, and two test_tuner_infra tests fail on main. grouped_moe_gfx1250 reads a blank a_preshuffle as 0. Co-authored-by: Cursor <cursoragent@cursor.com>
#6709 added an a_preshuffle column to tuned_grouped_fmoe.csv without a blank-cell value, so retuning a row of the production table raises, and two test_tuner_infra tests fail on main. grouped_moe_gfx1250 reads a blank a_preshuffle as 0. Co-authored-by: Cursor <cursoragent@cursor.com>
#6709 added an a_preshuffle column to tuned_grouped_fmoe.csv without a blank-cell value, so retuning a row of the production table raises, and two test_tuner_infra tests fail on main. grouped_moe_gfx1250 reads a blank a_preshuffle as 0.
#6709 added an a_preshuffle column to tuned_grouped_fmoe.csv without a blank-cell value, so retuning a row of the production table raises, and two test_tuner_infra tests fail on main. grouped_moe_gfx1250 reads a blank a_preshuffle as 0.
#6709 added an a_preshuffle column to tuned_grouped_fmoe.csv without a blank-cell value, so retuning a row of the production table raises, and two test_tuner_infra tests fail on main. grouped_moe_gfx1250 reads a blank a_preshuffle as 0.
Motivation
Add a CSV-selectable A-preshuffled activation layout to gfx1250 A4W4 grouped MoE and make the existing TP/EP test entry points validate every applicable tuned configuration. CSV sweeps now use each selected file for runtime configuration lookup, including when switching between model-specific files.
Technical Details
a_preshufflefrom the matched tuning row through activation preparation and both grouped GEMMs. Add compact MXFP4 quantization followed by routed scatter into M16 payload tiles and M16K4 scales; prequantized inputs can enter scatter directly.topk=-1tuning sentinel out of compile-time route-count arithmetic.--csv-pathselects one file. Clear configuration lookup caches between files, support SiLU/Swiglu/Situv2, fix shared-expert reference mapping, and aggregate failures across selected files. Default sweeps exclude untuned configurations; TP skips EP rows.Test Plan
Validated on gfx1250 using the existing test entry points without
--csv-path:op_tests/flydsl_tests/test_flydsl_grouped_gemm.py --scenario csv --no-bias --iters 16 --no-check-aot-cache, with grouped GEMM enabled, CK disabled, and balanced routing. Run constant/constant and uniform/auto data/scale initialization with CUDA graphs and JIT allowed.op_tests/test_moe_ep.py -t ep_csv --ep-mode real, with four simulated ranks, top-k 8, and balanced routing. Validate local outputs only; distributed EP scatter-combine is outside this validation.ruff check .; whitespace:git diff --check.Test Result
All 200 applicable CSV rows passed, totaling 331 correctness checks. Both CSV processes exited successfully. The two
ep_fused=1rows were tested as local EP shapes; their fused scatter behavior was not validated. Ruff and whitespace checks passed.Performance comparison remains pending: existing priority-script measurements had concurrent GPU activity or substantial timing variation and do not support a stable speedup/regression claim.
Submission Checklist