| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 18 天前 | |
8月ops-nn仓sc清理 Co-authored-by: wangwei_mayday<wangwei1183@huawei.com> # message auto-generated for no-merge-commit merge: !8855 merge master into master 8月ops-nn仓sc清理 Created-by: wangwei_mayday Commit-by: wangwei_mayday Merged-by: cann-robot Description: ## 描述 清理当前matmul算子库中存在一些代码规范问题,主要集中在以下几个文件: ops-nn/matmul/matmul_emu_split_weight/op_kernel/matmul_emu_split_weight_tiling_data.h 存在未引用的头文件 ops-nn/matmul/matmul_emu_split_weight/op_host/matmul_emu_split_weight_def.cpp 22行存在魔鬼数字 ops-nn/matmul/matmul_emu_split_weight/op_api/aclnn_matmul_emu_split_weight.h .h文件中函数aclnnMatmulEmuSplitWeightGetWorkspaceSize的参数命名与对应cpp文件中的函数参数命名存在差异 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->关联Issue #4842 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8855 | 18 天前 | |
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 | 29 天前 | |
8月ops-nn仓sc清理 Co-authored-by: wangwei_mayday<wangwei1183@huawei.com> # message auto-generated for no-merge-commit merge: !8855 merge master into master 8月ops-nn仓sc清理 Created-by: wangwei_mayday Commit-by: wangwei_mayday Merged-by: cann-robot Description: ## 描述 清理当前matmul算子库中存在一些代码规范问题,主要集中在以下几个文件: ops-nn/matmul/matmul_emu_split_weight/op_kernel/matmul_emu_split_weight_tiling_data.h 存在未引用的头文件 ops-nn/matmul/matmul_emu_split_weight/op_host/matmul_emu_split_weight_def.cpp 22行存在魔鬼数字 ops-nn/matmul/matmul_emu_split_weight/op_api/aclnn_matmul_emu_split_weight.h .h文件中函数aclnnMatmulEmuSplitWeightGetWorkspaceSize的参数命名与对应cpp文件中的函数参数命名存在差异 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->关联Issue #4842 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8855 | 18 天前 | |
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 | 29 天前 | |
feat(伪量化): AscnedC::MicroAPI替换为AscendC::Reg Co-authored-by: maqijun<maqijun@h-partners.com> # message auto-generated for no-merge-commit merge: !8319 merge ascendc_reg into master feat(伪量化): AscnedC::MicroAPI替换为AscendC::Reg Created-by: maqijun Commit-by: maqijun Merged-by: cann-robot Description: ## 描述 AscnedC::MicroAPI变更,需要替换为AscendC::Reg,伪量化相关算子的kernel代码需要全局替换 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4793 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8319 | 21 天前 | |
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 | 29 天前 | |
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 | 18 天前 | |
8月ops-nn仓sc清理 Co-authored-by: wangwei_mayday<wangwei1183@huawei.com> # message auto-generated for no-merge-commit merge: !8855 merge master into master 8月ops-nn仓sc清理 Created-by: wangwei_mayday Commit-by: wangwei_mayday Merged-by: cann-robot Description: ## 描述 清理当前matmul算子库中存在一些代码规范问题,主要集中在以下几个文件: ops-nn/matmul/matmul_emu_split_weight/op_kernel/matmul_emu_split_weight_tiling_data.h 存在未引用的头文件 ops-nn/matmul/matmul_emu_split_weight/op_host/matmul_emu_split_weight_def.cpp 22行存在魔鬼数字 ops-nn/matmul/matmul_emu_split_weight/op_api/aclnn_matmul_emu_split_weight.h .h文件中函数aclnnMatmulEmuSplitWeightGetWorkspaceSize的参数命名与对应cpp文件中的函数参数命名存在差异 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->关联Issue #4842 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8855 | 18 天前 | |
修复fqmm x1/x2 空指针校验时机过晚的问题 Co-authored-by: rueenov11<zhuruyi@huawei.com> # message auto-generated for no-merge-commit merge: !8511 merge fix/fused-quant-matmul-early-null-check into master 修复fqmm x1/x2 空指针校验时机过晚的问题 Created-by: rueenov11 Commit-by: rueenov11 Merged-by: cann-robot Description: ## 描述 修复 aclnnFusedQuantMatmulGetWorkspaceSize(aclnnfqmm)与 aclnnFusedQuantMatmulWeightNzGetWorkspaceSize(aclnnfqmmwnz)接口中,x1/x2 空指针校验时机过晚的问题。 **问题原因:** - 两个接口在入口处会调用 IsTransposeLastTwoDims(x1/x2),该函数内部会直接访问 tensor->GetViewShape(),未对空指针做保护。 - 原有的 x1/x2 空指针校验位于 CheckInputExistence 中,需经过 PreMatmulCalcProcess 才会执行,导致传入 nullptr 时可能在空校验前崩溃,而非返回 ACLNN_ERR_PARAM_NULLPTR。 - WeightNz 接口原先仅对 x2 做了前置校验,且返回 ACLNN_ERR_PARAM_INVALID,x1 为空时仍会在 IsTransposeLastTwoDims(x1) 处崩溃,错误码也不一致。 **修改方法:** - 在两个 GetWorkspaceSize 入口、L2_DFX_PHASE_1 之后、IsTransposeLastTwoDims 及后续 tensor 成员访问之前,增加 OP_CHECK_NULL(x1/x2) 前置校验。 - WeightNz 接口删除原有的 x2 手写 null 判断,统一使用 OP_CHECK_NULL,返回 ACLNN_ERR_PARAM_NULLPTR,与 CheckInputExistence 及同系列接口(如 aclnnQuantMatmulWeightNzGetWorkspaceSize)保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4784 ## 测试 ## 文档更新 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8511 | 25 天前 | |
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 | 18 天前 | |
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 | 29 天前 | |
【FEATURE】A2/A3 ACLNN Addmm/Baddbmm/AddmmWeightNz 支持 broadcast bias 路由 GemmV3 Co-authored-by: HuangKun8682<huangkun61@huawei.com> # message auto-generated for no-merge-commit merge: !8784 merge personal_gemmV3_bias_support_broadcast_aclnn_part into master 【FEATURE】A2/A3 ACLNN Addmm/Baddbmm/AddmmWeightNz 支持 broadcast bias 路由 GemmV3 Created-by: HuangKun8682 Commit-by: HuangKun8682 Merged-by: cann-robot Description: ## 描述 本 PR 适配 Addmm、Baddbmm 及 AddmmWeightNz 的 ACLNN 接口路由,使 A2/A3(DAV_2201)上的 broadcast bias 场景能够直接使用 GemmV3 完成矩阵乘、alpha/beta 缩放及 bias broadcast。 主要修改如下: ### 1. 清理 broadcast bias 路由限制 - 删除 CheckAddmmTensorShapeNeedBroadcast。 - 简化 CheckCubeMathTypeForAddMm,仅保留 cubeMathType 取值及平台能力校验。 - 不再因为 bias shape 与矩阵乘输出 shape 不一致而拒绝 cubeMathType=USE_FP32_ADD。 - 路由限制在 A2/A3(DAV_2201),不改变其他架构的执行逻辑。 ### 2. 调整 Addmm 和 Baddbmm 的 GemmV3 路由 - cubeMathType=USE_FP32_ADD 时,允许 broadcast bias 进入 GemmV3。 - 区分“接口计算需要 FP32 中间结果”和“GemmV3 实际输出 FP32”,避免 FP16/BF16 输出错误使用 16in32out GemmV3。 ### 3. 调整 AddmmWeightNz 的 GemmV3 路由 - 取消 A2/A3 上将 cubeMathType=USE_FP32_ADD 转换为 cubeMathType=KEEP_DTYPE 的逻辑。 - cubeMathType=USE_FP32_ADD 时,支持 AddmmWeightNz 直接路由至 GemmV3。 - 支持 broadcast bias 与 ND×NZ 矩阵输入组合进入 GemmV3。 - 支持 FP16/BF16 输入及对应的低精度输出。 - 保留原有 16in32out 场景,支持 GemmV3 输出 FP32。 ### 4. 补齐 GemmV3 OpDef 类型声明 补充以下四组类型和格式组合: | A 输入 | B 输入 | Bias 输入 | 输出 | |---|---|---|---| | FP16 ND | FP16 ND | FP16 ND | FP32 ND | | BF16 ND | BF16 ND | BF16 ND | FP32 ND | | FP16 ND | FP16 NZ | FP16 ND | FP16 ND | | BF16 ND | BF16 NZ | BF16 ND | BF16 ND | 前两组用于 ND×ND 低精度 bias 的 16in32out 场景,后两组用于 AddmmWeightNz 在 cubeMathType=USE_FP32_ADD 下保持低精度输出的场景。 ### 5. 补齐 A2/A3 GemmV3 binary 配置 在以下配置中补充 ND×NZ 同类型输出 Kernel: - ascend910b/gemm_v3_binary.json - ascend910_93/gemm_v3_binary.json 新增配置: | Binary | 输入输出组合 | |---|---| | GemmV3_ND_NZ_ND_ND_FP16_FP16_FP16_FP16 | FP16 ND×NZ、FP16 bias、FP16 输出 | | GemmV3_ND_NZ_ND_ND_BF16_BF16_BF16_BF16 | BF16 ND×NZ、BF16 bias、BF16 输出 | 未修改 ascend950 和 ascend350 的 binary 配置。 ### 6. 支持的 bias broadcast shape #### Addmm/AddmmWeightNz 输出 shape 为 [M,N]: | Broadcast 类型 | Bias shape | |---|---| | N broadcast | [N]、[1,N] | | M broadcast | [M,1] | | Scalar broadcast | [1]、[1,1] | | 非 broadcast | [M,N] | #### Baddbmm 输出 shape 为 [B,M,N]: | Broadcast 类型 | Bias shape | |---|---| | N broadcast | [N]、[1,N]、[1,1,N] | | M broadcast | [M,1]、[1,M,1] | | Scalar broadcast | [1]、[1,1]、[1,1,1] | | Per-batch scalar | [B,1,1] | | 非 broadcast | [B,M,N] | ## 关联的Issue Issue [#4844](https://gitcode.com/cann/ops-nn/issues/4844) ## 测试 ### 1. ATK 精度泛化用例 在 A2/A3 环境执行2000条 ATK L0 双标杆精度泛化用例: | 接口 | 用例数 | Bias shape 分布 | |---|---:|---| | Addmm | 400 | N:134,M:67,scalar:133,full:66 | | InplaceAddmm | 400 | full:400 | | AddmmWeightNz | 400 | N:134,M:67,scalar:133,full:66 | | Baddbmm | 400 | N:135,M:89,scalar:176 | | InplaceBaddbmm | 400 | full:400 | 精度用例覆盖: - FP16/BF16 矩阵输入; - FP16、BF16及FP32输出; - ND×ND 和 ND×NZ; - cubeMathType=USE_FP32_ADD; - FP16/BF16 16in32out; - transA/transB 四种组合; - N、M、scalar 和 per-batch scalar broadcast; - 对齐与非对齐 shape; - 大小 shape 及尾块场景。 双标杆精度首轮结果为 1998/2000 通过,两条失败用例定点复检均通过,未发现稳定复现的精度问题。 ### 2. 性能验证 执行100条三通路性能对比用例: | 分类 | 用例数 | |---|---:| | Addmm | 50 | | Baddbmm | 50 | | N broadcast | 33 | | M broadcast | 33 | | Scalar broadcast | 34 | 对比以下三条通路: 1. GemmV3 + broadcast bias; 2. GemmV3 + 等价 full-shape bias; 3. ATB PPMatMul + Muls + Axpy。 GemmV3 与 PPMatMul 使用相同的原始 shape、物理布局、transpose 和 contiguous 条件。 性能结果: - 小算子链/GemmV3 耗时比中位数:2.2852; - 比值范围:1.1051~2.8523; - GemmV3 broadcast 不慢于小算子拼接:100/100; - 三条通路输出一致性检查:100/100通过。 ## 文档更新 更新以下 ACLNN 接口文档: - aclnnAddmm&aclnnInplaceAddmm.md - aclnnBaddbmm&aclnnInplaceBaddbmm.md - aclnnAddmmWeightNz.md 文档更新内容包括: - A2/A3 上 cubeMathType=USE_FP32_ADD 对 broadcast bias 的支持说明; - AddmmWeightNz 对 cubeMathType=USE_FP32_ADD 的支持说明; - AddmmWeightNz 支持的 [M,1]、[1,1] 等 broadcast shape; - FP16/BF16 输入、低精度输出和 FP32 中间计算行为说明。 - GemmV3 broadcast bias 的 Kernel 设计和精度、性能验证方法由对应设计文档及测试 README 说明。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8784 | 20 天前 | |
8月ops-nn仓sc清理 Co-authored-by: wangwei_mayday<wangwei1183@huawei.com> # message auto-generated for no-merge-commit merge: !8855 merge master into master 8月ops-nn仓sc清理 Created-by: wangwei_mayday Commit-by: wangwei_mayday Merged-by: cann-robot Description: ## 描述 清理当前matmul算子库中存在一些代码规范问题,主要集中在以下几个文件: ops-nn/matmul/matmul_emu_split_weight/op_kernel/matmul_emu_split_weight_tiling_data.h 存在未引用的头文件 ops-nn/matmul/matmul_emu_split_weight/op_host/matmul_emu_split_weight_def.cpp 22行存在魔鬼数字 ops-nn/matmul/matmul_emu_split_weight/op_api/aclnn_matmul_emu_split_weight.h .h文件中函数aclnnMatmulEmuSplitWeightGetWorkspaceSize的参数命名与对应cpp文件中的函数参数命名存在差异 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->关联Issue #4842 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8855 | 18 天前 | |
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 | 18 天前 | |
8月ops-nn仓sc清理 Co-authored-by: wangwei_mayday<wangwei1183@huawei.com> # message auto-generated for no-merge-commit merge: !8855 merge master into master 8月ops-nn仓sc清理 Created-by: wangwei_mayday Commit-by: wangwei_mayday Merged-by: cann-robot Description: ## 描述 清理当前matmul算子库中存在一些代码规范问题,主要集中在以下几个文件: ops-nn/matmul/matmul_emu_split_weight/op_kernel/matmul_emu_split_weight_tiling_data.h 存在未引用的头文件 ops-nn/matmul/matmul_emu_split_weight/op_host/matmul_emu_split_weight_def.cpp 22行存在魔鬼数字 ops-nn/matmul/matmul_emu_split_weight/op_api/aclnn_matmul_emu_split_weight.h .h文件中函数aclnnMatmulEmuSplitWeightGetWorkspaceSize的参数命名与对应cpp文件中的函数参数命名存在差异 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000-->关联Issue #4842 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ x ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8855 | 18 天前 | |
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 | 29 天前 | |
修复matmul ut 编译失败的问题 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8409 merge master into master 修复matmul ut 编译失败的问题 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 1. 删除冗余的测试代码 2. build.sh build ut 增加-k,即使ut失败,任可以继续构建,最后报错 ## 关联的Issue [#4734](https://gitcode.com/cann/ops-nn/issues/4734) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8409 | 27 天前 | |
refactor: EXEC_OPAPI_CMD 迁移为 CANN_OPS_OPB_SYN_EXEC_ACLNN 并升级 opbase Co-authored-by: yuyuanfeng<yuyuanfeng1@huawei.com> # message auto-generated for no-merge-commit merge: !8648 merge master into master refactor: EXEC_OPAPI_CMD 迁移为 CANN_OPS_OPB_SYN_EXEC_ACLNN 并升级 opbase Created-by: yuyuanfeng Commit-by: yuyuanfeng Merged-by: cann-robot Description: ## 描述 将 6 个 fallback 算子从旧宏 EXEC_OPAPI_CMD 迁移到 opbase 新宏 CANN_OPS_OPB_SYN_EXEC_ACLNN(显式传入 ctx 首参),并升级 opbase 依赖以引入新宏。 改动原因: - opbase 已将 EXEC_OPAPI_CMD 参数化并重命名为 CANN_OPS_OPB_SYN_EXEC_ACLNN(旧宏仅保留一行转发兼容),跟随 opbase 接口演进,显式传入 ctx。 改动方法: - 6 个算子的 op_graph fallback 实现统一改为 CANN_OPS_OPB_SYN_EXEC_ACLNN(ctx, ...):foreach_add_list、scatter_list、group_norm_silu、trans_quant_param_v2、quant_batch_matmul_inplace_add、quant_batch_matmul_v3 - cmake/third_party/opbase.cmake 中 OPBASE_TAG_ID 由 bd20a12e 升级至 40cc7bed ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4782 ## 测试 本地编译 6 个算子验证(ascend910b) ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:重构/接口迁移 ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8648 | 25 天前 | |
修复 matmul 相关算子的日志规范问题 Co-authored-by: yangyang016<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !8995 merge master into master 修复 matmul 相关算子的日志规范问题 Created-by: yangyang016 Commit-by: yangyang016 Merged-by: cann-robot Description: ## 描述 本 PR 统一修复 matmul 相关算子的日志规范问题: - 修复 quant_batch_matmul_v3 日志中的拼写错误: - faild 修改为 failed。 - deminsion 修改为 dimension。 - 将 quant_batch_matmul_v3/tests 中含中文字符、中英文混杂的运行时日志统一为英文。 - 删除 sparse4to2quant_matmul/op_host/op_api 中直接使用的 std::cout 调试输出,保留规范的 OP_LOGE 错误日志。 - 按仓库格式要求整理相关 C++ 文件。 本次修改仅涉及日志文本、调试输出及代码格式,不改变算子计算逻辑。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4964 ## 测试 - 扫描 quant_batch_matmul_v3,确认不存在 faild、deminsion。 - 扫描测试运行时日志,确认不存在中文字符。 - 扫描 sparse4to2quant_matmul/op_host/op_api,确认不存在直接使用的 std::cout。 - git diff --check --cached 检查通过。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8995 | 17 天前 | |
fallback file move Co-authored-by: zhangquanxin<zhangquanxin7@h-partners.com> # message auto-generated for no-merge-commit merge: !8283 merge move_fallback_file into master fallback file move Created-by: zhangquanxin Commit-by: zhangquanxin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 一、文件迁移 将两个 fallback 算子文件迁移到 ops-nn 仓库的 op_graph/ 目录下: - matmul/quant_batch_matmul_v4/op_graph/quant_batch_matmul_v4_fallback.cpp - matmul/weight_quant_batch_matmul_v2/op_graph/weight_quant_batch_matmul_v2_fallback.cpp 两个文件此前不在本仓库,迁移为纯新增(无 deletion/rename)。 ### 二、代码规范修复 将 output 空指针判断移到 GetOutputTensor 之后立即执行,符合"获取后立即校验"的防御式编程惯例 ### 三、宏替换 将 EXEC_OPAPI_CMD 替换为 CANN_OPS_OPB_SYN_EXEC_ACLNN,首参补 host_api_ctx,与仓库内其他 9 个 fallback 文件用法对齐。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue https://gitcode.com/cann/ops-nn/issues/4946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级猫眼 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8283 | 18 天前 | |
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 | 29 天前 | |
fix: torch ops cpp sources Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8489 merge torch into master fix: torch ops cpp sources Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 本次PR主要修复了 Torch 算子 C++ 源码的路径管理问题,将原本按算子类别(如 activation、matmul、norm、quant)分目录存放的 .cpp 文件统一扁平化到 csrc/ 根目录。同时简化了 OpBuilder 基类,移除 category 参数及相关路径拼接逻辑,并增强了 JIT 编译阶段的错误诊断能力和构建过程中的文件清理机制。 主要改动 OpBuilder 基类重构:移除 __init__ 中的 category 参数,resolve_source 方法简化为直接返回 csrc/{cpp_filename},不再拼接子目录;各子类 sources() 方法统一改用 self.resolve_source("xxx.cpp") 替代原有的硬编码子目录路径。 load 方法增强:新增 ninja 可用性检查,若未安装则抛出明确的 RuntimeError;JIT 编译失败时提供包含常见原因(CANN toolkit 未 source、缺少编译器、缺少 ninja)的诊断信息。 setup.py 打包逻辑适配:_non_python_files 和 _collect_op 中 .cpp 文件的收集路径从 csrc/<category>/ 调整为 csrc/;BuildPyWithOps 新增对 csrc 子目录的处理,构建时清理不属于当前选中算子的残留 .cpp 文件。 install_requires 依赖调整:移除 torch>=2.6.0 和 torch_npu,新增 ninja 作为安装依赖。 ## 关联的Issue [#4690](https://gitcode.com/cann/ops-nn/issues/4690) ## 测试 本地编译构建,查看build目录下的目录层级 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8489 | 27 天前 | |
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 | 29 天前 | |
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 | 29 天前 | |
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 | 29 天前 | |
修复 matmul 相关算子的日志规范问题 Co-authored-by: yangyang016<yangyang306@hisilicon.com> # message auto-generated for no-merge-commit merge: !8995 merge master into master 修复 matmul 相关算子的日志规范问题 Created-by: yangyang016 Commit-by: yangyang016 Merged-by: cann-robot Description: ## 描述 本 PR 统一修复 matmul 相关算子的日志规范问题: - 修复 quant_batch_matmul_v3 日志中的拼写错误: - faild 修改为 failed。 - deminsion 修改为 dimension。 - 将 quant_batch_matmul_v3/tests 中含中文字符、中英文混杂的运行时日志统一为英文。 - 删除 sparse4to2quant_matmul/op_host/op_api 中直接使用的 std::cout 调试输出,保留规范的 OP_LOGE 错误日志。 - 按仓库格式要求整理相关 C++ 文件。 本次修改仅涉及日志文本、调试输出及代码格式,不改变算子计算逻辑。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4964 ## 测试 - 扫描 quant_batch_matmul_v3,确认不存在 faild、deminsion。 - 扫描测试运行时日志,确认不存在中文字符。 - 扫描 sparse4to2quant_matmul/op_host/op_api,确认不存在直接使用的 std::cout。 - git diff --check --cached 检查通过。 ## 文档更新 不涉及。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8995 | 17 天前 | |
修复ophost ut 编译失败和执行失败的问题 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !8679 merge ziliao into master 修复ophost ut 编译失败和执行失败的问题 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 主要修复 op_host 相关单元测试的编译失败与执行失败问题。改动集中在三个测试文件:test_extend_conv_transpose_tiling.cpp 补齐了新增属性和平台信息,test_index_infershape.cpp 和 test_sparse_tensor_dense_mat_mul_infershape.cpp 则改用统一的测试辅助接口与上下文参数结构重写用例,使测试适配当前接口定义并能正常编译运行。 ## 关联的Issue [#4794](https://gitcode.com/cann/ops-nn/issues/4794) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8679 | 25 天前 | |
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 | 18 天前 | |
matmul非量化算子asc兼容性接口变更 Co-authored-by: gaozheng<gaozheng16@huawei.com> # message auto-generated for no-merge-commit merge: !8611 merge asendc_interface_rectify into master matmul非量化算子asc兼容性接口变更 Created-by: pzyy00 Commit-by: gaozheng Merged-by: cann-robot Description: ## 描述 matmul非量化算子asc兼容性接口变更 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4951 ## 测试 本地验证功能正常,冒烟测试通过 ## 文档更新 不涉及 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!8611 | 18 天前 | |
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 | 18 天前 | |
fallback file move Co-authored-by: zhangquanxin<zhangquanxin7@h-partners.com> # message auto-generated for no-merge-commit merge: !8283 merge move_fallback_file into master fallback file move Created-by: zhangquanxin Commit-by: zhangquanxin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 一、文件迁移 将两个 fallback 算子文件迁移到 ops-nn 仓库的 op_graph/ 目录下: - matmul/quant_batch_matmul_v4/op_graph/quant_batch_matmul_v4_fallback.cpp - matmul/weight_quant_batch_matmul_v2/op_graph/weight_quant_batch_matmul_v2_fallback.cpp 两个文件此前不在本仓库,迁移为纯新增(无 deletion/rename)。 ### 二、代码规范修复 将 output 空指针判断移到 GetOutputTensor 之后立即执行,符合"获取后立即校验"的防御式编程惯例 ### 三、宏替换 将 EXEC_OPAPI_CMD 替换为 CANN_OPS_OPB_SYN_EXEC_ACLNN,首参补 host_api_ctx,与仓库内其他 9 个 fallback 文件用法对齐。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue https://gitcode.com/cann/ops-nn/issues/4946 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级猫眼 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8283 | 18 天前 | |
Format update: Adjusted the license description format in all relevant files. Co-authored-by: jiangqi<jiangqi47@h-partners.com> # message auto-generated for no-merge-commit merge: !403 merge license7 into master Format update: Adjusted the license description format in all relevant files. Created-by: jiangqi2025 Commit-by: jiangqi Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!403 | 8 个月前 | |
修改torch_extension结构 Co-authored-by: liuweihuui<liuweihui3@h-partners.com> # message auto-generated for no-merge-commit merge: !8249 merge fix_torch into master 修改torch_extension结构 Created-by: liuweihui3 Commit-by: liuweihuui Merged-by: cann-robot Description: ## 描述 迁移quant_matmul_activation_quant的torch_extension到算子目录 ## 关联的Issue 关联Issue [#4561](https://gitcode.com/cann/ops-nn/issues/4561) ## 测试  ## 文档更新 更新算子torch_extension相关文档中示例脚本代码 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:规范nn仓torch要求,迁移torch相关代码到算子目录下。 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8249 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 18 天前 | ||
| 29 天前 | ||
| 18 天前 | ||
| 29 天前 | ||
| 21 天前 | ||
| 29 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 25 天前 | ||
| 18 天前 | ||
| 29 天前 | ||
| 20 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 29 天前 | ||
| 27 天前 | ||
| 25 天前 | ||
| 17 天前 | ||
| 18 天前 | ||
| 29 天前 | ||
| 27 天前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 17 天前 | ||
| 25 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 8 个月前 | ||
| 1 个月前 |