| Files | Last commit | Last update |
|---|---|---|
WeightQuantPreprocess增加mm分支对bias为1维的支持 Co-authored-by: renzetao<renzetao2@huawei.com> # message auto-generated for no-merge-commit merge: !4233 merge weight_quant_preprocess_2 into master WeightQuantPreprocess增加mm分支对bias为1维的支持 Created-by: renzetao Commit-by: renzetao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> WeightQuantPreprocess增加mm分支对bias为1维的支持 此 PR 主要扩展了 weight_quant_preprocess 算子在非 GMM(即 MM)分支下对 biasOptional 输入形状的校验逻辑,使其支持 1 维 bias(形状为 (n)),同时保持对原有 2 维 bias(形状为 (1, n))的兼容。GMM 分支则仍严格限定 bias 必须为 2 维。相应更新了单元测试用例,补充了 1 维 bias 的正常、异常以及 GMM 场景下的形状非法用例。 CheckBiasOptionalViewShape 校验逻辑重构: 在 weight_quant_preprocess_registry.cpp 中,将 bias 必须为 2 维的检查移入 isGmm 分支内;非 GMM 分支新增对 1 维和 2 维 bias 的分别校验——1 维时要求 biasViewShape.GetDim(IDX_0) == n,2 维时要求 (1, n),并更新了对应的错误提示信息。 注册表注释更新: NPU_DATA_FLOW_REGISTRY 中 CheckBiasOptionalViewShape<false> 的注释从 "bias shape 要求 (1, n)" 改为 "bias shape 要求 (n) 或 (1, n)",以反映新的校验规则。 新增正常场景测试用例: 在 test_aclnn_weight_quant_preprocess_l2.cpp 的 mmNormalCases 中新增 ascend950_test_MM_MX_A8W4_bias_1d(1 维 bias {128},期望成功)和 ascend950_test_MM_MX_A8W4_bias_2d(2 维 bias {1, 128},期望成功)。 新增异常场景测试用例: 在 casesParams 中新增 ascend950_test_bias_1d_shape_invalid(1 维 bias 形状 {127} 与 n=128 不匹配,期望 ACLNN_ERR_PARAM_INVALID)和 ascend950_test_GMM_bias_1d_shape_invalid(GMM 场景传入 1 维 bias {128},期望校验失败)。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#2323](https://gitcode.com/cann/ops-math/issues/2323) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地验证用例56个全部通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4233 | 3 months ago | |
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 | 1 month ago | |
docs: weight_quant_preprocess 补充 A16S4 数据流文档与 example Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !5040 merge docs/wq-preprocess-a16w4-example into master docs: weight_quant_preprocess 补充 A16S4 数据流文档与 example Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 为 WeightQuantPreprocess 新增的 A16W4 紧凑排布数据流(功能 PR cann/ops-math#4495,已合入 master)补充 aclnn 文档与调用示例。文档写法参考 Ascend/op-plugin#5779 的评审意见对齐: - aclnnWeightQuantPreprocess.md: - 功能说明:新增 MM_A16S4 数据流约束块(per-tensor/per-channel/per-group 三种量化模式合并描述,三者区别仅在 weightScale 的 shape、weightOffset 透传与 kGroupSize 取值),块开头给出字段含义(MM 表示 Matmul;A16S4 表示 x 为 FLOAT16/BFLOAT16、weight 为 INT4 紧凑 4-bit(每字节打包 2 个值))。 - 参数说明:给出 view shape 中轴的含义与取值/对齐要求——weight 为 2-D {K, N}(K 为 reduction 维、N 为输出维),紧凑 4-bit 打包维(连续维)必须为偶数(非转置时 N 偶数、转置时 K 偶数),viewOffset 必须为偶数;weightScale 按量化粒度给出 shape(per-tensor {1}/{1,1},per-channel {N}/{1,N},per-group {ceildiv(K,kGroupSize), N} 且分组数大于 1);kGroupSize per-tensor/per-channel 必须为 0、per-group 必须大于 0。格式字段沿用历史写法。 - outWeight 按数据流分场景说明:per-tensor(转置/非转置)与 per-channel/per-group 转置场景为 ND 直拷;per-channel/per-group 非转置场景由 ND 转为 FRACTAL_NZ_C0_16,storage shape 为 {ceildiv(N, 16), ceildiv(K, 16), 16, 16}(N 块在前,区别于 A8W4 NZ_C0_32 的 K 块在前)。 - 参数表修正过时项:weight 数据类型补 int4、weightScale 补 float16/bfloat16 及维度 1-4、weightOffset 按数据流说明(MM_A16S4 数据流支持透传,要求与 weightScale 同 viewShape、同数据类型)、outWeight 格式补 ND/NZ;同步更新返回值表与 161002 错误兜底描述。 - 新增 example test_aclnn_weight_quant_preprocess_a16s4.cpp:覆盖 A16S4 perchannel 非转置 NZ_C0_16 输出(含 offset 透传)与 A16S4 pertensor ND 直拷两个场景,示范 NZ_C0_16 storage shape(N 块在前)的构造;调用示例章节末尾按历史风格内联完整源码(与 example 文件逐字一致)。 ## 关联的Issue 关联Issue [#2851](https://gitcode.com/cann/ops-math/issues/2851) ## 测试 - 新 example 已通过官方路径 bash build.sh --run_example weight_quant_preprocess eager --soc=ascend950 在 Ascend950 实机编译运行通过:两个场景全部 success,存量 MM_MX_A8W4 example 不受影响。 ## 文档更新 更新了 aclnnWeightQuantPreprocess.md。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-math!5040 | 2 months ago | |
weight quant preprocess support A16W8 Co-authored-by: zhangquanxin<zhangquanxin7@h-partners.com> # message auto-generated for no-merge-commit merge: !5301 merge weight_preprocess_support_a16w8 into master weight quant preprocess support A16W8 Created-by: zhangquanxin Commit-by: zhangquanxin Merged-by: cann-robot Description: ## 描述 为 weight_quant_preprocess(伪量化 Matmul weight_quant_batch_matmul_v2 的前置参数预处理算子)新增 A16W8 数据流支持:x 为 FP16/BF16、weight 为 INT8 或 FP8(FLOAT8_E4M3FN/HIFLOAT8),共 10 个子场景(A16INT8 per-tensor/per-channel/per-group × 转置/非转置 + A16FP8HIF8 per-channel × 转置/非转置),全部 ND 直拷透传。 ## 关联的Issue #3655 https://gitcode.com/cann/ops-math/issues/3655 ## 测试 二级冒烟 ## 文档更新 docs/aclnnWeightQuantPreprocess.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5301 | 22 days ago | |
feat: weight_quant_preprocess 新增 A8W4(F8F4) T-CG 数据流 MM_A8F4_TCG Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !6068 merge feat/weight-quant-preprocess-f8f4-tcg into master feat: weight_quant_preprocess 新增 A8W4(F8F4) T-CG 数据流 MM_A8F4_TCG Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 为 weight_quant_preprocess(伪量化 Matmul 的前置参数预处理算子)新增 A8W4(F8F4) T-CG 数据流 MM_A8F4_TCG:x 为 FLOAT8_E4M3FN、weight 为 FLOAT4_E2M1(紧凑 4-bit)、weightScale 为 FP16/BF16 per-group({ceildiv(K,32),N},G>1),配套 QuantBatchMatmulV4 的 T-CG 伪量化场景,共 2 个子场景(weight 转置 → ND 直拷透传;weight 非转置 → ND→FRACTAL_NZ_C0_32 分形转换)。check/process 全部复用既有组件(含与 master 重名的存量符号统一加 9201 后缀),TCG 零新增 kernel。 ## 关联的Issue #3839 https://gitcode.com/cann/ops-math/issues/3839 ## 测试 二级冒烟(新增 MM_A8F4_TCG UT 用例全过,存量 91 例回归正常) ## 文档更新 docs/aclnnWeightQuantPreprocess.md ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6068 | 21 days ago |
| Files | Last commit | Last update |
|---|---|---|
| 3 months ago | ||
| 1 month ago | ||
| 2 months ago | ||
| 22 days ago | ||
| 21 days ago |