SuperAPI AI 工具集

external-gitcode-ascend-ascendc-operator-project-init

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:快速创建 Ascend-Kernel 算子工程,所有算子统一生成在 csrc/ops 目录下,保证后续可直接进入设计、编码、编译测试阶段。触发场景包括创建新算子、关键词 ascendc算子/新建算子/算子目录/算子初始化,以及基于 ascend-kernel 模板快速落地。

主要能力:检测当前目录或子目录是否已有 ascend-kernel 项目,不存在则复制模板;创建 csrc/ops/<op_name>/op_host 与 op_kernel 骨架,生成 CMakeLists.txt、design.md 占位、host 与 kernel 占位文件;检查目标路径避免覆盖;输出目录结构、注册变更点与构建测试命令。

使用方式:先运行 bash <skill_dir>/scripts/detect_ascend_kernel_project.sh 检测项目;需要时执行 cp -r "<skill_dir>/templates/ascend-kernel" ./ascend-kernel 并 chmod +x ./ascend-kernel/build.sh;确认算子名称(snake_case)后创建目录 mkdir -p csrc/ops/<op_name>/op_host csrc/ops/<op_name>/op_kernel。

限制与注意:算子名称只能含字母、数字和下划线;不得覆盖已有目录;必须创建 op_host 与 op_kernel;需手动更新 csrc/ops.h、csrc/register.cpp、csrc/CMakeLists.txt 三处;EXEC_KERNEL_CMD 参数须为左值;新算子须走 AscendC 路径,禁止 ACLNN 实现路径;若模板存在同名 ACLNN 封装需移除。测试基线建议以 PyTorch 参考实现为准,CPU 不支持的 dtype 需转 float32 对比。