Token导航 LogoToken导航TokenDH.com
开发执行命令github未标认证来源可访问许可证需确认审计通过

ascendc-operator-devascendc 运算符开发

Agent Skill

ascendc-operator-dev 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,248

周安装

51

GitHub Stars

12

下载量

404
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ascendc-operator-dev(ascendc 运算符开发)
来源仓库:https://github.com/ascend/agent-skills
仓库路径:skills/ascendc-operator-dev
安装命令:
npx skills add https://github.com/ascend/agent-skills --skill ascendc-operator-dev
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ascend/agent-skills --skill ascendc-operator-dev

简介

ascendc-operator-dev 编排七阶段全流程开发:初始化、设计、用例、编码测试、文档、精度与性能闭环。

  • 每个阶段必须调用对应子技能,前一阶段未通过则阻断进入下一阶段。
  • 代码生成依赖设计文档中的 Tiling 与 UB 分配,精度评估需通过 ≥30 例全面测试。
  • 编译通过后自动生成 PyTorch 风格中文接口文档,直接展示于聊天界面。
  • 性能评测须使用 msprof 对比标杆,输出可视化报告而非仅提供文件路径。

SKILL.md

AscendC 算子端到端开发编排

Skill类型:流程导向型(七阶段工作流,子技能串行编排)

本 skill 编排七个子 skill,驱动 ascend-kernel 算子从零到生产可用。

核心原则

  1. 七阶段串行:工程初始化 → 设计文档 → 用例生成 → 代码生成&测试 → 接口文档 → 精度评估 → 性能评测,严格顺序执行
  2. 子技能执行:每个阶段 MUST 调用对应子 skill,不得自行实现
  3. 阶段门控:前一阶段检查点全部通过后才进入下一阶段
  4. 设计驱动编码:代码生成依赖设计文档中的 Tiling 策略和 UB 分配表
  5. 自动化设计:无需用户预先提供设计文档,设计阶段自动生成
  6. 用例统一生成:设计完成后立即生成测试用例文档,供后续精度评估和性能评测复用
  7. 文档闭环:编译测试通过后 MUST 生成 PyTorch 风格的中文接口文档,并在聊天界面展示
  8. 精度闭环:算子必须通过 ≥30 例全面精度评估才算完成
  9. 性能闭环:算子必须通过 msprof 性能对比评测,输出性能报告
  10. 结果可视化:Phase 4/5/6/7 的结果 MUST 以 Markdown 形式直接展示在聊天界面中,不要仅输出路径

可用子 Skill 清单

Skill路径职责
ascendc-operator-project-initascendc-operator-project-init/SKILL.md检测/创建 ascend-kernel 项目,生成算子骨架目录
ascendc-operator-designascendc-operator-design/SKILL.md分析算子需求,生成设计文档(含 Tiling 策略、UB 分配表)
ascendc-operator-testcase-genascendc-operator-testcase-gen/SKILL.md根据设计文档生成统一测试用例文档,供精度评估和性能评测复用
ascendc-operator-code-genascendc-operator-code-gen/SKILL.md根据设计文档生成 op_host/op_kernel 代码、框架适配、编译测试
ascendc-operator-compile-debugascendc-operator-compile-debug/SKILL.md编译、安装 whl、生成测试文件、运行精度测试(由 code-gen 内部调用)
ascendc-operator-doc-genascendc-operator-doc-gen/SKILL.md从源码提取接口信息,生成 PyTorch 风格中文 API 文档(必选阶段)
ascendc-operator-precision-evalascendc-operator-precision-eval/SKILL.md生成 ≥30 例精度测试、运行并输出精度验证报告(必选阶段)
ascendc-operator-performance-evalascendc-operator-performance-eval/SKILL.md使用 msprof 对比工程算子与原生算子性能,输出性能评测报告(必选阶段)

工作流总览

Phase 1        Phase 2        Phase 3        Phase 4                      Phase 5        Phase 6         Phase 7
工程初始化  ──▶ 设计文档  ──▶ 用例生成  ──▶ 代码生成+框架适配+编译测试  ──▶ 接口文档  ──▶ 精度评估报告  ──▶ 性能评测报告
project-init   design         testcase-gen   code-gen → compile-debug      doc-gen        precision-eval  performance-eval

输入: 算子名称 + 功能描述                              输出: 生产可用算子 + 用例文档 + 接口文档 + 精度报告 + 性能报告

