| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(cmake): prebed include/aicpu path in Findaicpu.cmake Co-authored-by: liu-wei<lovline.liuwei@huawei.com> # message auto-generated for no-merge-commit merge: !9958 merge feat/prebed-include-aicpu-path into master feat(cmake): prebed include/aicpu path in Findaicpu.cmake Created-by: liu-wei Commit-by: liu-wei Merged-by: cann-robot Description: ## 描述 在 Findaicpu.cmake 中为已安装依赖包构建场景补充 include/aicpu 头文件搜索路径,预埋后续opbase中pkg_inc/aicpu头文件给include/aicpu/路径切换平稳过渡。 ### 变更 cmake if(BUILD_WITH_INSTALLED_DEPENDENCY_CANN_PKG) set(AICPU_INC_DIRS ... ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/experiment/datagw/aicpu/common ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc ${ASCEND_DIR}/${SYSTEM_PREFIX}/pkg_inc/aicpu ${ASCEND_DIR}/${SYSTEM_PREFIX}/include/aicpu ← 新增 ) ### 涉及文件 | 文件 | 变更 | 说明 | |------|------|------| | cmake/modules/Findaicpu.cmake | +1 | AICPU_INC_DIRS 追加 include/aicpu 路径 | ## 关联的Issue include path增加一个路径,逻辑简单,不用创建issue了。 ## 测试 相关用例测试通过。 ## 文档更新 NA ## 类型标签 - [ ] 🐛 Bug修复 - [x] ✨ 新特性 - [ ] ⚡ 性能优化 - [ ] ♻️ 重构 - [ ] 🧪 测试 - [x] 📦 构建/CI - [ ] 🔧 配置变更 - [ ] 📝 文档更新 - [ ] ⬆️ 依赖升级 - [ ] 🔒 安全修复 - [ ] 🧹 代码清理 - [ ] ❓ 其他,请描述: See merge request: cann/ops-nn!9958 | 14 天前 | |
fix QuantMatmulActivationQuant precision and doc bug Co-authored-by: yuechenyao_huawei<yuechenyao@h-partners.com> # message auto-generated for no-merge-commit merge: !10514 merge merge_add_fp4 into master fix QuantMatmulActivationQuant precision and doc bug Created-by: yuechenyao_huawei Commit-by: yuechenyao_huawei Merged-by: cann-robot Description: ## 描述 ### 1 精度修复(op_api) - op_api/quant_matmul_activation_quant.cpp:95:向 launcher 传入 dstTypeMax 属性时,由原样传递改为 static_cast<float>(dstTypeMax),消除整型转浮点过程中的精度问题。 ### 2 文档修复(quant_matmul_activation_quant 三份 API 文档) 1. **x1Scale 维度约束修正**(ND/NZ 两份 aclnn 文档): - x1Scale 在 FLOAT8_E8M0 数据类型下的 shape 维度由 1-8 更正为 3-7。 2. **MX 全量化表 yScale shape 修正**(ND/NZ 两份 aclnn 文档): - yScale shape 由 null 更正为 (batch_max, m, ceil(n/64), 2)(4 行 MX 全量化配置同步修正)。 3. **转置机制约束补充**(三份文档): - aclnn 两份文档新增“转置状态由转置标记和stride共同决定,任改一处即可”说明(方式一:改标记+shape;方式二:stride 转置视图)及 scale 方向说明; - 新增“最后两维相等(m=k / k=n)时转置以标记为准、不按 stride 判断”的约束; - torch 文档新增“不暴露转置参数,转置只能通过 Tensor 的 stride 表达”及“相等时恒按不转置处理”说明。 ### 3 日志文案修复(op_tiling helper) - op_tiling/quant_matmul_activation_quant_helper.cpp:366-373:AnalyzeDtype 中 yScale 输出描述符为空时的错误日志,变量名 outputScale 更正为 yScale,与算子实际参数名/上下文一致。 ### 4 依赖版本更新 - cmake/third_party/ops-tensor.cmake:OPTENSOR_TAG_ID 由 781745c86312b478009742851b6cfc1967da8dda 更新为 043ac2866ea8b00e7c043b78e58a51be498cfa31。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5881 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 泛化测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10514 | 1 天前 | |
在experimental目录支持<<<>>>算子编译工程资料补充与cmake文件整改 Co-authored-by: luyakun<luyakun@h-partners.com> # message auto-generated for no-merge-commit merge: !3607 merge exp_doc into master 在experimental目录支持<<<>>>算子编译工程资料补充与cmake文件整改 Created-by: luyakun_hw Commit-by: luyakun Merged-by: cann-robot Description: ## 描述 1、补充在experimental目录支持<<<>>>算子编译工程的资料; 2、整改cmake文件遗留的检视意见 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/1899 ## 测试 根据md文档,在本地进行<<<>>>算子自定义开发与验证 ## 文档更新 新增了docs/zh/develop/torch_extension_develop_guide.md文档; 修改了docs/zh/install/quick_install.md文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3607 | 5 个月前 | |
同步工程公共代码 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1071 merge master into master 同步工程公共代码 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 归一同步工程代码,并更新license ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1071 | 7 个月前 | |
新增编译选项module_extension和noaclnn Co-authored-by: 李飞265<lifei265@h-partners.com> # message auto-generated for no-merge-commit merge: !2276 merge mdc_compile_v2 into master 新增编译选项module_extension和noaclnn Created-by: lifei265 Commit-by: 李飞265 Merged-by: cann-robot Description: ## 描述 新增编译选项module_extension,用于和模块拓展modext仓联合编译 新增编译选项noaclnn,用于控制aclnn是否编译 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2276 | 6 个月前 | |
support soc suffix Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8400 merge patch into master support soc suffix Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 支持soc指定950后缀 ophost、opapi、opgraph添加-Wno-error=deprecated-declarations 此 PR 主要实现了对 SoC 后缀的匹配支持,并优化了编译配置。build.sh 中将 SoC 参数匹配方式从严格全名匹配改为前缀匹配,新增 ascend350 支持并标注不区分大小写,同时在 assemble_cmake_args 中增加了 COMPUTE_UNIT_SHORT 的去重逻辑。cmake/dependencies.cmake 中新增 -Wno-error=deprecated-declarations 编译选项,将废弃声明相关的警告从错误降级。 主要改动 SoC 前缀匹配支持:build.sh 使用说明中将 SoC 参数从严格枚举(must only in)改为前缀匹配(supported prefixes),新增 ascend350 并标注 case-insensitive,使 --soc 参数可通过前缀灵活指定目标芯片。 COMPUTE_UNIT_SHORT 去重逻辑:assemble_cmake_args 函数中在拼接 COMPUTE_UNIT_SHORT 前增加了重复检查(if [[ ";${COMPUTE_UNIT_SHORT};" != *";${support_unit};"* ]]),防止同一计算单元被重复添加。 抑制废弃声明编译错误:cmake/dependencies.cmake 中为 OPS_NN_CXX_FLAGS 追加了 -Wno-error=deprecated-declarations,将 deprecated-declarations 警告降级为非错误,避免因依赖库中的废弃接口导致编译失败。 ## 关联的Issue [#4661](https://gitcode.com/cann/ops-nn/issues/4661) ## 测试 编译时指定--soc=ascend950,ascend950PR_9599 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8400 | 1 个月前 | |
allow hf32 config Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !10038 merge master into master allow hf32 config Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 本 PR 旨在为算子新增 HF32(高精度浮点 32 位)执行配置能力。在构建系统 cmake/func.cmake 中为 add_modules_sources 函数与 add_all_modules_sources 宏新增 ALLOW_HF32 参数(取值 enable_hi_float_32_execution / enable_float_32_execution),通过新增的 record_allow_hf32_ops 函数按 OPTYPE 去重记录允许 HF32 的算子,并在顶层 CMakeLists 的 add_category_subdirectory 之后由 gen_allow_hf32_ini 汇总生成 ops_allow_hf32_nn.ini 安装到 ops/built-in/tbe/impl_mode 目录;同时新增 install_allow_hf32_legacy_ini 将 scripts/package/legacy 下的 legacy ini 文件安装到同一目录,并以 4 个 ini 文件提供 conv/matmul 系列算子的四种 HF32 组合配置。 主要改动 - 新增 ALLOW_HF32 配置参数: 在 add_modules_sources 函数和 add_all_modules_sources 宏的 oneValueArgs 中新增 ALLOW_HF32,并将该参数从宏透传给函数,使算子模块可通过该参数声明允许 HF32 执行,取值仅支持 enable_hi_float_32_execution 或 enable_float_32_execution(非法值触发 FATAL_ERROR)。 - 新增 record_allow_hf32_ops 函数: 在 add_modules_sources 中配置了 ALLOW_HF32 时调用,以 OPTYPE=allow_hf32_value 格式记录算子并以 OPTYPE 为键去重,结果缓存到 ALLOW_HF32_NN_OPS 内部缓存变量,供后续生成 ini 文件使用。 - 新增 gen_allow_hf32_ini 与 install_allow_hf32_legacy_ini 函数: 前者汇总 ALLOW_HF32_NN_OPS 去重、排序后写入 ops_allow_hf32_nn.ini 并安装到 ops/built-in/tbe/impl_mode;后者将 scripts/package/legacy/ 目录下的 legacy ini 文件安装到同一目录;两者均在 ENABLE_CUSTOM 时跳过。 - 新增 4 个 legacy ini 配置文件: 在 scripts/package/legacy/ 下新增 allow_hf32_matmul_f_conv_f.ini、allow_hf32_matmul_f_conv_t.ini、allow_hf32_matmul_t_conv_f.ini、allow_hf32_matmul_t_conv_t.ini,分别为 Conv2D/Conv3D/DepthwiseConv2D 等卷积类算子与 MatMul/MatMulV2/BatchMatMul 等矩阵乘类算子配置 enable_float_32_execution 或 enable_hi_float_32_execution 的四种组合;其中 allow_hf32_matmul_t_conv_t.ini 额外包含 Einsum、TransposeBatchMatMul、FusedMatMul 三个算子。 ## 关联的Issue [#5877](https://gitcode.com/cann/ops-nn/issues/5877) ## 测试 编包安装:成功打包ini文件并安装。 单独卸载nn。仅卸载ops_allow_hf32_nn.ini 单独安装卸载ops-nn:成功安装并卸载,无残留。 算子配置ALLOW_HF32:成功在ini文件中配置算子。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10038 | 1 天前 | |
修复--jit包没有kernel源码无法在线编译,不符合资料的问题 Co-authored-by: 18811725231<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !9952 merge new_set into master 修复--jit包没有kernel源码无法在线编译,不符合资料的问题 Created-by: yang-di52 Commit-by: 18811725231 Merged-by: cann-robot Description: ## 描述 本 PR 主要解决 JIT 包因缺少 kernel 源码而无法在线编译、与资料描述不符的问题,核心是调整二进制产物构建与算子信息生成的触发条件:将 ENABLE_BINARY 的赋值时机前移到编译选项解析阶段,并取消 build_binary 与 ENABLE_JIT/ENABLE_CUSTOM 的耦合,改为由 ENABLE_BINARY/ENABLE_PACKAGE 驱动,从而保证相关场景下 kernel 二进制能被正确生成; ### 主要改动 * build.sh 中 ENABLE_BINARY 赋值时机前移:在 checkopts() 处理自定义算子编译选项 ops=* 时即置 ENABLE_BINARY=TRUE,删除原先位于 assemble_cmake_args() 中 ENABLE_CUSTOM == TRUE 才置位的逻辑,使二进制构建开关在更早阶段生效。 * build.sh 中 build_binary 触发条件调整:main() 内条件由「ENABLE_BINARY 或 ENABLE_CUSTOM 且 ENABLE_JIT == FALSE」改为「ENABLE_BINARY 或 ENABLE_PACKAGE」,解除了 JIT 场景下不构建二进制的限制,并纳入 ENABLE_PACKAGE 场景。 * cmake/gen_ops_info.cmake 条件收紧:gen_ops_info_and_python 中按计算单元生成算子编译信息的判断由 ENABLE_BINARY OR ENABLE_CUSTOM 改为仅 ENABLE_BINARY,使该流程只受二进制构建开关控制。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9952 | 14 天前 | |
add strip Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !2359 merge kernel into master add strip Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 为构建的包添加-s选项。 ## 关联的Issue [#1336](https://gitcode.com/cann/ops-nn/issues/1336) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2359 | 6 个月前 | |
kernel ut 增加防卡死超时,快速模式,覆盖率控制 Co-authored-by: chenqi317<chenqi317@huawei.com> # message auto-generated for no-merge-commit merge: !8187 merge master into master kernel ut 增加防卡死超时,快速模式,覆盖率控制 Created-by: chenqi317 Commit-by: chenqi317 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 提交总结:kernel ut 增加防卡死超时、快速模式、覆盖率控制 **修改背景**:Kernel UT 存在单测卡死导致整套测试挂起、运行慢(addr2line 符号化耗时)、gcov 覆盖率始终链接带来不必要开销等问题。 **修改方案**: 1. **防卡死超时**:新增 run_kernel_ut.sh,按 case 逐个执行并用 timeout 限时(默认 120s,--ut_timeout 可配),超时即标记失败并继续,避免单点卡死阻塞全流程。 2. **快速模式**:新增 --ut_mode=fast/debug。fast 模式关闭符号化(注入 fake addr2line 跳过慢解析)、改用 -g0 -O2,用于快速验证;debug 模式保留 -g 与符号化,用于开发调试。 3. **覆盖率控制**:将 ut.cmake 中 gcov 的无条件链接改为 $<$<BOOL:${ENABLE_COVERAGE}>:gcov> 条件链接,仅在开启覆盖率时引入; 4. **修复失败的kernel ut**:TensorFlow 依赖替换为md_dtypes, 修复部分block 越界,缺少SetKernelMode 设置导致核获取错误等问题 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/4606 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 通过kernel ut 测试,bash build.sh -u --opkernel --ut_mode=fast --ut_timeout=60 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!8187 | 1 个月前 | |
fix:opbuild compile tools dir Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5333 merge opbuild into master fix:opbuild compile tools dir Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 修复version.cmake删除依赖asc-tools导致的编译找不到opbuild问题。 ## 关联的Issue [#2928](https://gitcode.com/cann/ops-nn/issues/2928) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5333 | 3 个月前 | |
remove incorrect mapping Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !8298 merge pkg into master remove incorrect mapping Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 本次变更是一个 Bug 修复,移除了 cmake/package.cmake 中 pack_built_in 函数内两行不正确的 CMake 变量映射。被删除的代码试图将 CANN_VERSION_ops_nn_VERSION 和 CANN_VERSION_ops_nn_VERSION_MAJOR_MINOR 的值分别映射到带连字符的 CANN_VERSION_ops-nn_VERSION 和 CANN_VERSION_ops-nn_VERSION_MAJOR_MINOR,以适配 CPack 组件名使用连字符而 version.cmake 注册使用下划线的差异。该映射被认定为不正确,因此直接移除。 主要改动 删除 ops_nn 到 ops-nn 的版本变量映射: 在 cmake/package.cmake 的 pack_built_in 函数中,删除了 set(CANN_VERSION_ops-nn_VERSION "${CANN_VERSION_ops_nn_VERSION}") 和 set(CANN_VERSION_ops-nn_VERSION_MAJOR_MINOR "${CANN_VERSION_ops_nn_VERSION_MAJOR_MINOR}") 两行,不再进行下划线到连字符格式的版本号转换。 保留 set_cann_cpack_config(ops-nn ...) 调用不变: 该调用继续使用 ops-nn 作为组件名、ops_nn 作为 SHARE_INFO_NAME 参数,未受本次删除影响。 ## 关联的Issue [#4602](https://gitcode.com/cann/ops-nn/issues/4602) ## 测试 编译910包 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8298 | 1 个月前 | |
同步工程公共代码 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1071 merge master into master 同步工程公共代码 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 归一同步工程代码,并更新license ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1071 | 7 个月前 | |
静态库编译添加新脚本 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !7677 merge issue_fix into master 静态库编译添加新脚本 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 增加静态库合并脚本,适配分布式构建功能 ## 关联的Issue [#4345](https://gitcode.com/cann/ops-nn/issues/4345) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7677 | 1 个月前 | |
AntiquantAddMulMatMul图融合迁移 Co-authored-by: zhangquanxin<zhangquanxin7@h-partners.com> # message auto-generated for no-merge-commit merge: !9247 merge Antiquan_fusion_pass into master AntiquantAddMulMatMul图融合迁移 Created-by: zhangquanxin Commit-by: zhangquanxin Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 该 PR 新增了一个图融合 Pass AntiQuantMatMulFusionPass,用于将 AscendAntiQuant(可选跟随 Add 和/或 Mul)与 MatMul/MatMulV2/BatchMatMul/BatchMatMulV2 组成的子图,融合为单个 WeightQuantBatchMatmulV2 算子。融合后会将 int8 权重的反量化参数(scale、offset)与可选的常量 bias/scale 合并计算,减少中间张量并提升执行效率。该 Pass 仅支持特定 NPU 架构(2201、3510),并对输入形状(M≤64,K/N≥5120)、数据类型(fp16 输入输出、int8 权重)和动态 shape(暂不支持)施加了约束。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> issue https://gitcode.com/cann/ops-nn/issues/5182 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 二级冒烟 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9247 | 26 天前 | |
fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Co-authored-by: clinglai0517<laichangling@huawei.com> # message auto-generated for no-merge-commit merge: !9618 merge fix-onnx-0831 into master fix(common): 迁移 AdaCast onnx 插件解耦 protobuf,并使 common 集中目录 onnx 变更可被 CI 触发执行 framework UT Created-by: clinglai0517 Commit-by: clinglai0517 Merged-by: cann-robot Description: ## 描述 本 MR 含两部分: 1. 将 common/src/framework/ada_cast_onnx_plugin.cpp 的 ParseParamsFn 迁移到 ParseParamsByOperatorFn,从 op_src 的 attribute JSON 解析 pixel(INT),去掉 protobuf 依赖(onnx_common.h → plugin_util.h 等 proto-free 头),并补 common/tests/ut/framework/test_ada_cast_onnx_plugin.cpp 单测。 2. 补齐 ops-nn "framework UT 按算子 + op_host "中 common 集中 目录这一支的失效:改 common/.../framework 下 onnx 文件时 CI 静默跳过 (parse_changed_files.py 无 framework matcher、tests/ut/op_host 的 if(NOT ASCEND_OP_NAME) 在 --ops 下把 common framework UT 挡死)。 ## 实现说明 - scripts/util/parse_changed_files.py(改动1) 基类 match() 加 framework 短路 + OpHostUt._ut_match 正则提取算子名 ((?:^|/) 兼容相对路径),覆盖四种 onnx framework 路径:common 插件源、 common 插件 UT、算子级 UT、算子级插件源。非 framework 文件走原逻辑不变; 仅 op_host_ut 命中。顶部加 import re。 - tests/ut/op_host/CMakeLists.txt(改动2) 门槛 if(NOT ASCEND_OP_NAME) → 全量接入;--ops 仅命中 common 框架插件算子 才接入。结构上规避 ops-cv !1435 那种"非框架算子 PR 触发 framework cases_obj 零源"回归。framework static_lib 链接处本就有 $<TARGET_EXISTS:> 守卫, 非框架算子构建时链接为空,不影响他人。 - cmake/ut.cmake(改动3/5) 改动3:framework 分支按 test_<op>_onnx_plugin.cpp 文件名逐文件过滤。 改动5:add_opbase_ut_common(tiling/infershape/framework 三模块共享) 加 empty.cpp 兜底源——selective 下三个 opbase obj 目标都不存在时 add_library 无源会在 generate 阶段报错。 - scripts/util/dependency_parser.py(改动4) find_all_dependency 对不在依赖图的 framework-only 算子(ada_cast/hardmax/ size 无算子目录)由 raise RuntimeError 改为 warn+计入算子本身(无子依赖)。 否则 parse 与 build.sh --ops 依赖解析会崩、且 parse 输出 op 字段为空。 真实算子(在 all_ops)不受影响。 ## 关联的Issue Issue [#5115](https://gitcode.com/cann/ops-nn/issues/5115) ## 测试 容器(CANN 9.0.0,aarch64)端到端 CI -f 验证: - ada_cast(common 插件源)CI -f:Trigger Ut op_host_ut:ada_cast → OnnxAdaCastPluginTest 2 用例 PASSED,rc=0。 - elu(算子级插件源 activation/elu/framework/elu_onnx_plugin.cpp,扩展正则 新增覆盖)CI -f:Trigger Ut op_host_ut:elu → OnnxEluPluginTest 2 用例 PASSED,rc=0。 - relu(非框架算子、不涉及 onnx,回归)CI -f:门槛不命中 common framework, 无 No SOURCES 报错,7 用例 PASSED,rc=0(即不涉及 onnx 的 PR 不受影响)。 - ada_cast 迁移本身:protobuf-free 编译通过,硬标准 onnx_common.h/ge::onnx::/Message 零残留。 本地 git diff --check 通过;py_compile 通过。 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!9618 | 19 天前 | |
allow hf32 config Co-authored-by: 丛吉钰<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !10038 merge master into master allow hf32 config Created-by: cong-jiyu Commit-by: 丛吉钰 Merged-by: cann-robot Description: ## 描述 本 PR 旨在为算子新增 HF32(高精度浮点 32 位)执行配置能力。在构建系统 cmake/func.cmake 中为 add_modules_sources 函数与 add_all_modules_sources 宏新增 ALLOW_HF32 参数(取值 enable_hi_float_32_execution / enable_float_32_execution),通过新增的 record_allow_hf32_ops 函数按 OPTYPE 去重记录允许 HF32 的算子,并在顶层 CMakeLists 的 add_category_subdirectory 之后由 gen_allow_hf32_ini 汇总生成 ops_allow_hf32_nn.ini 安装到 ops/built-in/tbe/impl_mode 目录;同时新增 install_allow_hf32_legacy_ini 将 scripts/package/legacy 下的 legacy ini 文件安装到同一目录,并以 4 个 ini 文件提供 conv/matmul 系列算子的四种 HF32 组合配置。 主要改动 - 新增 ALLOW_HF32 配置参数: 在 add_modules_sources 函数和 add_all_modules_sources 宏的 oneValueArgs 中新增 ALLOW_HF32,并将该参数从宏透传给函数,使算子模块可通过该参数声明允许 HF32 执行,取值仅支持 enable_hi_float_32_execution 或 enable_float_32_execution(非法值触发 FATAL_ERROR)。 - 新增 record_allow_hf32_ops 函数: 在 add_modules_sources 中配置了 ALLOW_HF32 时调用,以 OPTYPE=allow_hf32_value 格式记录算子并以 OPTYPE 为键去重,结果缓存到 ALLOW_HF32_NN_OPS 内部缓存变量,供后续生成 ini 文件使用。 - 新增 gen_allow_hf32_ini 与 install_allow_hf32_legacy_ini 函数: 前者汇总 ALLOW_HF32_NN_OPS 去重、排序后写入 ops_allow_hf32_nn.ini 并安装到 ops/built-in/tbe/impl_mode;后者将 scripts/package/legacy/ 目录下的 legacy ini 文件安装到同一目录;两者均在 ENABLE_CUSTOM 时跳过。 - 新增 4 个 legacy ini 配置文件: 在 scripts/package/legacy/ 下新增 allow_hf32_matmul_f_conv_f.ini、allow_hf32_matmul_f_conv_t.ini、allow_hf32_matmul_t_conv_f.ini、allow_hf32_matmul_t_conv_t.ini,分别为 Conv2D/Conv3D/DepthwiseConv2D 等卷积类算子与 MatMul/MatMulV2/BatchMatMul 等矩阵乘类算子配置 enable_float_32_execution 或 enable_hi_float_32_execution 的四种组合;其中 allow_hf32_matmul_t_conv_t.ini 额外包含 Einsum、TransposeBatchMatMul、FusedMatMul 三个算子。 ## 关联的Issue [#5877](https://gitcode.com/cann/ops-nn/issues/5877) ## 测试 编包安装:成功打包ini文件并安装。 单独卸载nn。仅卸载ops_allow_hf32_nn.ini 单独安装卸载ops-nn:成功安装并卸载,无残留。 算子配置ALLOW_HF32:成功在ini文件中配置算子。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!10038 | 1 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 14 天前 | ||
| 1 天前 | ||
| 5 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 1 天前 | ||
| 14 天前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 1 个月前 | ||
| 26 天前 | ||
| 19 天前 | ||
| 1 天前 |