提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
为 npu_moe_init_routing_v2 算子新增两种量化模式支持:
npu_moe_init_routing_v2
quant_mode=16
float8_e5m2
quant_mode=17
float8_e4m3fn
docs/zh/custom_APIs/torch_npu/torch_npu-npu_moe_init_routing_v2.md
op_plugin/ops/opapi/MoeInitRoutingV2KernelNpuOpApi.cpp
QUANT_MODE_MXFP8_ROUNDSCALE_AMAX_E5M2
QUANT_MODE_MXFP8_ROUNDSCALE_AMAX_E4M3FN
IsQuantModeMXFP8
expanded_x
op_plugin/python/meta/_meta_registrations.py
test/test_custom_ops/test_npu_moe_init_routing_v2.py
mxfp8_roundscale_quantize
欢迎加入社区,感谢您对社区的贡献 🎉!
提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
💻 需求背景、当前现状、期望实现的功能内容、具体的设计方案、以及测试方案
【修改方案】
MoeInitRoutingV3 新增支持 quant_mode 为 16、17(MXFP8 RoundScale + Amax 钳位量化)
修改概述
为
npu_moe_init_routing_v2算子新增两种量化模式支持:quant_mode=16:MXFP8 RoundScale + Amax 钳位量化,输出类型为float8_e5m2quant_mode=17:MXFP8 RoundScale + Amax 钳位量化,输出类型为float8_e4m3fn修改文件
docs/zh/custom_APIs/torch_npu/torch_npu-npu_moe_init_routing_v2.mdop_plugin/ops/opapi/MoeInitRoutingV2KernelNpuOpApi.cppQUANT_MODE_MXFP8_ROUNDSCALE_AMAX_E5M2(16) 和QUANT_MODE_MXFP8_ROUNDSCALE_AMAX_E4M3FN(17) 常量定义;扩展IsQuantModeMXFP8判断逻辑;在expanded_x构建 switch 中复用 MXFP8 分支op_plugin/python/meta/_meta_registrations.pytest/test_custom_ops/test_npu_moe_init_routing_v2.pymxfp8_roundscale_quantize量化参考实现(含 amax 钳位);golden 计算逻辑适配 quant_mode 16/17;测试参数列表新增 16、17替代方案
补充说明
欢迎加入社区,感谢您对社区的贡献 🎉!