反模式清单(NEVER DO THESE)

  • ❌ 不要跳过设计阶段直接写代码
  • ❌ 不要跳过用例生成阶段,Phase 2 通过后必须执行 Phase 3(testcase-gen)
  • ❌ 不要自行实现任何算子代码,必须调用子 skill
  • ❌ 不要在代码生成之前修改框架文件(ops.h / register.cpp / CMakeLists.txt)
  • ❌ 不要手动执行编译和测试,统一由 compile-debug skill 处理
  • ❌ 不要引用不存在的 skill
  • ❌ 不要跳过检查点验证
  • ❌ 不要跳过接口文档阶段,Phase 4 通过后必须执行 Phase 5
  • ❌ 不要跳过精度评估阶段,Phase 5 通过后必须执行 Phase 6
  • ❌ 不要跳过性能评测阶段,Phase 6 通过后必须执行 Phase 7
  • ❌ 不要使用非 msprof 的计时方式作为性能结论
  • ❌ 精度评估和性能评测不要自行设计用例,必须先读取 testcase-gen 生成的用例文档

Phase 0:需求收集

目标:确认算子开发所需的最小信息集,包括开发环境和算子需求

Step 0.1:环境确认(MUST 在任何开发动作之前完成)

开发环境是所有后续阶段的前置依赖,必须首先确认

CANN 环境

