| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 2 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 2 个月前 | |
refactor: 删除废弃公共头文件,完成 math/random 算子头文件去重 Co-authored-by: tianqiguang<tianqiguang@huawei.com> # message auto-generated for no-merge-commit merge: !3000 merge math_tiling into master refactor: 删除废弃公共头文件,完成 math/random 算子头文件去重 Created-by: tianqiguang Commit-by: tianqiguang Merged-by: cann-robot Description: ## 描述 删除 4 个已废弃的公共头文件,并完成剩余 math 算子和全部 random 算子的重复头文件消除。本 PR 为此系列重构的收尾提交。 ### 改动原因 前三批 PR(#2951 conversion / #2969 math上 / #2980 math下)已完成所有算子到 base 仓头文件的迁移。原公共头文件已成为空壳转发或不再被引用,可安全删除: - tiling_base.h:已改为转发 tiling_base_class.h,可直接删除 - tiling_templates_registry.h:math 专用部分已拆分到 math_tiling_templates_registry.h - tiling_util.h / tiling_util.cpp:功能已迁移至 base 仓 tiling_base_util.h 此前几批遗漏了部分 math 算子(add_lora, atan2, histogram_v2, stft 等 10+ 个)以及 random 目录下全部算子。 ### 改动方法 1. 删除 4 个废弃文件并精简 common/CMakeLists.txt 2. 更新遗漏的 math 算子:#include + 命名空间修正 3. 更新 20+ 个 random 算子:同样的 #include + 命名空间修正 4. 更新示例(add_example, add_example_c_api)和 opgen 模板脚本 ## 关联的Issue - #1697 ## 测试 - 涉及的算子二级冒烟测试已通过 ## 文档更新 无文档变更 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构,删除废弃头文件并完成去重收尾 See merge request: cann/ops-math!3000 | 2 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 2 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 2 个月前 | |
feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Co-authored-by: songkai111<songkai16@huawei.com> # message auto-generated for no-merge-commit merge: !2708 merge master into master feat: 新增 Add 算子 C API(asc_simd)风格示例工程 Created-by: songkai111 Commit-by: songkai111 Merged-by: cann-robot Description: ## 描述 新增 Add 算子的 C API(asc_simd)风格示例工程 add_example_c_api,展示使用 C API 方式开发 AI Core 算子的完整流程,区别于传统 C++ 类方式的 AscendC API。 ### 改动原因 现有示例仅包含 C++ 类方式(AscendC API)和 AI CPU 方式的算子开发样例,缺少 C API(asc_simd)风格的示例。本 PR 补充了该开发方式的端到端示例,方便开发者参考。 ### 改动方法 1. 新增 examples/add_example_c_api/ 目录,包含完整的算子工程结构: - op_kernel/:使用 C API(asc_simd)实现加法 kernel,核心接口包括 asc_init()、asc_copy_gm2ub_sync()、asc_add_sync()、asc_copy_ub2gm_sync() - op_host/:Tiling 实现、算子定义(OpDef)、InferShape 实现 - op_graph/:图推理(InferShape/InferDataType)及 proto 定义 - examples/:aclnn 调用样例(test_aclnn_add_example_c_api.cpp) 2. 算子定义支持 ascend910b、ascend910_93、ascend950 硬件平台 3. 输入输出仅支持 FLOAT 数据类型,4 维 ND 格式 4. 更新 examples/README.md 添加新示例目录说明和样例表格条目 ## 关联的Issue - #1535 ## 测试 提供 aclnn 调用样例(test_aclnn_add_example_c_api.cpp),使用 32×4×4×4 的 FLOAT 张量进行端到端验证,计算 x1 + x2 = y 并打印结果。 ## 文档更新 - 新增 examples/add_example_c_api/README.md,说明产品支持情况、功能说明、参数说明、约束说明、调用方式和 Kernel 开发方式 - 更新 examples/README.md 添加 add_example_c_api 目录结构和样例表格 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-math!2708 | 2 个月前 |
AddExampleCApi
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
功能说明
-
算子功能:完成加法计算,kernel使用C API(asc_simd)开发方式。
-
计算公式:
y=x1+x2y = x1 + x2 y=x1+x2
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 待进行加法计算的入参,公式中的x1。 | FLOAT | ND |
| x2 | 输入 | 待进行加法计算的入参,公式中的x2。 | FLOAT | ND |
| y | 输出 | 待进行加法计算的出参,公式中的y。 | FLOAT | ND |
约束说明
输入输出仅支持4维,仅支持FLOAT数据类型。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_add_example_c_api | 参见算子调用完成算子编译和验证。 |
Kernel开发方式
本示例kernel使用C API(asc_simd)方式开发,区别于C++类方式的AscendC API。核心接口包括:
asc_init()- 初始化asc_copy_gm2ub_sync()/asc_copy_ub2gm_sync()- 数据搬运asc_add_sync()- 向量计算