摘要
算子开发过程中,模板编写繁琐、调试工具缺失、代码复用率低的问题突出。CANN 生态下的asc-devkit仓库,是一套算子开发的轻量辅助工具包,提供算子模板生成、调试日志封装、代码片段复用等功能,降低算子开发与调试成本。
一、仓库定位:算子开发的 "辅助工具箱"
asc-devkit是 CANN 生态中算子开发辅助工具包,核心解决 "算子开发流程繁琐、调试效率低" 的问题 ------ 无需手动编写重复框架代码,通过工具包快速完成算子初始化开发与调试验证。
核心能力:
- 多类型算子模板自动生成;
- 轻量调试日志封装;
- 常用代码片段复用;
- 适配 C/C++ 算子开发项目。
二、代码架构:辅助工具核心结构
plaintext
asc-devkit/
├── include/ # 接口头文件
│ └── asc_devkit.h
├── src/ # 核心实现
│ ├── op_template_gen.c # 模板生成
│ └── debug_log.c # 调试日志
├── templates/ # 算子模板
│ ├── math_op_template.c
│ └── cv_op_template.c
└── examples/ # 示例
└── op_dev_demo.c
三、核心实现:算子模板生成
接口定义(include/asc_devkit.h)
c
运行
#ifndef ASC_DEVKIT_H
#define ASC_DEVKIT_H
// 生成算子模板(math/cv类型)
int asc_devkit_gen_op_template(const char *op_type, const char *op_name);
// 打印调试日志
void asc_devkit_debug_log(const char *level, const char *msg);
#endif // ASC_DEVKIT_H
集成示例(examples/op_dev_demo.c)
c
运行
#include <stdio.h>
#include "asc_devkit.h"
int main() {
// 生成数学算子模板
asc_devkit_gen_op_template("math", "my_add");
// 调用模板生成的算子
float a[5] = {1.0,2.0,3.0,4.0,5.0};
float b[5] = {2.0,3.0,4.0,5.0,6.0};
float c[5] = {0};
my_add_op(a, b, c, 5);
asc_devkit_debug_log("info", "算子执行完成");
printf("结果:");
for (int i=0; i<5; i++) printf("%.1f ", c[i]);
return 0;
}
四、总结
asc-devkit通过辅助工具集缩短了算子开发与调试周期,让开发者聚焦核心计算逻辑,是 CANN 生态下算子开发者的实用工具。
相关链接
- CANN 组织链接:https://atomgit.com/cann
- asc-devkit 仓库链接:https://atomgit.com/cann/asc-devkit