| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
打标签 Co-authored-by: y60124828<yanglou1@h-partners.com> # message auto-generated for no-merge-commit merge: !8285 merge master into master 打标签 Created-by: yanglu-1 Commit-by: y60124828 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8285 | 1 个月前 | |
添加matmul_compress和matmul_v2_compress_dequant两个算子的example用例 Co-authored-by: HuangKun8682<huangkun61@huawei.com> # message auto-generated for no-merge-commit merge: !7833 merge personal_add_matmul_compress_examples into master 添加matmul_compress和matmul_v2_compress_dequant两个算子的example用例 Created-by: HuangKun8682 Commit-by: HuangKun8682 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 添加matmul_compress和matmul_v2_compress_dequant两个算子的example用例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue [#4212](https://gitcode.com/cann/ops-nn/issues/4212) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地运行通过 (py310_2_1_atk2) root@40ac4f110e8b:/home/h00918682/ops/ops-nn_hkflye# bash build.sh --run_example matmul_v2_compress_dequant eager --soc=ascend310p [2026-07-22 17:13:35] COMPUTE_UNIT: ascend310p [2026-07-22 17:13:35] CMAKE_ARGS: -DBUILD_PATH=/home/h00918682/ops/ops-nn_hkflye/build -DENABLE_VALGRIND=FALSE -DCMAKE_BUILD_TYPE=Release -DENABLE_MSSANITIZER=FALSE -DENABLE_OOM=FALSE -DENABLE_DUMP_CCE=FALSE -DENABLE_COVERAGE=FALSE -DENABLE_TEST=FALSE -DENABLE_UT_EXEC=TRUE -DENABLE_CUSTOM=FALSE -DENABLE_STATIC=FALSE -DMODULE_EXT= -UASCEND_OP_NAME -UVENDOR_NAME -DENABLE_BINARY=FALSE -DENABLE_PACKAGE=FALSE -DENABLE_EXPERIMENTAL=FALSE -DNO_FORCE=FALSE -DBUILD_MODE= -DENABLE_CCACHE=TRUE -DOP_HOST_UT=FALSE -DOP_GRAPH_UT=FALSE -DOP_API_UT=FALSE -DOP_KERNEL_UT=FALSE -DOP_KERNEL_AICPU_UT=FALSE -DUT_TEST_ALL=FALSE -DASCEND_COMPUTE_UNIT=ascend310p -DCANN_3RD_LIB_PATH=/home/h00918682/ops/ops-nn_hkflye/third_party [2026-07-22 17:13:35] ---------------------------------------------------------------- [2026-07-22 17:13:36] Start to run example,op_name:matmul_v2_compress_dequant example_name:matmul_compress_dequant mode:eager. [2026-07-22 17:13:41] result[0] is: 0.000000 [2026-07-22 17:13:41] result[1] is: 0.000000 [2026-07-22 17:13:41] result[2] is: 0.000000 [2026-07-22 17:13:41] result[3] is: 0.000000 [2026-07-22 17:13:41] result[4] is: 0.000000 [2026-07-22 17:13:41] result[5] is: 0.000000 [2026-07-22 17:13:41] result[6] is: 0.000000 [2026-07-22 17:13:41] result[7] is: 0.000000 [2026-07-22 17:13:41] result[8] is: 0.000000 [2026-07-22 17:13:41] result[9] is: 0.000000 [2026-07-22 17:13:41] [2026-07-22 17:13:41] ---------------------------------------------------------------- [2026-07-22 17:13:41] Run test_aclnn_matmul_compress_dequant success. [2026-07-22 17:13:41] ---------------------------------------------------------------- [2026-07-22 17:13:41] (py310_2_1_atk2) root@40ac4f110e8b:/home/h00918682/ops/ops-nn_hkflye# bash build.sh --run_example matmul_compress eager --soc=ascend310p [2026-07-22 17:13:53] COMPUTE_UNIT: ascend310p [2026-07-22 17:13:53] CMAKE_ARGS: -DBUILD_PATH=/home/h00918682/ops/ops-nn_hkflye/build -DENABLE_VALGRIND=FALSE -DCMAKE_BUILD_TYPE=Release -DENABLE_MSSANITIZER=FALSE -DENABLE_OOM=FALSE -DENABLE_DUMP_CCE=FALSE -DENABLE_COVERAGE=FALSE -DENABLE_TEST=FALSE -DENABLE_UT_EXEC=TRUE -DENABLE_CUSTOM=FALSE -DENABLE_STATIC=FALSE -DMODULE_EXT= -UASCEND_OP_NAME -UVENDOR_NAME -DENABLE_BINARY=FALSE -DENABLE_PACKAGE=FALSE -DENABLE_EXPERIMENTAL=FALSE -DNO_FORCE=FALSE -DBUILD_MODE= -DENABLE_CCACHE=TRUE -DOP_HOST_UT=FALSE -DOP_GRAPH_UT=FALSE -DOP_API_UT=FALSE -DOP_KERNEL_UT=FALSE -DOP_KERNEL_AICPU_UT=FALSE -DUT_TEST_ALL=FALSE -DASCEND_COMPUTE_UNIT=ascend310p -DCANN_3RD_LIB_PATH=/home/h00918682/ops/ops-nn_hkflye/third_party [2026-07-22 17:13:53] ---------------------------------------------------------------- [2026-07-22 17:13:54] Start to run example,op_name:matmul_compress example_name:matmul_compress mode:eager. [2026-07-22 17:13:59] result[0] is: 0.000000 [2026-07-22 17:13:59] result[1] is: 0.000000 [2026-07-22 17:13:59] result[2] is: 0.000000 [2026-07-22 17:13:59] result[3] is: 0.000000 [2026-07-22 17:13:59] result[4] is: 0.000000 [2026-07-22 17:13:59] result[5] is: 0.000000 [2026-07-22 17:13:59] result[6] is: 0.000000 [2026-07-22 17:13:59] result[7] is: 0.000000 [2026-07-22 17:13:59] result[8] is: 0.000000 [2026-07-22 17:13:59] result[9] is: 0.000000 [2026-07-22 17:13:59] [2026-07-22 17:13:59] ---------------------------------------------------------------- [2026-07-22 17:13:59] Run test_aclnn_matmul_compress success. [2026-07-22 17:13:59] ---------------------------------------------------------------- ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:添加example ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7833 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 1 个月前 | |
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 1 个月前 | |
support add_all_module_source支持一个算子 只配置一个CMakeList.txt Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8380 merge master into master support add_all_module_source支持一个算子 只配置一个CMakeList.txt Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: 此 PR 引入了新的 CMake 宏 add_all_modules_sources 作为算子顶层 CMakeLists.txt 的统一编译入口,旨在简化算子构建配置。同时,底层函数 add_kernel_sources 和 AddOpTestCase 也进行了适配,支持从算子顶层目录调用,替代原先必须在特定子目录(如 op_kernel、tests/ut/op_kernel)内调用的限制。整体改动通过自适应目录位置、收编 UT 源收集逻辑,提升构建系统的灵活性和可维护性。 主要改动 新增 add_all_modules_sources 宏:在 cmake/func.cmake 中新增统一入口宏,支持 OPTYPE、ACLNNTYPE、DEPENDENCIES、COMPUTE_UNIT、TILING_DIR、DISABLE_IN_OPP 等参数;自动适配 op_api 目录在算子根或 op_host 子目录下的两种布局,内部复用 add_modules_sources 并触发 add_all_ut_sources 收集 UT 源。 新增 add_all_ut_sources 宏:在 cmake/func.cmake 中新增 UT 源收集宏,根据 UT_TEST_ALL、OP_API_UT、OP_HOST_UT、OP_GRAPH_UT 等条件分别收集 tests/ut/op_api、tests/ut/op_host、tests/ut/op_graph 下的测试源文件,并兼容历史布局 tests/ut/op_host/op_api。 add_kernel_sources 适配新调用位置:当 CMAKE_CURRENT_SOURCE_DIR 不以 /op_kernel 结尾时,自动将 SOURCE_DIR 拼接 /op_kernel 子目录,使该函数支持从算子顶层目录被调用。 AddOpTestCase 支持自定义 UT 源目录:新增 UT_SRC_DIR 参数用于指定 UT 源文件所在目录;_tiling_def.h 的 include 路径和 *.cpp 测试用例文件的 file(GLOB) 扫描路径均改用 _ut_src_dir 变量,替代原先硬编码的 CMAKE_CURRENT_SOURCE_DIR。 AddOpTestCase 优化算子目录推导:优先使用 add_op_subdirectory 设置的全局变量 OP_DIR 确定算子根目录,当该变量未定义或为空时才回退到原有的三级父目录推导逻辑(tests/ut/op_kernel 内部调用方式),增强了从算子顶层调用的兼容性。 See merge request: cann/ops-nn!8380 | 26 天前 | |
feat: rename op_api_def.h to op_api_def_nn.h Co-authored-by: chenqianyu<chenqianyu1@h-partners.com> # message auto-generated for no-merge-commit merge: !8360 merge rename_opapidef into master feat: rename op_api_def.h to op_api_def_nn.h Created-by: FishPotatoChen Commit-by: chenqianyu Merged-by: cann-robot Description: ## 描述 本次改动将 op_api/op_api_def.h 重命名为 op_api/op_api_def_nn.h,并同步更新了所有引用该头文件的源文件与测试文件中的 #include 路径,共涉及 161 个文件。 改动原因:将 op_api 定义头文件统一命名为 op_api_def_nn.h,以更好地体现其所属模块(NN 算子)的语义,便于后续与其他模块的头文件区分管理。 此外,在提交过程中发现 4 个文件(aclnn_foreach_addcmul_scalar_v2.cpp、aclnn_max_unpool3d.cpp、test_aclnn_addmv.cpp、test_aclnn_fast_batchnorm_backward.cpp)的许可证头使用了非标准的旧格式,导致 OAT 合规检查失败。本次一并将其更新为标准的 CANN 开源许可证头格式,确保通过合规校验。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4954 ## 测试 - 通过 pre-commit 钩子校验:trailing whitespace、end-of-file-fixer、clang-format 均通过 - 通过 OAT 合规检查(161 个文件全部通过) - 本次为头文件重命名改动,不涉及逻辑变更,编译依赖关系保持不变 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:头文件重命名与许可证头修复 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8360 | 15 天前 | |
support add_all_module_source支持一个算子 只配置一个CMakeList.txt Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8380 merge master into master support add_all_module_source支持一个算子 只配置一个CMakeList.txt Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: 此 PR 引入了新的 CMake 宏 add_all_modules_sources 作为算子顶层 CMakeLists.txt 的统一编译入口,旨在简化算子构建配置。同时,底层函数 add_kernel_sources 和 AddOpTestCase 也进行了适配,支持从算子顶层目录调用,替代原先必须在特定子目录(如 op_kernel、tests/ut/op_kernel)内调用的限制。整体改动通过自适应目录位置、收编 UT 源收集逻辑,提升构建系统的灵活性和可维护性。 主要改动 新增 add_all_modules_sources 宏:在 cmake/func.cmake 中新增统一入口宏,支持 OPTYPE、ACLNNTYPE、DEPENDENCIES、COMPUTE_UNIT、TILING_DIR、DISABLE_IN_OPP 等参数;自动适配 op_api 目录在算子根或 op_host 子目录下的两种布局,内部复用 add_modules_sources 并触发 add_all_ut_sources 收集 UT 源。 新增 add_all_ut_sources 宏:在 cmake/func.cmake 中新增 UT 源收集宏,根据 UT_TEST_ALL、OP_API_UT、OP_HOST_UT、OP_GRAPH_UT 等条件分别收集 tests/ut/op_api、tests/ut/op_host、tests/ut/op_graph 下的测试源文件,并兼容历史布局 tests/ut/op_host/op_api。 add_kernel_sources 适配新调用位置:当 CMAKE_CURRENT_SOURCE_DIR 不以 /op_kernel 结尾时,自动将 SOURCE_DIR 拼接 /op_kernel 子目录,使该函数支持从算子顶层目录被调用。 AddOpTestCase 支持自定义 UT 源目录:新增 UT_SRC_DIR 参数用于指定 UT 源文件所在目录;_tiling_def.h 的 include 路径和 *.cpp 测试用例文件的 file(GLOB) 扫描路径均改用 _ut_src_dir 变量,替代原先硬编码的 CMAKE_CURRENT_SOURCE_DIR。 AddOpTestCase 优化算子目录推导:优先使用 add_op_subdirectory 设置的全局变量 OP_DIR 确定算子根目录,当该变量未定义或为空时才回退到原有的三级父目录推导逻辑(tests/ut/op_kernel 内部调用方式),增强了从算子顶层调用的兼容性。 See merge request: cann/ops-nn!8380 | 26 天前 | |
补充 matmulCompress Readme文档 Co-authored-by: ww-blue<wangwei1274@huawei.com> # message auto-generated for no-merge-commit merge: !6967 merge nn-md-2 into master 补充 matmulCompress Readme文档 Created-by: ww-blue Commit-by: ww-blue Merged-by: cann-robot Description: ## 描述 补充 matmulCompress Readme文档 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 关联Issue #3699 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> matmul/matmul_compress/README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6967 | 2 个月前 |
MatMulCompress
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | × |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能:进行矩阵乘计算时,可先通过msModelSlim工具对右矩阵进行无损压缩,减少内存占用,然后通过本接口完成无损解压缩、矩阵乘计算。
-
计算公式:
x2_unzip = unzip(x2, compressIndex) result = x1 @ x2_unzip + bias其中x2表示右矩阵经过msModelSlim工具压缩后的一维数据,compressIndex表示压缩算法相关的信息,x2_unzip是接口内部进行无损解压缩后的数据(与原始右矩阵数据一致)。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入张量 | 矩阵乘的左输入,2维张量。 | FLOAT16 | ND |
| x2 | 输入张量 | 压缩后的矩阵乘右输入,1维张量。 | FLOAT16 | ND |
| compressIndex | 输入张量 | 矩阵乘右输入的压缩索引表,1维张量。 | INT8 | ND |
| bias | 输入张量 | 偏置项,支持空指针传入。 | FLOAT | ND |
| out | 输出张量 | 计算结果输出。 | FLOAT16 | ND |
约束说明
- x1和x2_unzip的Reduce维度大小必须相等。
- 所有输入张量不支持非连续的Tensor。