| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !5912 merge master into master 产品名变更 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AI处理器对应的产品型号名称更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#3258](https://gitcode.com/cann/ops-math/issues/3258) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> *.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5912 | 9 天前 | |
docs: weight_quant_preprocess 补充 A16F4/A16MXF4 数据流文档与 example Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !5765 merge docs/weight-quant-preprocess-a16f4 into master docs: weight_quant_preprocess 补充 A16F4/A16MXF4 数据流文档与 example Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 weight_quant_preprocess 的 A16F4/A16MXF4 数据流补充 aclnn 文档与调用示例。A16F4(pergroup)与 A16MXF4(非转置 NZ + 转置 ND 直拷)数据流分别随 cann/ops-math!4495、cann/ops-math!5241 合入 master(对应 issue #3197),文档一直缺失,本 PR 补齐: - aclnnWeightQuantPreprocess.md: - 功能说明、161002 错误码说明补充 MM_A16F4/MM_A16MXF4 数据流 - 约束说明新增 MM_A16F4 数据流块(pergroup 唯一模式,非转置→FRACTAL_NZ_C0_16,scale 为 FLOAT16/BFLOAT16)与 MM_A16MXF4 数据流块(kGroupSize 固定 32,scale 为 FLOAT8_E8M0 {ceildiv(K,32),N};非转置→FRACTAL_NZ_C0_16,转置(末两维严格转置 stride [1,K],K 为偶数)→ND 直拷透传),字段结构沿用 MM_A16S4 块 - 调用示例章节新增 MM_A16F4/A16MXF4 示例小节(含完整内联源码,与 examples 中源码一致) - 新增 example test_aclnn_weight_quant_preprocess_a16f4.cpp:覆盖 A16F4 pergroup 非转置→NZ_C0_16、A16MXF4 非转置→NZ_C0_16、A16MXF4 转置→ND 直拷三个场景,各带 golden 比对(NZ 输出按 NZ_C0_16 物理布局 host 侧 bit-exact 比对,ND 直拷做 bit-wise 透传校验) ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3197 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> example 在 Ascend950 实机编译运行通过(K=256/N=128,pergroup gs=64 / MX gs=32,x 为 FLOAT16): - TestA16F4PerGroupNz / TestA16MXF4NonTransNz / TestA16MXF4TransNd 三个场景 golden 比对全部 PASS ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了:conversion/weight_quant_preprocess/docs/aclnnWeightQuantPreprocess.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5765 | 12 天前 | |
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 | 13 天前 | |
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 | 13 天前 | |
新增接口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 个月前 | |
新增接口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 个月前 |
WeightQuantPreprocess
本目录仅包含WeightQuantPreprocess算子对应的aclnn接口;如您想要贡献该算子的AscendC实现,请参考贡献流程。