自动检测流程

  1. 检查环境变量 ASCEND_HOME_PATH 是否已设置(echo $ASCEND_HOME_PATH
  2. 若已设置:直接使用,无需询问用户,将其作为 CANN_PATH
  3. 若未设置MUST 向用户询问 CANN 安装路径(如 /usr/local/Ascend/ascend-toolkit

激活方式

source ${CANN_PATH}/*/set_env.sh
在每个需要编译或运行算子的 Shell 会话中,都必须先执行此激活命令。

Conda 环境

自动检测流程

  1. 检查当前是否已激活 conda 环境(echo $CONDA_DEFAULT_ENV
  2. 若已激活(值非 base 且非空):直接使用当前环境,无需询问用户
  3. 若未激活或为 baseMUST 向用户询问要使用的 conda 环境名称

激活方式

conda activate <env_name>
在每个需要编译或运行算子的 Shell 会话中,都必须先激活 conda 环境。

环境确认检查点

  • CANN 路径已确定(自动检测或用户提供)
  • source ${CANN_PATH}/*/set_env.sh 可正常执行
  • Conda 环境已确定(自动检测或用户提供)
  • conda activate <env_name> 可正常执行

Step 0.2:算子需求收集

必须确认的信息

信息格式要求必填说明
CANN 环境路径绝对路径自动检测 $ASCEND_HOME_PATH,未设置则询问用户
Conda 环境名称字符串自动检测 $CONDA_DEFAULT_ENV,未激活则询问用户
算子名称snake_caseacosh, rms_norm, flash_attn
功能描述文本/数学公式如 "反双曲余弦 acosh(x) = ln(x + sqrt(x²-1))"

可选信息(有默认值):

信息默认值说明
支持的数据类型float16, float32可扩展 bfloat16
SoC平台ascend910b通过平台 API 自动获取

决策树

用户请求处理方式
"生成 X 算子" / "开发 X 算子"先完成环境确认(Step 0.1),再从算子名推断功能,确认后直接执行全流程
"帮我开发新算子"(无具体名称)先完成环境确认(Step 0.1),再询问算子名称和功能描述
"继续算子开发"先完成环境确认(Step 0.1),再检查已有文件判断阶段,从中断处继续

验收标准

  • CANN 环境路径已确定且可激活
  • Conda 环境名称已确定且可激活
  • 算子名称已确认(snake_case 格式)
  • 功能描述已明确(含数学公式或计算逻辑)

Phase 1:工程初始化

调用 Skillascendc-operator-project-init

执行内容

MANDATORY: 按 ascendc-operator-project-init skill 流程执行:
1. 检测 ascend-kernel 项目是否存在
2. 不存在则从模板复制
3. 在 csrc/ops/<op_name>/ 下创建算子骨架
4. 提示三处注册更新点

检查点

  • ascend-kernel 项目存在(build.sh、CMakeLists.txt、csrc/)
  • csrc/ops/<op_name>/ 目录已创建
  • 包含 op_host/<op_name>.cppop_kernel/<op_name>.cppCMakeLists.txtdesign.md

全部通过 → 进入 Phase 2


Phase 2:设计文档生成

调用 Skillascendc-operator-design

执行内容

MANDATORY: 按 ascendc-operator-design skill 流程执行:
1. 分析算子需求(名称、功能、数据类型)
2. 确定实现路径(AscendC Kernel / CATLASS / ACLNN)
3. 设计 Tiling 策略(Block级 + UB级)
4. 填写 UB 分配表,推导 bufferCoefficient
5. 生成完整设计文档到 csrc/ops/<op_name>/design.md

检查点

  • csrc/ops/<op_name>/design.md 内容完整
  • 包含函数签名和支持的数据类型
  • 包含计算逻辑伪代码(AscendC API 调用序列)
  • 包含 UB 分配表(列出所有 buffer 及总系数)
  • 包含 bufferCoefficient(每种 dtype 的值)

全部通过 → 进入 Phase 3


Phase 3:测试用例生成

调用 Skillascendc-operator-testcase-gen

执行内容

MANDATORY: 按 ascendc-operator-testcase-gen skill 流程执行:
1. 读取 csrc/ops/<op_name>/design.md,提取参数约束、支持的 dtype、典型 shape
2. 生成 TEST_SHAPES(常规 shape)、GENERAL_SHAPES(泛化 shape)、BOUNDARY_VALUES(边界值)
3. 生成算子标杆(CPU 参考实现、NPU 调用方式)
4. 输出用例文档到 csrc/ops/<op_name>/test/<op_name>-test-cases.md

检查点

  • csrc/ops/<op_name>/test/<op_name>-test-cases.md 已生成
  • 包含 SUPPORTED_DTYPES、TEST_SHAPES、GENERAL_SHAPES、BOUNDARY_VALUES
  • 包含算子标杆(NPU 调用方式 + CPU 参考实现)
  • shape 和参数值均在 design.md 约束范围内

全部通过 → 进入 Phase 4


Phase 4:代码生成 + 框架适配 + 编译测试

调用 Skillascendc-operator-code-gen(内部自动调用 ascendc-operator-compile-debug

执行内容

MANDATORY: 按 ascendc-operator-code-gen skill 流程执行:

阶段 1: 加载参考文档
  - 读取 references/GUIDE.md
  - 按算子类型加载对应 reference

阶段 2: 读取设计文档
  - 提取函数签名、UB 分配表、计算伪代码

阶段 3: 选择模板并生成代码
  - 选择 elementwise / row 模板
  - 生成 op_host/<op_name>.cpp(含 Tiling 计算逻辑)
  - 生成 op_kernel/<op_name>.cpp(含 Compute 计算逻辑)

阶段 4: 框架适配
  - 更新 csrc/ops.h(函数声明)
  - 更新 csrc/register.cpp(m.def + m.impl)
  - 更新 csrc/CMakeLists.txt(OP_SRCS + ascendc_library)

阶段 5: 编译安装与测试(调用 compile-debug skill)
  - ./build.sh 编译
  - pip install whl 安装
  - 生成 tests/test_<op_name>.py
  - 运行功能测试和精度测试
  - 编译/测试失败最多排错 3 次

检查点

  • op_host/<op_name>.cpp 使用平台 API 获取硬件参数
  • op_kernel/<op_name>.cpp 包含完整 CopyIn → Compute → CopyOut 流水线
  • ops.h 已添加函数声明
  • register.cpp 已添加 m.defm.impl
  • csrc/CMakeLists.txt 已添加 host 和 kernel 源文件
  • 编译成功(whl 包已生成)
  • 功能测试通过(exit code 0)
  • 精度测试全部通过(pytest 全绿)

全部通过 → 进入 Phase 5


Phase 5:接口文档生成

调用 Skillascendc-operator-doc-gen

执行内容

MANDATORY: 按 ascendc-operator-doc-gen skill 流程执行:

阶段 1: 信息提取
  - 从 register.cpp 提取 Python 调用签名(m.def schema)
  - 从 ops.h 提取 C++ 函数声明和返回类型
  - 从 design.md 提取算法描述、参数说明、dtype 支持、约束条件
  - 从 op_host 提取 TORCH_CHECK 约束
  - 从 tests/test_<op_name>.py 提取使用示例

阶段 2: 文档结构组装
  - 按 PyTorch 官方文档风格组装中文接口文档
  - 包含:标题签名 + 功能描述 + 参数说明 + 支持的数据类型 + Shape + 约束条件 + 使用示例 + 返回值

阶段 3: 文件生成
  - 生成 csrc/ops/<op_name>/README.md

阶段 4: 在交互界面展示完整文档内容

检查点

  • 从源代码提取了完整的接口信息(签名、参数、dtype、shape、约束)
  • README.md 包含完整的 7 个段落(标题签名 + 功能描述 + 参数说明 + 支持的数据类型 + Shape + 约束条件 + 使用示例 + 返回值)
  • Python 调用签名与 register.cppm.def 一致
  • 参数说明使用 PyTorch 文档风格,描述使用中文
  • 使用示例中的代码可运行
  • README.md 已写入 csrc/ops/<op_name>/README.md
  • 接口文档已在聊天界面完整展示

全部通过 → 进入 Phase 6


Phase 6:精度评估报告

调用 Skillascendc-operator-precision-eval

执行内容

MANDATORY: 按 ascendc-operator-precision-eval skill 流程执行:

阶段 1: 加载用例文档 + 信息收集
  - 读取 csrc/ops/<op_name>/test/<op_name>-test-cases.md(testcase-gen 产出)
  - 提取 SUPPORTED_DTYPES、TEST_SHAPES、GENERAL_SHAPES、BOUNDARY_VALUES、算子标杆
  - 从已有代码补充提取精度阈值等信息

阶段 2: 用例适配((shapes + boundary) × dtypes ≥ 30 例)
  - 直接复用 testcase-gen 的 TEST_SHAPES 和 BOUNDARY_VALUES
  - 每个 shape / 边界值遍历算子支持的全部 dtype

阶段 3: 测试脚本生成(输出到算子目录 csrc/ops/<op_name>/test/)
  - 基于模板生成 test_<op_name>_precision.py(pytest 格式)
  - 基于模板生成 run_<op_name>_precision_report.py(报告生成器)

阶段 4: 执行
  - 运行 pytest 全部通过
  - 运行报告生成器输出 JSON

阶段 5: 报告生成
  - 生成 <op_name>_precision_report.md(含常规 shape + 边界值表格 + 汇总 + 关键发现)
  - 向用户提示报告路径

检查点

  • 用例数 = (shapes + boundary) × dtypes ≥ 30
  • 算子支持的每种 dtype 都已测试
  • pytest 精度测试全部通过
  • JSON 报告生成(含 5 个精度指标: MaxAbsErr / MeanAbsErr / MaxRelErr / MeanRelErr / CosineSim)
  • Markdown 报告生成于 csrc/ops/<op_name>/test/<op_name>_precision_report.md
  • 精度测试结果已以 Markdown 表格形式展示在聊天界面
  • 已向用户提示精度报告路径

全部通过 → 进入 Phase 7


Phase 7:性能评测报告

调用 Skillascendc-operator-performance-eval

执行内容

MANDATORY: 按 ascendc-operator-performance-eval skill 流程执行:

阶段 1: 加载用例文档 + 信息收集
  - 读取 csrc/ops/<op_name>/test/<op_name>-test-cases.md(testcase-gen 产出)
  - 提取 SUPPORTED_DTYPES、TEST_SHAPES、GENERAL_SHAPES、算子标杆
  - 从已有代码补充提取 OP Type 关键字等信息

阶段 2: 用例适配(JSONL 格式,≥8 case)
  - 从 testcase-gen 的 TEST_SHAPES + GENERAL_SHAPES 中选取代表性 shape
  - 覆盖算子支持的全部 dtype
  - 转换为 JSONL 格式

阶段 3: 脚本生成(输出到算子目录 csrc/ops/<op_name>/test/)
  - 基于模板生成 run_<op_name>_case.py(单 case msprof 执行器)
  - 基于模板生成 benchmark_<op_name>_msprof.py(总控脚本)
  - 生成 <op_name>_cases.jsonl

阶段 4: 执行整理
  - 运行总控脚本,每 case 20 次迭代(前 10 次预热)
  - 按 OP Type 从 op_summary_*.csv 提取 Task Duration(us) 和硬件指标
  - 输出 JSON 结果

阶段 5: 报告生成
  - 生成 <op_name>_perf_report.md(含结果表格 + 汇总 + 简短分析)
  - 向用户提示报告路径

检查点

  • JSONL 用例覆盖多种 shape × dtype(≥ 8 case)
  • 使用 msprof 整理,非其他计时方式
  • OP Type 筛选目标算子(非 Op Name)
  • 20/10 预热/统计策略
  • JSON 报告生成(含 Task Duration + 硬件指标)
  • Markdown 报告生成于 csrc/ops/<op_name>/test/<op_name>_perf_report.md
  • 报告包含简短分析(≥ 3 条结论)
  • 性能测试结果已以 Markdown 表格形式展示在聊天界面
  • 已向用户提示性能报告路径

全部通过 → 算子开发完成


阶段间数据流

Phase 1 输出                    Phase 2 输入
  csrc/ops/<op_name>/    ────▶    算子名称、目录结构
  design.md (占位)

Phase 2 输出                    Phase 3 输入
  design.md (完整)       ────▶    参数约束、支持的 dtype、典型 shape
                                  → 生成统一测试用例文档

Phase 3 输出                    Phase 4 输入
  <op_name>-test-cases.md ────▶    design.md (完整)
  (用例文档,供后续复用)          函数签名、UB 分配表 → bufferCoefficient
                                  计算伪代码 → Compute 逻辑
                                  Tiling 策略 → Block/UB 切分参数

Phase 4 输出                    Phase 5 输入
  已安装的算子 whl        ────▶    register.cpp / ops.h / design.md /
  tests/test_<op_name>.py        op_host / test 文件
                                  → 提取接口信息生成文档

Phase 5 输出                    Phase 6 输入
  csrc/ops/<op>/README.md ────▶    <op_name>-test-cases.md(来自 Phase 3)
  接口文档完成                     算子名、调用方式、输入域约束
                                  支持的全部 dtype、精度阈值
                                  → 输出到 csrc/ops/<op_name>/test/

Phase 6 输出                    Phase 7 输入
  精度报告通过             ────▶    <op_name>-test-cases.md(来自 Phase 3)
  csrc/ops/<op>/test/            算子名、工程/原生调用方式
                                  支持的全部 dtype、OP Type 关键字
                                  → 输出到 csrc/ops/<op_name>/test/

状态跟踪表

Phase前置条件调用 Skill关键产出物
0. 需求收集CANN 路径 + Conda 环境 + 算子名称 + 功能描述
1. 工程初始化Phase 0ascendc-operator-project-init算子骨架目录
2. 设计文档Phase 1ascendc-operator-designdesign.md(含 Tiling + UB 分配表)
3. 用例生成Phase 2ascendc-operator-testcase-gen<op_name>-test-cases.md(统一用例文档)
4. 代码&测试Phase 3ascendc-operator-code-gencompile-debug可运行算子 + 基本测试通过
5. 接口文档Phase 4ascendc-operator-doc-genPyTorch 风格中文 API 文档 (README.md)
6. 精度评估Phase 5ascendc-operator-precision-eval≥30 例精度测试 + 精度报告
7. 性能评测Phase 6ascendc-operator-performance-evalmsprof 性能对比 + 性能报告

错误恢复

从中断点恢复

当用户说"继续算子开发"时:

检测条件判定阶段恢复动作
csrc/ops/<op_name>/ 不存在Phase 1 未完成从 Phase 1 开始
design.md 为占位或空Phase 2 未完成从 Phase 2 开始
csrc/ops/<op_name>/test/<op_name>-test-cases.md 不存在Phase 3 未完成从 Phase 3 开始
op_host/ 仍为骨架代码Phase 4 未完成从 Phase 4 开始
whl 未生成Phase 4 编译未完成从编译步骤恢复
基本测试未通过Phase 4 测试未完成从测试步骤恢复
csrc/ops/<op_name>/README.md 不存在Phase 5 未完成从 Phase 5 开始
csrc/ops/<op_name>/test/ 无精度报告Phase 6 未开始从 Phase 6 开始
精度报告不存在或精度测试未全部通过Phase 6 未完成从 Phase 6 恢复
精度报告存在但性能报告不存在Phase 7 未开始从 Phase 7 开始
<op_name>_perf_report.md 不存在或不完整Phase 7 未完成从 Phase 7 恢复

编译/测试失败

ascendc-operator-compile-debug skill 内部处理,最多排错 3 次。3 次仍失败则停止并向用户报告详细错误。

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.92%
按下载量换算137

Claude

29.88%
按下载量换算121

Cursor

20.22%
按下载量换算82

Gemini CLI

9.7%
按下载量换算39

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/ascend/agent-skills --skill ascendc-operator-dev 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills