合并受阻
变更摘要
本 PR 基于昇腾 950(Ascend 950PR/950DT,CANN 9.1.0、torch_npu 2.9.0.post2)实机验证,为 npu-kernelbench/data/kernel_generator 补充 33 条低精度量化用例,并对相关 definition.json 的 reference 做适配。新增用例覆盖 FusedInferAttentionScore(int8/int4/fp8 KV 伪量化、decode 场景)、GroupedMatmulSwigluQuantV2(MXFP8)、QuantMatmul(fp8 双输入)、WeightQuantBatchmatmul(int4 权重)、KvRmsnormRopeCache(int8 KV cache)、SwigluQuant/DynamicQuant(int4 量化输出)、Cat(fp8 拼接)以及 Add/Sort/TopK/Cumsum/Scatter/Index/Gather(int8)等算子。同时为 GroupedMatmulSwigluQuantV2、DynamicQuant、WeightQuantBatchmatmul、QuantMatmul 的 reference 增加 950 低精度通路(dtype 解析、设备分支、int4 打包与 scale 格式转换等),FusedInferAttentionScore 与 SwigluQuant 仅更新输入/输出描述。
主要改动
- 新增 33 条低精度 workload 用例:在 8 个算子的
workload.jsonl中追加 int8/int4/fp8 用例,如FusedInferAttentionScore-051~062(BSH layout、key_antiquant_scale/value_antiquant_scale、int8/fp8 KV 及 int32 packed int4)、GroupedMatmulSwigluQuantV2-051~052(MXFP8,scale 以 int8 位模式承载 e8m0)、QuantMatmul-058~059(fp8)、WeightQuantBatchmatmul-049~050(int4 权重)等;Cumsum文件同时完成 JSON 格式化,新增Cumsum-052int8 用例。 GroupedMatmulSwigluQuantV2/definition.json适配 950 MX 量化:reference 新增x_dtype/weight_dtype/weight_scale_dtype/x_scale_dtype参数透传与_resolve_dtype字符串→dtype 解析(含float8_e8m0fnu等 torch_npu 专属 dtype),新增_soc_is_950设备分支使 950 跳过 NZ 格式转换(dequant_mode != 2时才转 NZ),并将 outputs 由 2 个减为 1 个以规避float8_e8m0fnuscale 输出的比对问题。DynamicQuant/definition.json增加dst_type支持:reference 增加dst_type参数透传及字符串→dtype 映射("int4"→torch.quint4x2),inputs 声明补充group_index/dst_type并与 run 签名对齐,支撑 043~044 两条 int4 输出用例。WeightQuantBatchmatmul/definition.json增加 int4 权重转换:reference 在weight.dtype == torch.int32时自动调用npu_convert_weight_to_int4pack转为硬件打包布局,支撑 049~050 int4 权重用例(fp16/bf16 双场景)。QuantMatmul/definition.json增加 scale 格式转换:reference 在 int32 输入(int4 场景)且 scale 为 float32 时自动经npu_trans_quant_param转为 int64 格式,满足算子对 scale 的要求;FusedInferAttentionScore与SwigluQuant的 definition 仅更新 key/value 低精度约定及 int4 packed 输出描述。


Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
PR Approval Progress
⚠️ This PR does not yet meet the following requirements:lgtm (requires ≥ 2 person(s) per module)
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-Ascend/ascendc-kernelgen-data | ❌ 赵林林 (1/2)(You can also ask: 张琪家, 李星辰, 陈小刚, 文一晴, 祖全真) | ✅ 赵林林 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
wesseI, thanks for your pull request. All authors of the commits have signed the CLA. 👍


/approve


昇腾 950 硬件低精度用例补充
背景
昇腾 950(Ascend 950PR/950DT)相比前代硬件新增了多种低精度量化能力(MXFP8/MXFP4、int4 packed、fp8 KV cache 等)。本 PR 基于实机(Ascend950PR ×8,CANN 9.1.0,torch_npu 2.9.0.post2)逐一验证后,为
npu-kernelbench/data/kernel_generator补充低精度测试用例,并做必要的 definition 适配。全部 33 条新增用例均在 950 实机上通过评测管线验证,调用无异常,输出无 NaN/Inf。
一、新增用例(33 条)
二、workload.jsonl 之外的修改及必要性
1.
level4/GroupedMatmulSwigluQuantV2/definition.jsonx_dtype/weight_dtype/weight_scale_dtype/x_scale_dtype参数透传与字符串→dtype 解析(_resolve_dtype)。必要性:MX 量化需要向
npu_grouped_matmul_swiglu_quant_v2声明 fp8/fp4 dtype,原 reference 无此通路;算子对扩展 dtype 按对象 identity 校验,必须取torch_npu注册的 dtype 对象。_soc_is_950):950 上跳过 weight 的 NZ 格式转换。必要性:950 强制回退
allow_internal_format,NZ 内部格式不可用,原有强制 NZ 转换导致全部 50 条存量 int8 用例在 950 上失败;改为设备分支后 950 走 ND 通路(25 条存量用例恢复可运行),其他设备行为不变。必要性:MX 量化的第二输出为
float8_e8m0fnuscale,评测器数值比对需将其转 float32,而 torch_npu 的 copy 算子缺少 e8m0 实现(报 561103),比对必然失败;仅声明主输出可规避。存量用例在 950 上本就跑不通,此调整无实际比对损失。2.
level1/DynamicQuant/definition.jsondst_type参数透传与字符串→dtype 映射("int4"→torch.quint4x2);inputs 声明顺序与 run 签名对齐(评测管线按位置传参)。npu_dynamic_quant的 dst_type 只接受 torch dtype 对象,workload 标量需映射;int4 量化输出依赖该参数。3.
level4/WeightQuantBatchmatmul/definition.jsonweight.dtype == int32时自动调用npu_convert_weight_to_int4pack转换为硬件打包布局。4.
level4/QuantMatmul/definition.jsonnpu_trans_quant_param转换为 int64 格式。5.
level4/FusedInferAttentionScore/definition.json6.
level2/SwigluQuant/definition.json三、跨平台说明
如需在 A2/A3 评测建议按 uuid 过滤。后续可考虑为 Workload 增加 platform 字段,以支持用例按硬件平台过滤。