| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
master翻译合入 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !6751 merge master into master master翻译合入 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 合入math仓翻译的内容 ## 关联的Issue https://gitcode.com/cann/ops-math/issues/4170 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 docs/context,aclnn等商发文档 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!6751 | 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 | 16 天前 | |
迁移开源TF插件--math Co-authored-by: yaochen<yaochen15@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge transfer-math into master 迁移开源TF插件--math Created-by: nextyale Commit-by: yaochen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:迁移TF插件 See merge request: cann/ops-math!4308 | 3 个月前 | |
fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6749 merge fix_LtScalar_1027 into master fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 背景 Issue #3913:aclnnLtScalar / aclnnInplaceLtScalar 在 self / other(原地 selfRef)传空指针时,非 RegBase(A2/A3)路径返回 ACLNN_ERR_INNER_NULLPTR(561103),与资料要求及 RegBase 路径的 ACLNN_ERR_PARAM_NULLPTR(161001) 不一致,且与同函数内 out 空指针的返回码矛盾。 ## 修改 math/less/op_api/aclnn_lt_scalar.cpp 非 RegBase 路径 aclnnLtScalarGetWorkspaceSize: - CHECK_RET(other != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR - CHECK_RET(self != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR aclnnInplaceLtScalarGetWorkspaceSize 经 const_cast 转发到同一函数,selfRef 场景自动覆盖。 ## UT 同步 同步更新 4 处 UT 空指针断言(test_lt_scalar.cpp / test_inplace_lt_scalar.cpp)为 ACLNN_ERR_PARAM_NULLPTR。 ## 验证 - A2(910B3)/ CANN 9.2.0 环境构建 opapi 库成功(bash build.sh --opapi) - 链接修改后构建的 libopapi_math.so 运行复现用例,6 场景全部符合预期: - 合法输入 -> 0(无回归) - self / other / selfRef 空指针 -> 161001 - out 空指针 -> 161001(与修改前一致) See merge request: cann/ops-math!6749 | 6 天前 | |
fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Co-authored-by: sun-yibo1<sunyibo1@hisilicon.com> # message auto-generated for no-merge-commit merge: !5815 merge fix/proto-comment-grammar into master fix(proto): 修复39个算子proto.h注释的拼写与语法错误 Created-by: sun-yibo1 Commit-by: sun-yibo1 Merged-by: cann-robot Description: ## 描述 对 39 个算子的 op_graph/*_proto.h 注释做拼写与语法修复,仅注释与格式变更,不涉及任何代码逻辑: - **拼写错误**:select_v2 condittion→condition(2处)、axpy_v2 opratioan→operation、clip_by_value 英文 dtype 列表中的全角逗号改半角 - **系统性语法(历史模板复制扩散)**:Support broadcasting→Supports broadcasting(27个文件)、A ND→An ND(33个文件97处) - **单文件语法修复 71 处(含 signbit returns→Returns、axpy should→Should 两处句首大写补漏)**:ger has→have、addcmul/addcdiv multiply→multiplies、muls An required→A required、equal (x=y)→(x1==x2)、Elementwise→Element-wise、bias_add/lerp/gcd 语序与冠词修复、aicore→AiCore、mod/floor_mod 矛盾表述统一、句首大小写与标点空格等 - 附带 pre-commit 钩子强制规范化(clang-format 重排、尾随空白、文件末尾换行),并保留各文件原有行尾风格(CRLF/LF) 涉及算子:add/sub/mul/muls/div/real_div/floor_div/div_no_nan/pow/minimum/maximum/signbit/less/less_equal/greater/greater_equal/not_equal/equal/bias_add/squared_difference/lerp/logical_and/logical_or/bitwise_or/bitwise_and/bitwise_xor/tanh_grad/axpy/axpy_v2/addcmul/addcdiv/select/select_v2/mod/floor_mod/ger/gcd/clip_by_value/clip_by_value_v2 ## 关联的Issue - #3234 - https://gitcode.com/cann/ops-math/issues/3234 ## 测试 - 纯注释变更,无功能影响 - pre-commit 钩子全部通过(clang-format / trailing-whitespace / end-of-file-fixer / codespell / OAT 合规检查) - 严格限定在上述 39 个算子文件,全仓其余算子未改动(其余算子同类问题可后续另行清理) ## 文档更新 不涉及仓内 docs/ 目录;本 PR 即为 proto.h 注释(算子原型文档源)的修正 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5815 | 11 天前 | |
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 | 19 天前 | |
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 | 20 天前 | |
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 | 20 天前 | |
fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !6749 merge fix_LtScalar_1027 into master fix: 修复aclnnLtScalar非RegBase路径空指针错误码 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 背景 Issue #3913:aclnnLtScalar / aclnnInplaceLtScalar 在 self / other(原地 selfRef)传空指针时,非 RegBase(A2/A3)路径返回 ACLNN_ERR_INNER_NULLPTR(561103),与资料要求及 RegBase 路径的 ACLNN_ERR_PARAM_NULLPTR(161001) 不一致,且与同函数内 out 空指针的返回码矛盾。 ## 修改 math/less/op_api/aclnn_lt_scalar.cpp 非 RegBase 路径 aclnnLtScalarGetWorkspaceSize: - CHECK_RET(other != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR - CHECK_RET(self != nullptr, ACLNN_ERR_INNER_NULLPTR) -> ACLNN_ERR_PARAM_NULLPTR aclnnInplaceLtScalarGetWorkspaceSize 经 const_cast 转发到同一函数,selfRef 场景自动覆盖。 ## UT 同步 同步更新 4 处 UT 空指针断言(test_lt_scalar.cpp / test_inplace_lt_scalar.cpp)为 ACLNN_ERR_PARAM_NULLPTR。 ## 验证 - A2(910B3)/ CANN 9.2.0 环境构建 opapi 库成功(bash build.sh --opapi) - 链接修改后构建的 libopapi_math.so 运行复现用例,6 场景全部符合预期: - 合法输入 -> 0(无回归) - self / other / selfRef 空指针 -> 161001 - out 空指针 -> 161001(与修改前一致) See merge request: cann/ops-math!6749 | 6 天前 | |
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 | 19 天前 | |
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 | 16 天前 |
Less
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | √ |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:判断输入self中的每个元素是否小于输入other的值,返回一个Bool类型的Tensor。
-
计算公式:
yi=(x1i<x2i)?[True]:[False]y_i = (x1_i < x2_i) ? [True] : [False] yi=(x1i<x2i)?[True]:[False]
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 公式中的输入张量x1。 | DOUBLE、FLOAT、FLOAT16、BFLOAT16、INT32、UINT32、INT64、UINT64、INT16、UINT16、INT8、UINT8、BOOL | ND |
| x2 | 输入 | 公式中的输入张量x2。 | DOUBLE、FLOAT、FLOAT16、BFLOAT16、INT32、UINT32、INT64、UINT64、INT16、UINT16、INT8、UINT8、BOOL | ND |
| y | 输出 | 公式中的输出张量y。 | BOOL | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn API | test_aclnn_lt_scalar | 通过aclnnLtScalar&aclnnInplaceLtScalar接口方式调用Less算子。 |
| GE图模式 | test_geir_less | 通过算子IR构图方式调用Less算子。 |