From d7f53aca5e2371b9174c53b5ea0fe14b8ffadc4f Mon Sep 17 00:00:00 2001 From: Alexios Lyrakis Date: Tue, 14 Jul 2026 17:07:34 +0100 Subject: [PATCH 1/2] gfx942: add flat_pf3 FMoE kernel for low-token decode Add vmcnt-optimized flat_pf3 1-stage FMoE kernel (16x128) for gfx942. Reduces MOE latency by ~37% at t=4 and ~20% at t=8 vs main's 32x128 kernel on GLM-5 decode workload (E=257, K=9, dim=6144x256). - Enable flat dispatch path for 80-CU (MI308) GPUs - Fix DQ/GQ/UQ scale buffer_load OOB with vmcnt optimize - Update GLM-5 tuned CSV configs with flat_pf3 entries --- .../a8w8_blockscale_tuned_fmoe_glm5_1.csv | 10 ++++++-- aiter/fused_moe.py | 22 +++++++++++------ ...aleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3.co | Bin 0 -> 40008 bytes .../fmoe_bf16_blockscaleBf16_g1u1_silu.csv | 2 ++ .../fmoe_bf16_blockscaleFp8_g1u1_silu.csv | 23 +++++++++--------- 5 files changed, 36 insertions(+), 21 deletions(-) create mode 100755 hsa/gfx942/fmoe/silu/fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3.co create mode 100644 hsa/gfx942/fmoe/silu/fmoe_bf16_blockscaleBf16_g1u1_silu.csv diff --git a/aiter/configs/model_configs/a8w8_blockscale_tuned_fmoe_glm5_1.csv b/aiter/configs/model_configs/a8w8_blockscale_tuned_fmoe_glm5_1.csv index eec37d37581..d676b9d810e 100644 --- a/aiter/configs/model_configs/a8w8_blockscale_tuned_fmoe_glm5_1.csv +++ b/aiter/configs/model_configs/a8w8_blockscale_tuned_fmoe_glm5_1.csv @@ -1,8 +1,14 @@ gfx,cu_num,token,model_dim,inter_dim,expert,topk,act_type,dtype,q_dtype_a,q_dtype_w,q_type,use_g1u1,doweight_stage1,block_m,ksplit,us1,kernelName1,err1,us2,kernelName2,err2,us,run_1stage,xbf16,flat,tflops,bw,_tag gfx942,304,1,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,67.3825,_ZN5aiter47fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_32x128E,0.0%,0.0,,0.0%,67.3825,1,0,0,1.26,17997.2, gfx942,304,2,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,71.1007,_ZN5aiter50fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_ps_32x128E,0.0%,0.0,,0.0%,71.1007,1,0,0,2.39,17056.3, -gfx942,304,4,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,74.0082,_ZN5aiter47fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_32x128E,0.0%,0.0,,0.0%,74.0082,1,0,0,4.59,16386.72, -gfx942,304,8,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,90.5578,_ZN5aiter47fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_32x128E,0.0%,0.0,,0.0%,90.5578,1,0,0,7.5,13392.83, +gfx942,80,4,6144,256,256,8,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,80,8,6144,256,256,8,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,80,4,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,80,8,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,304,4,6144,256,256,8,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,304,8,6144,256,256,8,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,304,4,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, +gfx942,304,8,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,1,0,0.0,_ZN5aiter60fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3E,0.0%,0.0,,0.0%,0.0,1,1,1,0.0,0.0, gfx942,304,16,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,131.7166,_ZN5aiter47fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_32x256E,0.0%,0.0,,0.0%,131.7166,1,0,0,10.32,9208.96, gfx942,304,32,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,197.537,_ZN5aiter47fmoe_bf16_blockscaleFp8_g1u1_vs_silu_1tg_32x256E,0.0%,0.0,,0.0%,197.537,1,0,0,13.76,6141.98, gfx942,304,64,6144,256,257,9,ActivationType.Silu,torch.bfloat16,torch.float8_e4m3fnuz,torch.float8_e4m3fnuz,QuantType.per_1x128,1,0,32,0,260.2586,_ZN5aiter49fmoe_bf16_blockscaleFp8_g1u1_novs_silu_1tg_32x256E,0.0%,0.0,,0.0%,260.2586,1,0,0,20.89,4664.04, diff --git a/aiter/fused_moe.py b/aiter/fused_moe.py index 38106d917de..143894a8a9a 100644 --- a/aiter/fused_moe.py +++ b/aiter/fused_moe.py @@ -694,9 +694,10 @@ def fused_moe_( and stage1_func in (_flydsl_stage1_wrapper, cktile_moe_stage1) and expert_mask is not None ) - assert ( - not metadata.flat or get_gfx() == "gfx950" - ), f"FLAT fmoe asm kernels are gfx950-only; refusing to launch on {get_gfx()}. " + assert not metadata.flat or get_gfx() in ( + "gfx942", + "gfx950", + ), f"FLAT fmoe asm kernels require gfx942/gfx950; got {get_gfx()}. " sort_m_indices = None sort_reverse_sorted = None @@ -900,6 +901,10 @@ def fused_moe_1stage( # xquant happens inside the asm kernel for per_1x128 a1 = hidden_states a1_scale = torch.empty(0, device="cuda") + logger.info( + f"[xbf16] kernel gets BF16 input: a1.dtype={a1.dtype} a1.shape={a1.shape} " + f"a1_scale.shape={a1_scale.shape}" + ) else: quant_func = get_quant(quant_type) if hidden_states.dtype != q_dtype_a: @@ -2956,11 +2961,12 @@ def torch_moe_stage1( ) w1 = w1.view(w1_shape) - a1_scale = a1_scale.view(hidden_states.shape[0], -1, 1) - a1_scale = a1_scale.repeat( - 1, 1, hidden_states.shape[-1] // a1_scale.shape[1] - ).view(hidden_states.shape[0], -1) - hidden_states = hidden_states * a1_scale + if a1_scale is not None and a1_scale.numel() > 0: + a1_scale = a1_scale.view(hidden_states.shape[0], -1, 1) + a1_scale = a1_scale.repeat( + 1, 1, hidden_states.shape[-1] // a1_scale.shape[1] + ).view(hidden_states.shape[0], -1) + hidden_states = hidden_states * a1_scale elif quant_type == QuantType.No: pass elif ( diff --git a/hsa/gfx942/fmoe/silu/fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3.co b/hsa/gfx942/fmoe/silu/fmoe_bf16_a16_blockscaleFp8_g1u1_vs_silu_1tg_16x128_flat_pf3.co new file mode 100755 index 0000000000000000000000000000000000000000..84e266256d8b78ea6ae4e1bf60196a0e5c1cbf5a GIT binary patch literal 40008 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 Date: Thu, 16 Jul 2026 09:50:03 +0100 Subject: [PATCH 2/2] gfx942 flat fmoe: remove debug log from xbf16 path --- aiter/fused_moe.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/aiter/fused_moe.py b/aiter/fused_moe.py index 143894a8a9a..1678b5ffc9c 100644 --- a/aiter/fused_moe.py +++ b/aiter/fused_moe.py @@ -901,10 +901,6 @@ def fused_moe_1stage( # xquant happens inside the asm kernel for per_1x128 a1 = hidden_states a1_scale = torch.empty(0, device="cuda") - logger.info( - f"[xbf16] kernel gets BF16 input: a1.dtype={a1.dtype} a1.shape={a1.shape} " - f"a1_scale.shape={a1_scale.shape}" - ) else: quant_func = get_quant(quant_type) if hidden_states.dtype != q_dtype_a: