| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
产品名变更 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 | 16 天前 | |
合并aclnnAdds和aclnnInplaceAdds的资料,修改aclnnGtTensor资料中的typo Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !5402 merge master into master 合并aclnnAdds和aclnnInplaceAdds的资料,修改aclnnGtTensor资料中的typo Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 合并aclnnAdds和aclnnInplaceAdds的资料,修改aclnnGtTensor资料中的typo ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3063 https://gitcode.com/cann/ops-math/issues/3067 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> UT通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnnAdds&aclnnInplaceAdds.md aclnnGtTensor&aclnnInplaceGtTensor.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5402 | 30 天前 | |
迁移开源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 | 2 个月前 | |
feat: 算子910B~910E区间判断追加IsRegBase()并统一DAV_3510硬编码判断以兼容后续Regbase芯片 Co-authored-by: hahaha22<wangrunze20@h-partners.com> # message auto-generated for no-merge-commit merge: !5467 merge q_aclnn_version into master feat: 算子910B~910E区间判断追加IsRegBase()并统一DAV_3510硬编码判断以兼容后续Regbase芯片 Created-by: hahaha22 Commit-by: hahaha22 Merged-by: cann-robot Description: ## 描述 以 RegBase 架构(NpuArch = DAV_3510,含 Ascend950 及后续 Regbase 芯片)兼容为目标,统一两类芯片判断写法: 1. **区间判断追加**:对 13 个算子 op_api 中 GetSocVersion() >= ASCEND910B && GetSocVersion() <= ASCEND910E 区间判断追加 || IsRegBase(),使 RegBase 平台在 SocVersion 区间之外时也复用 910B 支持分支(放开 BF16 dtype 校验) 2. **硬编码统一**:将 11 个算子文件中 case NpuArch::DAV_3510: 硬编码判断改为 IsRegBase() 谓词,后续 Regbase 芯片(IsRegBase 集合扩展新 arch 值时)无需逐文件修改即可自动命中 ## 修改内容一:区间判断追加(13 个文件,15 处) | 算子 | 文件 | 修改位置 | |------|------|----------| | less | math/less/op_api/aclnn_lt_scalar.cpp | GetDtypeSupportList、GetOutDtypeSupportList(2 处) | | less | math/less/op_api/aclnn_lt_tensor.cpp | GetDtypeSupportList、GetOutDtypeSupportList(2 处) | | less_equal | math/less_equal/op_api/aclnn_le_scalar.cpp | GetOutputDtypeSupportList(1 处) | | logical_or | math/logical_or/op_api/aclnn_logical_or.cpp | CheckSocVersionIsSupportBf16(1 处) | | maximum | math/maximum/op_api/aclnn_maximum.cpp | GetDtypeSupportList(1 处) | | minimum | math/minimum/op_api/aclnn_minimum.cpp | GetDtypeSupportList(1 处) | | mul | math/mul/op_api/aclnn_mul.cpp | GetDtypeSupportList(1 处) | | not_equal | math/not_equal/op_api/aclnn_logical_xor.cpp | CheckSocVersionIsSupportBf16(1 处) | | pow | math/pow/op_api/aclnn_pow.cpp | CheckSocVersionIsSupportBf16(1 处) | | pow | math/pow/op_api/aclnn_pow_tensor_tensor.cpp | CheckSocVersionIsSupportBf16(1 处) | | signbit | math/signbit/op_api/aclnn_signbit.cpp | GetDtypeSupportList(1 处) | | sub | math/sub/op_api/sub.cpp | IsAiCoreSupport(1 处) | | equal | math/tensor_equal/op_api/aclnn_equal.cpp | CheckSocVersionGe910B(1 处) | 其中 sub.cpp、aclnn_pow_tensor_tensor.cpp、aclnn_logical_xor.cpp、aclnn_equal.cpp 补充 #include "op_api/aclnn_check.h"。 pow.cpp 的 IsAiCoreSupport、aclnn_ne_scalar.cpp、aclnn_ne_tensor.cpp:区间判断前已有 if (IsRegBase()) 提前返回分支(追加会造成死条件),经评审不修改。 ## 修改内容二:硬编码判断统一(11 个文件,13 处) ### A类:switch 双 case(DAV_3510 与 DAV_2201 同分支,8处) switch 前置 if (IsRegBase(curArch)) 返回原 DAV_3510 分支列表,删除 case NpuArch::DAV_3510: fall-through 行: - Add:math/add/op_api/add.cpp、aclnn_add.cpp - Sub:math/sub/op_api/aclnn_sub.cpp、aclnn_rsub.cpp - div:math/div/op_api/div.cpp(补 include) - floordiv:math/floor_div/op_api/floordiv.cpp(补 include) - tanhgrad:math/tanh_grad/op_api/aclnn_tanh_backward.cpp - floormod:math/floor_mod/op_api/aclnn_remainder.cpp ### B类:switch 独立 case(DAV_3510 单独返回 REGBASE 专用列表,3处) switch 前置 if (IsRegBase(curArch)) 返回 REGBASE 列表,删除独立 case 块: - mul:math/mul/op_api/mul.cpp(REGBASE_AICORE_DTYPE_SUPPORT_LIST) - equal:math/equal/op_api/aclnn_eq_tensor.cpp、aclnn_eq_scalar.cpp(REGBASE_DTYPE_SUPPORT_LIST) ## 关联的Issue - #3100 (math仓910B~910E区间判断的RegBase兼容遗留清理:isclose恒真条件bug、8个同类判断文件未覆盖IsRegBase) ## 测试 - pre-commit 检查(clang-format/codespell/OAT 等)全部通过(含对修改文件的全量格式化) - 全部修改文件 g++ -fsyntax-only 语法验证通过 - 已触发 compile 编译 - 建议测试项: 1. RegBase(DAV_3510)平台验证上述算子 BF16 输入/输出 dtype 校验与 910B 平台一致 2. Ascend950 平台回归 A/B 类算子 dtype 选择行为不变 3. 回归 910B~910E、910/1980、310/310P 平台行为不受影响 ## 文档更新 无 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ### 关联issue - [cann/ops-math#5512(报错 dtype 支持列表双层中括号修复,同改 aclnn_remainder.cpp/eq 系列)](https://gitcode.com/cann/ops-math/pull/5512) - [cann/ops-math#5519(RemainderScalarTensor Regbase 计算类型校验,同改 aclnn_remainder.cpp)](https://gitcode.com/cann/ops-math/pull/5519) - [cann/ops-nn#10101(ops-nn 侧同类 Regbase 判断统一)](https://gitcode.com/cann/ops-nn/pull/10101) See merge request: cann/ops-math!5467 | 26 天前 | |
math仓算子代码整改 Co-authored-by: cai-chengchao<caichengchao1@h-partners.com> # message auto-generated for no-merge-commit merge: !881 merge math_op_back_1 into master math仓算子代码整改 Created-by: cai-chengchao Commit-by: cai-chengchao Merged-by: cann-robot Description: ## 描述 math仓算子代码整改 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!881 | 8 个月前 | |
concat/pad/slice等算子支持新平台 Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !5184 merge master into master concat/pad/slice等算子支持新平台 Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子支持新平台 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2992 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5184 | 1 个月前 | |
perf: 合并 op_kernel 的 CMakeList 到算子根目录 Co-authored-by: zhanw_coding<zhanwang@huawei.com> # message auto-generated for no-merge-commit merge: !3446 merge ft-cmake into master perf: 合并 op_kernel 的 CMakeList 到算子根目录 Created-by: zhanw_coding Commit-by: zhanw_coding Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> perf: 合并 op_kernel 的 CMakeList 到算子根目录 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/2064 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:编译工程优化 See merge request: cann/ops-math!3446 | 3 个月前 | |
常量折叠和infershape整改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4582 merge master into master 常量折叠和infershape整改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: ## 描述 本 PR 为 6 个 AICPU 算子(add、round、search_sorted、select_v2、square、squared_difference)使能 GE 图编译期常量折叠,并对 search_sorted、select_v2 进行 infershape/OpDef 整改。 ### 变更内容 **1. 常量折叠使能(6 算子)** | 算子 | CMakeLists | kernel 注册 | |------|-----------|-------------| | add | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | round | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | search_sorted | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | select_v2 | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | square | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | | squared_difference | 增加 HOSTCPU TRUE | REGISTER_CPU_KERNEL → OPS_MATH_REGISTER_CPU_KERNELV2 | - 各 kernel 增加 #include "aicpu/math_aicpu_register.h"; - CMakeLists 增加 HOSTCPU TRUE,将算子编入 host 侧折叠 so(libopconstant_folding_math.so)。 **2. infershape / OpDef 整改** - **search_sorted**:新增 op_host/search_sorted_infershape.cpp,实现 InferShape4SearchSorted,输出 shape 取 values(input1)的 shape; - **select_v2**:新增 op_kernel_aicpu/select_v2_aicpu_def.cpp(基于 OpDef 注册输入输出数据类型),删除旧 select_v2.json(JSON 配置方式),统一为 OpDef 注册链路。 ## 关联的Issue #2847 ## 测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置与编译,验证 6 个算子 CMakeLists HOSTCPU TRUE 配置变更正确; - 确认 libopconstant_folding_math.so 中已编入上述 6 个算子的 host 侧 kernel。 2. **常量折叠验证** - 输入为常量时,验证算子可在图编译期被折叠求值(host 侧执行),运行期不再下发 device kernel; - 输入为非常量时,验证 device 侧执行逻辑与折叠前保持一致。 3. **InferShape 验证(search_sorted)** - 验证 search_sorted 输出 shape 与 values 输入 shape 一致; - 覆盖多维度、边界 shape 场景。 4. **算子注册/加载验证(select_v2)** - 验证 select_v2 基于 OpDef 注册后接口可正确加载与调用; - 覆盖全数据类型(COMPLEX128/COMPLEX64/DOUBLE/FLOAT/FLOAT16/INT16/INT32/INT64/INT8/UINT16/UINT32/UINT64/UINT8/BOOL)。 5. **算子泛化** - 对 6 个算子执行二级冒烟与泛化用例,确认功能正确性不受影响。 ## 文档更新 本 PR 不涉及 README/aclnn 接口文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4582 | 1 个月前 | |
add aclnn golden Co-authored-by: gcw_CRjbEjwl<fengdaoyong@h-partners.com> # message auto-generated for no-merge-commit merge: !4593 merge 20260812 into master add aclnn golden Created-by: gcw_CRjbEjwl Commit-by: gcw_CRjbEjwl Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 算子增加aclnn的golden注册函数,由冒烟流水调用,跑新版ttk用例。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> 不涉及 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地完成验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述: See merge request: cann/ops-math!4593 | 1 个月前 | |
abs等20个算子新增ascend350平台支持 Co-authored-by: ASCEND222<dongfei16@h-partners.com> # message auto-generated for no-merge-commit merge: !5322 merge master into master abs等20个算子新增ascend350平台支持 Created-by: ASCEND222 Commit-by: ASCEND222 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> abs等20个算子新增ascend350平台支持 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> https://gitcode.com/cann/ops-math/issues/3028 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!5322 | 1 个月前 | |
产品名变更 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 | 16 天前 |
Add
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3系列产品 | √ |
| Atlas A2系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | √ |
功能说明
- 算子功能:对输入完成相加操作。
- 计算公式:
y=x1+x2y = x_1 + x_2 y=x1+x2
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 公式中的输入张量x_1 | BOOL, INT8, INT16, INT32, INT64, UINT8, FLOAT64, FLOAT16, BFLOAT16, FLOAT32, COMPLEX128, COMPLEX64 | ND |
| x2 | 输入 | 公式中的输入张量x2 | 同x1 | ND |
| y | 输出 | 公式中的输出张量y | 同x1 | ND |
约束说明
- 不支持 STRING 数据类型。算子IR(add_proto.h)中注册 DT_STRING 仅为兼容 TensorFlow Add 算子,图模式(GEIR)调用通路虽可通过类型推断,但无对应kernel实现,运行时会失败。
- COMPLEX32 仅 Ascend 950 内核实现支持,aclnnAdd / aclnnInplaceAdd 接口及图模式通路均不支持,请使用 COMPLEX64 / COMPLEX128。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_add | 通过aclnnAdd和aclnnInplaceAdd接口方式调用Add算子 |
| 图模式调用 | test_geir_add | 通过算子IR构图方式调用Add算子 |