| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 | |
feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Co-authored-by: raoliang_sac<raoliang4@huawei.com> # message auto-generated for no-merge-commit merge: !4362 merge add-v2-arch35-no-aclnn into master feat: AddV2 算子 Ascend950 arch35 regbase 实现(无 aclnn 接口) Created-by: raoliang_sac Commit-by: raoliang_sac Merged-by: cann-robot Description: ## 描述 在 math/add_v2/ 新建 AddV2 算子,实现 Ascend950 (arch35) regbase 版本的逐元素加法。基于 atvoss broadcast DAG 框架,支持 11 种 dtype(含 4 种混合精度组合),共 15 个预编译 binary。算子仅支持图模式调用,不提供 aclnn 接口。 ### 改动原因 ops-math 仓缺少 AddV2 算子的 Ascend950 (arch35) 实现。本 PR 在 math/add_v2/ 新建算子,仅包含 950 arch35 regbase 实现。 ### 改动方法 - op_host: def(单一 950 配置)、infershape(broadcast)、arch35 tiling(BroadcastBaseTiling 框架分发) - op_kernel/arch35: kernel entry(BroadcastSch)、dag(4 种 Compute: AddWithoutCast/AddWithCast/AddMixDtype/AddBool)、struct(tiling key 声明) - op_graph: proto.h(REG_OP(AddV2))、graph_infer(类型提升推导 PromoteType 查表) - tests/assets/golden.py: kernel 模式 golden(bool 语义 logical_or) - CMakeLists.txt: ACLNNTYPE 配置为 aclnn_exclude,不生成 aclnn 接口 - tiling 校验使用 OP_LOGE_FOR_INVALID_* 结构化宏 ### 产品支持情况 - Ascend 950PR/950DT: 本 PR 实现 - A2/A3/推理/训练系列: 通过 canndev Add 算子复用支持(tf_plugin 将 AddV2 映射到 Add) ## 关联的Issue - #2379 ## 测试 - TTK kernel 990/990 precision PASS - 三方性能 200/200 全部达标 - ophost UT 21/21 PASS(覆盖全部 11 种 dtype) - run_example graph 模式 PASS ## 文档更新 - README.md: 算子对外资料(产品支持情况、参数说明、约束说明、调用说明) ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!4362 | 1 个月前 |
AddV2
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:对两个输入张量
x1和x2执行逐元素加法,兼容TensorFlow AddV2语义,支持广播(broadcast)。 -
计算公式:
yi=x1i+x2iy_i = x1_i + x2_i yi=x1i+x2i
- 广播示例:
x1 shape (3, 4), x2 shape (1, 4) -> y shape (3, 4)
x1 shape (3, 1), x2 shape (1, 4) -> y shape (3, 4)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 加法运算的第一个输入张量,公式中的x1_i。 | BFLOAT16、FLOAT16、FLOAT、INT32、INT16、UINT8、INT8、INT64、COMPLEX64 | ND |
| x2 | 输入 | 加法运算的第二个输入张量,公式中的x2_i。 | BFLOAT16、FLOAT16、FLOAT、INT32、INT16、UINT8、INT8、INT64、COMPLEX64 | ND |
| y | 输出 | 加法运算的输出张量,公式中的y_i。同类型输入时输出类型与输入一致;混合精度输入时输出为类型提升后的结果。 | BFLOAT16、FLOAT16、FLOAT、INT32、INT16、UINT8、INT8、INT64、COMPLEX64 | ND |
混合精度组合(x1 dtype, x2 dtype -> y dtype):
| x1 | x2 | y |
|---|---|---|
| FLOAT16 | FLOAT | FLOAT |
| FLOAT | FLOAT16 | FLOAT |
| BFLOAT16 | FLOAT | FLOAT |
| FLOAT | BFLOAT16 | FLOAT |
约束说明
- 输入x1和x2的shape需满足广播规则。
- 输入数据类型需在支持列表内,不支持DOUBLE、COMPLEX128、BOOL、COMPLEX32。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_add_v2 | 通过算子IR构图方式调用AddV2算子。 |