| 产品名变更 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 | 1 个月前 |
| fix: 恢复 TransData 的 aclnn 示例 Co-authored-by: xujiachen8<xujiachen8@h-partners.com> # message auto-generated for no-merge-commit merge: !5712 merge transdata-examples into master fix: 恢复 TransData 的 aclnn 示例 Created-by: xujiachen8 Commit-by: xujiachen8 Merged-by: cann-robot Description: ## 描述 TransData 的 aclnn 示例在 main 开头直接 return 0,实际未调用接口。本次恢复三个矩阵乘权重相关示例的执行,并修复运行时暴露的问题: - CalculateMatmulWeightSize:使用正确的 FP16 数据表示及回读字节数。 - CalculateMatmulWeightSize、TransMatmulWeight:按查询容量分配设备内存,按实际主机数据长度拷贝,避免对齐容量导致主机越界读取;释放查询数组。 - CalculateMatmulWeightSizeV2:独立验证 INT8 权重容量查询和转换,移除在 A5 上因 ND/NZ 格式要求不一致而失败的下游量化矩阵乘流程。 - 删除 CalculateConvolutionWeightSize 和 TransConvolutionWeight 两个独立示例文件;接口实现、API 文档与 UT 保留。 ## 关联的Issue 关联 #3173:https://gitcode.com/cann/ops-math/issues/3173 本 PR 处理 TransData 示例部分;ConfusionTransposeD 示例由 PR !5692 处理。 ## 测试 在 Ascend950(A5)、CANN 9.2.0 环境下,三个保留示例均编译运行成功,退出码均为 0: - CalculateMatmulWeightSize:256 个输出均为 32。 - CalculateMatmulWeightSizeV2:容量为 1024 bytes,权重转换数据检查 PASS。 - TransMatmulWeight:256 个输出均为 32。 使用独立 CMake 工程链接已安装的完整 libopapi 进行验证。仓库原生 build.sh 示例入口仅链接 libopapi_math,运行本组示例时存在 aclnnMm/aclnnMmGetWorkspaceSize 链接缺失,本 PR 未修改通用构建脚本。未重新编译安装仓库算子包;上述固定输入验证不替代完整算子 UT 或布局泛化测试。 git diff --check 通过;提交中的三个示例源码哈希与上述测试版本一致。 ## 文档更新 无。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5712 | 1 个月前 |
| trans_data/tanh算子适配ascend350平台 Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !5560 merge trans_data_ascend350 into master trans_data/tanh算子适配ascend350平台 Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 TransData、Tanh 两个算子补齐 ascend350 平台适配: **TransData(5 处改动)** 1. conversion/trans_data/CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend350,SUPPORT_TILING_DIR 对应新增 arch35(与 ascend950 共用同一 tiling 目录);同时将许可证头规范化为标准 CANN 格式。 2. conversion/trans_data/op_host/trans_data_def.cpp:新增 this->AICore().AddConfig("ascend350", aicore_config),为 ascend350 注册 AICore 算子配置(与 ascend950 配置一致,复用 trans_data_apt)。 3. conversion/trans_data/op_host/config/ascend350/trans_data_binary.json(新增):ascend350 平台的二进制算子配置,内容与 ascend950 的 trans_data_binary.json 一致。 4. conversion/trans_data/op_api/aclnn_trans_matmul_weight.cpp 与 aclnn_trans_convolution_weight.cpp:将 SocVersion 平台判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 → DAV_2201,ASCEND310P → DAV_2002),IsRegBase() 改为传入 arch 参数,错误日志仍使用 SocVersion。 5. scripts/kernel/binary_config/ascendc_config.json:TransData 条目的 compute_units 与 compile_options 新增 ascend350(编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false),为 ascend350 补齐内核编译配置。 **Tanh(1 处改动)** 6. math/tanh/op_api/aclnn_tanh.cpp:GetOutDtypeSupportList 与 CheckDtypeValid 中 SocVersion 判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 及 ASCEND910B~ASCEND910E 区间判断 → DAV_2201 || IsRegBase(curArch)),使 350 平台走正确的 dtype 支持列表分支。op_host 侧(def.cpp 的 ascend350 AddConfig、config/ascend350/tanh_binary.json、CMakeLists)此前已具备,无需改动。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3132 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - pre-commit 本地检查通过(clang-format / codespell / JSON / OAT 合规扫描阻塞项为 0) - 现有 UT(test_aclnn_trans_matmul_weight_l2.cpp、test_aclnn_tanh.cpp 等)已基于 SetPlatformNpuArch 编写,与改动后各 arch 分支语义一致 - 待在 ascend350 环境完成二级冒烟、算子泛化验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无需更新文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5560 | 1 个月前 |
| feat: WeightQuantPreprocess 新增 A16W4 紧凑排布数据流支持(INT4/FP4/MXFP4) Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !4495 merge feat/weight-quant-preprocess-a16w4 into master feat: WeightQuantPreprocess 新增 A16W4 紧凑排布数据流支持(INT4/FP4/MXFP4) Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## WeightQuantPreprocess A16W4 数据流支持 ### 概述 为 aclnnWeightQuantPreprocess 算子添加 A16W4(INT4/FP4/MXFP4)数据流支持,实现从 ND 格式到 NZ_C0_16 格式的转换。 ### 主要修改 1. FORMAT_FAKE_TO_REAL 映射机制 - 添加 NZ_C0_8 → NZ_C0_16 映射(A16 场景) - 保留 NZ_C0_16 → NZ_C0_32 映射(A8 场景) 2. TransData Kernel 支持 - 添加 int4 → NZ_C0_16 转换 - 添加 float4_e2m1 → NZ_C0_16 转换 3. torch_npu ACL_INT4 支持 - 在 GetAclDataTypeItemSize 中添加 ACL_INT4 case ### 验证结果 所有测试场景通过: | 场景 | 状态 | 说明 | |------|------|------| | A16INT4 PerTensor | ✓ PASS | 数值精度验证通过 | | A16INT4 PerChannel | ✓ PASS | 数值精度验证通过 | | A16INT4 PerGroup | ✓ PASS | 数值精度验证通过 | | A16FP4 PerGroup | ✓ PASS | 端到端成功 | | A16MXFP4 PerGroup | ✓ PASS | 端到端成功 | | MX A8W4 (回归) | ✓ PASS | 确保 A8 场景不受影响 | ### 环境要求 - CANN 版本: cann-9.2.0 或更高 - 使用 source /path/to/cann-9.2.0/set_env.sh 设置环境变量 ### 相关 PR - op-plugin: https://gitcode.com/Ascend/op-plugin/pull/5676 ### 关联Issue - https://gitcode.com/cann/ops-math/issues/2851 See merge request: cann/ops-math!4495 | 1 个月前 |
| trans_data/tanh算子适配ascend350平台 Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !5560 merge trans_data_ascend350 into master trans_data/tanh算子适配ascend350平台 Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 TransData、Tanh 两个算子补齐 ascend350 平台适配: **TransData(5 处改动)** 1. conversion/trans_data/CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend350,SUPPORT_TILING_DIR 对应新增 arch35(与 ascend950 共用同一 tiling 目录);同时将许可证头规范化为标准 CANN 格式。 2. conversion/trans_data/op_host/trans_data_def.cpp:新增 this->AICore().AddConfig("ascend350", aicore_config),为 ascend350 注册 AICore 算子配置(与 ascend950 配置一致,复用 trans_data_apt)。 3. conversion/trans_data/op_host/config/ascend350/trans_data_binary.json(新增):ascend350 平台的二进制算子配置,内容与 ascend950 的 trans_data_binary.json 一致。 4. conversion/trans_data/op_api/aclnn_trans_matmul_weight.cpp 与 aclnn_trans_convolution_weight.cpp:将 SocVersion 平台判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 → DAV_2201,ASCEND310P → DAV_2002),IsRegBase() 改为传入 arch 参数,错误日志仍使用 SocVersion。 5. scripts/kernel/binary_config/ascendc_config.json:TransData 条目的 compute_units 与 compile_options 新增 ascend350(编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false),为 ascend350 补齐内核编译配置。 **Tanh(1 处改动)** 6. math/tanh/op_api/aclnn_tanh.cpp:GetOutDtypeSupportList 与 CheckDtypeValid 中 SocVersion 判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 及 ASCEND910B~ASCEND910E 区间判断 → DAV_2201 || IsRegBase(curArch)),使 350 平台走正确的 dtype 支持列表分支。op_host 侧(def.cpp 的 ascend350 AddConfig、config/ascend350/tanh_binary.json、CMakeLists)此前已具备,无需改动。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3132 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - pre-commit 本地检查通过(clang-format / codespell / JSON / OAT 合规扫描阻塞项为 0) - 现有 UT(test_aclnn_trans_matmul_weight_l2.cpp、test_aclnn_tanh.cpp 等)已基于 SetPlatformNpuArch 编写,与改动后各 arch 分支语义一致 - 待在 ascend350 环境完成二级冒烟、算子泛化验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无需更新文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5560 | 1 个月前 |
| TransData Simt C风格接口修改 Co-authored-by: SimonZzz<zhouquan79@huawei.com> # message auto-generated for no-merge-commit merge: !2604 merge transDataSimtFix into master TransData Simt C风格接口修改 Created-by: SimonZzz Commit-by: SimonZzz Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> TransData Simt C风格接口修改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/1512 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 本地修改前后md5sum一致 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2604 | 5 个月前 |
| fix(aicpu): 补充5处成员函数const修饰(G.CNS.03残留) Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !5897 merge fix/aicpu-cns03-const-residual into master fix(aicpu): 补充5处成员函数const修饰(G.CNS.03残留) Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 修复 5 条 G.CNS.03 告警(不修改成员变量的成员函数应使用 const 修饰),共 8 个文件 +10/-10,声明与定义同步修改: | 告警 | 文件 | 修复 | |---|---|---| | G.CNS.03 ×1 | strided_slice_v2_aicpu.h/.cpp | CheckParam 补充 const(4 个被调成员均已为 const) | | G.CNS.03 ×2 | trans_data_aicpu.h/.cpp | DealData/PaddingTwo 补充 const(依赖均为已 const 成员或自由函数) | | G.CNS.03 ×1 | real_div_aicpu.h/.cpp | RealDivSameTypeCompute 补充 const(依赖 RealDivCompute 已 const) | | G.CNS.03 ×1 | mul_aicpu.h/.cpp | MulSameTypeCompute 补充 const(依赖 MulCompute 已 const) | ## 未包含项 - trans_data 的 DispatchDealData G.CNS.04 ×3:维持 PR #5856 的误报结论(aicpu::PtrToPtr<void, T> 无 const 重载,且 output_data_temp 确实被写入,不可 const); - strided_slice 的 G.EXP.27 ×4:由 #3267 另行跟进。 ## 验证 - 二进制级对比(父提交 b7b3d0278 vs 本提交 b51424f97,同编译参数 g++ -O2 -std=c++14):4 个改动 TU 的全部非符号节(共 4598 节,含 trans_data 中 3 个 DealData 模板实例化节与 1 个字符串常量节的 _ZN→_ZNK 重命名配对比对)**逐字节相同**; - 符号差异仅为 5 处 const 化函数的修饰名变化(_ZN→_ZNK,含 _GLOBAL__sub_I 辅助符号名内嵌变化),未定义符号集合一致——**零功能影响**; - CI 流水线待跑。 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/3272 ## 类型 🧹 代码清理 See merge request: cann/ops-math!5897 | 1 个月前 |
| [PR3/3] migrate transdata aicpu kernel: remaining formats + OpDef + infershape + full UT Co-authored-by: pan-tong<pantong@huawei.com> # message auto-generated for no-merge-commit merge: !4115 merge transdata_pr3 into master [PR3/3] migrate transdata aicpu kernel: remaining formats + OpDef + infershape + full UT Created-by: pan-tong Commit-by: pan-tong Merged-by: cann-robot Description: ## 描述 将canndev仓TransData算子的AICPU kernel迁移到ops-math仓,PR3/3:remaining formats + OpDef + infershape + full UT + example。 ## 关联的Issue #2231 ## 测试 PR3 of 3 (final): remaining format_transfer + OpDef registration + infershape + full UT + example. - format_transfer_fractalz_3d.{cpp,h}: NCDHW/DHWCN/NDHWC <-> FRACTAL_Z_3D - format_transfer_ndc1hwc0.{cpp,h}: NCDHW/NDHWC -> NDC1HWC0 - format_transfer_transpose.{cpp,h}: format transpose - trans_data_aicpu_def.cpp: AICPU OpDef registration (activates custom_math) - trans_data_infershape.cpp: RT2 InferShape - test_trans_data.cpp: full 23 kernel UT cases - test_trans_data_infershape.cpp: 6 infershape UT cases - test_geir_trans_data.cpp: GE IR example - docs/zh/op_list.md: mark trans_data as AI Core/AI CPU This PR activates custom_math TransData. Depends on PR1 + PR2. ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述:算子迁仓 See merge request: cann/ops-math!4115 | 2 个月前 |
| trans_data/tanh算子适配ascend350平台 Co-authored-by: wenqi_wu<wenqiwu0628@163.com> # message auto-generated for no-merge-commit merge: !5560 merge trans_data_ascend350 into master trans_data/tanh算子适配ascend350平台 Created-by: wenqi_wu Commit-by: wenqi_wu Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 TransData、Tanh 两个算子补齐 ascend350 平台适配: **TransData(5 处改动)** 1. conversion/trans_data/CMakeLists.txt:SUPPORT_COMPUTE_UNIT 新增 ascend350,SUPPORT_TILING_DIR 对应新增 arch35(与 ascend950 共用同一 tiling 目录);同时将许可证头规范化为标准 CANN 格式。 2. conversion/trans_data/op_host/trans_data_def.cpp:新增 this->AICore().AddConfig("ascend350", aicore_config),为 ascend350 注册 AICore 算子配置(与 ascend950 配置一致,复用 trans_data_apt)。 3. conversion/trans_data/op_host/config/ascend350/trans_data_binary.json(新增):ascend350 平台的二进制算子配置,内容与 ascend950 的 trans_data_binary.json 一致。 4. conversion/trans_data/op_api/aclnn_trans_matmul_weight.cpp 与 aclnn_trans_convolution_weight.cpp:将 SocVersion 平台判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 → DAV_2201,ASCEND310P → DAV_2002),IsRegBase() 改为传入 arch 参数,错误日志仍使用 SocVersion。 5. scripts/kernel/binary_config/ascendc_config.json:TransData 条目的 compute_units 与 compile_options 新增 ascend350(编译选项 -mllvm -cce-aicore-dcci-before-kernel-end=false),为 ascend350 补齐内核编译配置。 **Tanh(1 处改动)** 6. math/tanh/op_api/aclnn_tanh.cpp:GetOutDtypeSupportList 与 CheckDtypeValid 中 SocVersion 判断改为 NpuArch 判断(ASCEND910B/ASCEND910_93 及 ASCEND910B~ASCEND910E 区间判断 → DAV_2201 || IsRegBase(curArch)),使 350 平台走正确的 dtype 支持列表分支。op_host 侧(def.cpp 的 ascend350 AddConfig、config/ascend350/tanh_binary.json、CMakeLists)此前已具备,无需改动。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3132 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> - pre-commit 本地检查通过(clang-format / codespell / JSON / OAT 合规扫描阻塞项为 0) - 现有 UT(test_aclnn_trans_matmul_weight_l2.cpp、test_aclnn_tanh.cpp 等)已基于 SetPlatformNpuArch 编写,与改动后各 arch 分支语义一致 - 待在 ascend350 环境完成二级冒烟、算子泛化验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无需更新文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5560 | 1 个月前 |
| 产品名变更 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 | 1 个月前 |