Update LINKS.md with created GitLink issue #221
GitLink GPUApps issue for MoE tuning contribution is now live: https://www.gitlink.org.cn/ccf-ai-infra/GPUApps/issues/221
Signed-off-by: LindseyMei 648816901@qq.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
vLLM-MetaX MoE Triton 配置调优 —— 参赛文件包
一句话概述
本文件包记录为 vLLM-MetaX(沐曦 MACA 后端) 做的 MoE(Mixture-of-Experts)Triton 内核配置调优 贡献:在真机 MetaX C500 上定位到 3 个热门 MoE 模型在 MXC500 上无 tuned 配置、回退默认 tile 的性能缺口,通过直接调优 MACA 实际运行的
vllm_metaxfused-MoE 内核,给出针对性的两段式 Triton 配置,实现 kernel 级 1.17–2.20x 提速,并通过正确性与加载验证。提交材料
1. 问题(真实缺口)
vllm_metax的 fused-MoE 走 Triton 内核,其 tile 配置按(H, E, N, device_name[, dtype])从vllm_metax/model_executor/layers/fused_moe/configs/加载 tuned JSON;未命中则回退到通用get_default_config,并打印Using default MoE config. Performance might be sub-optimal!。实测缺口:以下 3 个常见 MoE shape 在 MXC500 上没有对应的 tuned 配置文件:
Qwen/Qwen1.5-MoE-A2.7BQwen2MoeForCausalLMdeepseek-ai/DeepSeek-V2-LiteDeepseekV2ForCausalLMQwen/Qwen3-30B-A3BQwen3MoeForCausalLM2. 方法(调优的是真正的 MACA 内核)
关键点:上游
benchmarks/kernels/benchmark_moe.py导入的是上游fused_experts,而 MACA 运行时用的是vllm_metax自己的fused_experts(经 OOT 注册,二者是不同对象,已核实)。因此上游 tuner 调的是错误的内核。本方案自建微基准(
moe_tuning/tools/moe_tune.py)直接调优 MACA 内核:vllm.model_executor.layers.fused_moe.override_config强制指定 tile,计时单次vllm_metax ... fused_experts()(随机权重,因此无需下载模型);torch.cuda.synchronize(),warmup + 多次取中位数;BLOCK_SIZE_M/N/K、GROUP_SIZE_M、num_warps、num_stages;stage1/stage2+ACCF32/SPLIT_K/pipeline/scenario),对称填充(低风险起点)。正确性验证:
moe_tuning/tools/moe_verify.py使用torch.allclose(rtol=2e-2, atol=2e-2)比较「默认 tile」与「调优 tile」的 MoE 输出,并调用get_moe_configs()确认配置文件会被运行时正确加载。3. 结果(kernel 级,真机 sGPU 切片)
Qwen1.5-MoE-A2.7B(H=2048, E=60, N=1408, top_k=4)
DeepSeek-V2-Lite(H=2048, E=64, N=1408, top_k=6)
Qwen3-30B-A3B(H=2048, E=128, N=768, top_k=8)
小 M(decode)保留默认 tile 或近似配置,避免延迟回退;大 M(prefill / 大 batch)获得显著加速。
原始数据:
moe_tuning/results/moe_tune_result.json。4. 正确性与加载验证
max|Δ|≈1e-3,torch.allclose(rtol/atol=2e-2)=True—— 调优只改 tile 选择,不改数学。get_moe_configs(E, N, None, 0, 0, H)均能命中本配置(device_name=MXC500),返回全部 10 个 M-条目 → 运行时会被正确采用。验证命令:
5. 重要说明(诚实边界)
moe_tuning/tools/moe_tune.py复核。benchmark_moe.py同类证据,是 MoE 配置 PR 的标准依据)。6. 目录结构
7. 复现
8. 后续可扩展方向
moe_tuning/tools/moe_tune.py复核 tile。