| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 4 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 4 天前 | |
refactor: 规范化 math仓部分算子代码格式 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6203 merge ccc_1010 into master refactor: 规范化 math仓部分算子代码格式 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次改动对 math/ 目录下 9 个算子(Equal、FloorDiv、Greater、GreaterEqual、Less、LessEqual、Maximum、Minimum、NotEqual)进行代码格式规范化,不涉及任何功能变更。 ### 改动原因 统一代码风格,符合 clang-format 规范,提升可读性与可维护性。 ### 改动方法 1. 按 clang-format 规范统一缩进、换行与对齐; 2. 补充缺失的文件末尾换行符; 3. 清理尾随空格与多余空行; 4. 修复配置文件注释拼写错误(build-in → built-in); 5. 统一 Python 测试脚本 docstring 风格(''' → """)。 ## 关联的Issue - #3467 ## 测试 本次改动仅涉及代码格式调整,无功能变更,不涉及二级冒烟、算子泛化等验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式规范化(重构) See merge request: cann/ops-math!6203 | 8 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 4 天前 | |
feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5904 merge feat/infer-datatype-migration into master feat(graph): 补齐26个算子InferDataType交付件(op_graph/*_graph_infer.cpp) Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 按 graph_develop_guide.md 图模式交付件要求,为 26 个算子补齐 InferDataType 交付件 op_graph/<op>_graph_infer.cpp(IMPL_OP(Op).InferDataType(f) 注册),dtype 推导规则迁移自 canndev v1.0 旧式 IMPLEMT_COMMON_INFERFUNC 的类型推导语义: - **透传类(out=in0,19个)**:Addcdiv/Addcmul/Axpy/BiasAdd/BitwiseAnd/BitwiseOr/BitwiseXor/SquaredDifference/Div/DivNoNan/FloorDiv/FloorMod/Lerp/Maximum/Minimum/Mod/Muls/Sub/ClipByValue,复用仓内共享模板 ops::InferDataTypeOutputSameAsInput(truncate_mod/invert 同款); - **比较类输出 DT_BOOL(3个)**:GreaterEqual/LessEqual/LogicalAnd(对齐 logical_or/not_equal 现有写法); - **非0索引锚定(out=in1,2个)**:Select/SelectV2(v1.0 以 x1/then 为 dtype 基准,输入0 是 condition); - **Promote 提升(2个)**:Mul/TanhGrad,与 add_graph_infer 既有实现完全一致的写法(同款 33×33 提升表,对齐部署包 opcommon::PromoteType);非法组合(提升结果 DT_UNDEFINED)不做后置校验,由 tiling 侧 dtype 组合查表兜底,行为与 add 相同。 InferDataType 仅做纯推导,不增加输入 dtype 一致性校验:混合 dtype 组合沿用既有防线,由 tiling 侧 dtype 组合查表(arch35 DTYPE_MAP、CheckDtype 等)在编译期拦截,与仓内 add/axpy/sub 等存量算子行为一致。 CMake 无需改动(构建宏 GLOB_RECURSE op_graph/*.cpp 自动收编)。 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3646 ## 测试 1. 语法检查:26 个新文件 g++ -fsyntax-only 全部通过; 2. 构建:bash build.sh --opgraph -j16 全量构建通过,26 个新 .o 均进入 graph_plugin_math_obj 并链接入 libopgraph_math.so(2026-10-13 校验回退后重新全量构建通过); 3. 行为验证:按 KernelRunContext ABI 构造 mock InferDataTypeContext 直接调用注册函数,26 算子覆盖透传(F16/BF16,含混合 dtype 取 in0)、BOOL、in1 锚定、Promote 组合及 Mul 提升表边界(输出 DT_UNDEFINED,行为与 add 一致),全部通过(2026-10-13 回退后全量重跑)。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5904 | 4 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 7 天前 | |
fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6328 merge code_check_1013 into master fix: 修复比较类算子示例资源泄漏、文档错误与代码格式问题 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本 PR 针对 equal、greater、greater_equal、less、less_equal、maximum、minimum、not_equal 共 8 个比较类算子,修复代码检视(code check)发现的问题,具体包括: 1. 修复示例代码资源管理缺陷:examples/*.cpp 改用 RAII(std::unique_ptr + 自定义删除器)统一管理 aclrtStream、device 侧内存、aclTensor、aclScalar 等资源,避免异常路径下资源泄漏。 2. 修复头文件复制粘贴错误:maximum_struct.h 中 tiling key 误写为 Minimum,修正为 Maximum;greater_proto.h 中精度约束公式 (x2 - x1) 修正为 (x1 - x2)。 3. 修复文档注释错误:aclnn_eq_tensor.h 中 workspaceSize 描述引用错误接口名 aclnnInplaceAddGetWorkspaceSize,修正为 aclnnInplaceEqTensorGetWorkspaceSize。 4. 修复文档描述问题:修正 README 与 docs 中失效链接、参数名(self → tensors)、错误码行数、数据类型表格填充、章节标题等。 5. 修复测试用例数据:less 算子 ST 用例 ttk_kernel_less_st.csv 中 uint64 infnan 用例数据类型由 uint64 修正为 float32。 6. 规范代码格式:清理行尾空格、规范函数签名换行、补齐文件结尾换行符等。 ## 关联的Issue - #3619 ## 测试 本次变更主要为示例代码、头文件注释、文档与 ST 测试数据的修正,不涉及算子 kernel 计算逻辑变更。 ## 文档更新 更新了 equal/greater/greater_equal/less/less_equal/not_equal 的 README.md,以及 equal/less/maximum/minimum/not_equal 的 docs/*.md。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6328 | 4 天前 | |
refactor: 规范化 math仓部分算子代码格式 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !6203 merge ccc_1010 into master refactor: 规范化 math仓部分算子代码格式 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 本次改动对 math/ 目录下 9 个算子(Equal、FloorDiv、Greater、GreaterEqual、Less、LessEqual、Maximum、Minimum、NotEqual)进行代码格式规范化,不涉及任何功能变更。 ### 改动原因 统一代码风格,符合 clang-format 规范,提升可读性与可维护性。 ### 改动方法 1. 按 clang-format 规范统一缩进、换行与对齐; 2. 补充缺失的文件末尾换行符; 3. 清理尾随空格与多余空行; 4. 修复配置文件注释拼写错误(build-in → built-in); 5. 统一 Python 测试脚本 docstring 风格(''' → """)。 ## 关联的Issue - #3467 ## 测试 本次改动仅涉及代码格式调整,无功能变更,不涉及二级冒烟、算子泛化等验证。 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式规范化(重构) See merge request: cann/ops-math!6203 | 8 天前 | |
feat(ascend960): 39个算子使能ascend960 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !6137 merge feat/ascend960-enable into master feat(ascend960): 39个算子使能ascend960 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 为 ascend960 新增芯片形态适配算子,覆盖 math 与 conversion 目录下共 39 个算子,无 kernel 代码改动,复用现有 arch35 kernel 与 tiling。 ### 改动原因 ascend960 为新增芯片形态,现有算子需补齐平台注册、编译单元与二进制配置后,才能在新平台上被算子信息库发现、编译并选择正确的 kernel 二进制。 ### 改动方法 1. **算子信息库注册**( *_def.cpp):新增 ascend960 平台注册(AICore().AddConfig) 2. **编译配置**(CMakeLists.txt):在 SUPPORT_COMPUTE_UNIT / COMPUTE_UNITS 中追加 ascend960,并在 SUPPORT_TILING_DIR 中追加对应的 arch35(tiling 目录沿用 arch35);Add / ClipByValue / ClipByValueV2 的编译选项并入既有 add_kernel_sources 块(选项与 ascend950 / ascend350 既有块一致) 3. **二进制配置**:为每个算子新增 ascend960 二进制配置目录,包含 <op>_binary.json 与 <op>_simplified_key.ini,内容沿用 ascend950 既有配置 4. **中央注册表**(scripts/kernel/binary_config/ascendc_config.json):33 个既有条目补齐 ascend960 编译选项,Mod 条目同步补齐(平台注册与编译单元主线已就绪) 5. **注册口径**:Signbit / Add / Ger / Gcd / BitwiseXor 不在中央注册表新增 ascend960 条目(Add 编译选项已迁移至 CMake 管理,其余沿主线现状,主线 ascend950 亦无对应条目) ### 算子清单(共 39 个) - math 目录 36 个:Add、Sub、Mul、Muls、Div、DivNoNan、RealDiv、FloorDiv、FloorMod、BitwiseAnd、BitwiseOr、BitwiseXor、Equal、NotEqual、Less、LessEqual、Greater、GreaterEqual、LogicalAnd、LogicalOr、Select、SelectV2、Maximum、Minimum、Pow、Lerp、BiasAdd、Axpy、AxpyV2、Addcmul、Addcdiv、Ger、Gcd、Signbit、TanhGrad、SquaredDifference、Mod - conversion 目录 2 个:ClipByValue、ClipByValueV2 ## 关联的Issue - https://gitcode.com/cann/ops-math/issues/3597 ## 测试 - pre-commit 全部 hook 通过(clang-format / OAT / codespell 等) - CI compile 门禁通过(18 个 Compile Job) - ascend960 内核编译与上板验证待具备 ascend960 环境后执行,合入前补充 ## 文档更新 无(仅平台适配,不改变算子功能与约束,不涉及 README 更新) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6137 | 7 天前 | |
产品名变更 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 个月前 |
Maximum
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | √ |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:返回两个输入张量中的最大值组成的新张量。
-
计算公式:
out[i]=max(x1[i],x2[i])out[i] = max(x_1[i], x_2[i]) out[i]=max(x1[i],x2[i])
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 待进行Maximum计算的入参,公式中的x1。 | FLOAT、FLOAT16、BFLOAT16、DOUBLE、INT8、UINT8、INT32、INT64 | ND |
| x2 | 输入 | 待进行Maximum计算的入参,公式中的x2。 | FLOAT、FLOAT16、BFLOAT16、DOUBLE、INT8、UINT8、INT32、INT64 | ND |
| y | 输出 | tensor逐元素取最大值结果,公式中的out。 | FLOAT、FLOAT16、BFLOAT16、DOUBLE、INT8、UINT8、INT32、INT64 | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_maximum | 通过aclnnMaximum接口方式调用aclnnMaximum算子。 |
| aclnn调用 | test_aclnn_maxn | 通过aclnnMaxN接口方式调用aclnnMaxN算子。 |