| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: WeightQuantPreprocess A16MXF4 支持转置 weight ND 直拷;ErrMsg reason 句号整改 Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !5241 merge feat/weight-quant-preprocess-a16f4-trans-nd into master feat: WeightQuantPreprocess A16MXF4 支持转置 weight ND 直拷;ErrMsg reason 句号整改 Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> A16 MXFP4 数据流(FP4 uint8 紧凑载体,E8M0 scale {K/32, N},kGroupSize 固定 32)新增转置 weight 支持,并顺带完成 ErrMsg reason 句号整改(合并原 https://gitcode.com/cann/ops-math/pull/5126 ,5126 已关闭)。 1. **A16MXF4 转置 weight ND 直拷**:IsMMA16MXF4DataFlow 拆分为 base + 转置/非转置 judge。转置 weight(末两维严格转置 stride [1,K],打包维沿 K 须 K 为偶数)走 ND 直拷透传(ProcessWeightDirectCopy,按打包维建 UINT8 视图物理透传),outWeight 为 ND 格式、viewShape 与 weight 相同,可直接衔接 wqbmmv2 MX kernel(主干已支持 MX FP4 ND 转置输入);非转置维持原 NZ_C0_16 分形转换。pergroup(A16F4 per-group)不支持转置,转置仍返回 ACLNN_ERR_PARAM_INVALID(pergroup FP4 ND 无下游 wqbmmv2 支持)。 2. **out 侧一致性校验归一**:新增 CheckOutSameBase(空指针对称 + out 非 empty + viewShape 一致)与 CheckOutSameAsInput(Base + 连续性 + format/dtype/storageShape 全 ==)两层封装;scale/offset/bias 为直拷透传参数,删除其输入侧校验(empty/format/dtype/viewShape/contiguous 及 kGroupSize 一致性,共 20 个检查函数),约束下放 wqbmmv2。 3. **NZ 出 dtype 校验统一**:所有 NZ 出条目(A8W4/S4/F4)统一挂 CheckOutWeightDtypeSame——真实场景 NZ 出 dtype 恒等于输入,不一致会在 process ViewCopy 处失败,提前在 check 阶段拒绝。保留 CheckWeightOffsetOptionalNull(A8W4-MX/F4 无 offset 直拷 process,非空 offset 会被静默丢弃)。 4. **ErrMsg 句号整改**:conversion/weight_quant_preprocess 目录 35 处 ErrMsg reason 字符串结尾多余句号删除,纯文案修改,无行为变化。 5. L2 UT 同步更新(63 条表驱动用例)。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3197 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> Ascend950 实测: - L2 UT:63/63 通过 - aclnn e2e:MX 转置 preprocess ND 直拷 bit-wise 透传 + wqbmmv2 MX FP4 ND 转置 golden 比对 0 mismatch(K=256/N=128;非对齐 K=100/K=34 同过);F4/S4 STC 全量 73/73 通过 - torch e2e(配套 https://gitcode.com/Ascend/op-plugin/pull/5803 、https://gitcode.com/cann/ops-nn/pull/10133 ):MX 转置 ND / MX 非转置 NZ / pergroup NZ 三条链路 golden 比对全过;pergroup 转置正确拒绝 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5241 | 21 天前 | |
新增接口WeightQuantPreprocess Co-authored-by: yan-chengyi123<yanchengyi@huawei.com> Co-authored-by: renzetao<renzetao2@huawei.com> # message auto-generated for no-merge-commit merge: !3832 merge WeightQuantPreprocess into master 新增接口WeightQuantPreprocess Created-by: renzetao Commit-by: renzetao;yan-chengyi123 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 本次 PR 新增了 WeightQuantPreprocess 算子接口,用于对量化推理中的权重张量进行预处理转换。主要支持两类数据流:MM_MX_A8W4(矩阵乘,2维权重)和 GMM_MX_A8W4(分组矩阵乘,3维权重),均面向 FLOAT4_E2M1 权重 / FLOAT8_E8M0 scale 的 Mx 量化场景。核心流程是将 ND/NCL 格式的权重转置后通过 TransData 转换为 FORMAT_FRACTAL_NZ_C0_32 格式,并对 weightScale 和 bias 做直接拷贝。接口采用两段式设计(GetWorkspaceSize + 执行),并通过 DataFlowEntry 注册表按 NPU 架构匹配数据流、校验参数、执行业务逻辑。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2230](https://gitcode.com/cann/ops-math/issues/2230) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证GMM-MxA8W4,QBMM-MxA8W4 的历史用例pass ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 新增了conversion/weight_quant_preprocess/docs/aclnnWeightQuantPreprocess.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!3832 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 21 天前 | ||
| 2 个月前 |