Token导航 LogoToken导航TokenDH.com
待分类需要联网github未标认证来源可访问许可证需确认审计通过

ascendcascendc 命令行

Agent Skill

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

总安装

1,187

周安装

51

GitHub Stars

60

下载量

416
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/ascend-ai-coding/awesome-ascend-skills --skill ascendc

简介

ascendc 指导 Agent 在 ops-transformer 工程中开发或修改 AscendC 算子,涵盖 FFN、GMM、MoE 等类型。

  • 提供完整开发模板与 CANN aclnn_* 示例,支持单测与精度验证闭环。
  • 使用前请先通读 references/ 目录下各阶段文档,再按索引执行对应任务。
  • 工程约定统一存放于 csrc/ops 目录,命名须采用 snake_case 格式。
  • 涉及代码生成时务必以 CANN 官方文档为准,避免与现有实现冲突。

SKILL.md

AscendC Transformer 算子开发

指导 Agent 按现有模式开发/修改 AscendC 的 FFN、GMM、MoE 类算子及对应 CANN aclnn_* 示例。具体约定与代码模板见同目录下 references/;执行任务前请先通读本 SKILL.md,再按「References 索引」打开对应文档。


如何读取本 Skill(能力与使用方式)

  • 本 skill 能做什么:在 ops-transformer 工程中新增/修改 AscendC 算子(op_host、tiling、infershape、op_kernel)、Matmul/Cube 调用、以及 aclnn 示例与单测;所有约定与模板集中在 references/ 中,本文件提供索引与工作流。
  • 推荐读取顺序:① 本 SKILL.md 全文(When to Use、References 索引、Overall Workflow、各 Step);② 根据当前任务从「References 索引」表打开对应 references/0X-*.md;③ 以 CANN 官方文档与 references 中的「官方文档参考」为准,工程内同类型算子可作实现参考。
  • references 路径:与 SKILL.md 同级的 references/ 目录,文档名为 01-type-format.md08-genop.md,表中已按主题与何时查阅列出。

使用本 Skill 的方式(Agent 必读)

  1. 先读本文件:确认 When to Use、Overall Workflow、References 索引与各 Step 摘要。
  2. 按需读 references:根据当前任务打开下表对应文档(如做 tiling 则读 06-tiling.md,做 Matmul 则读 02-kernel-guide.md),按文档内约定实现或修改代码。
  3. 以官方文档为参考示例:规范与示例以 CANN 官方文档(算子开发、Ascend C API、Tiling、单算子调用等)及 references 内列出的官方链接为准;工程内同类型算子可作实现参考,不凭空发明模式。

When to Use

  • 算子层面:在 ops-transformer 下新增或修改 FFN / GMM / MoE / 路由类 AscendC 算子(含前向、反向、路由融合等)。
  • Kernel 层面:在 AscendC op_kernel 中实现或调整 Matmul/Cube 调用(如 MatmulImpl、分块 GEMM、AIC/AIV 协作、确定性 GMM、grouped_matmul_finalize_routing 风格)。
  • Tiling / Infershape:补充或修改 *_tiling*.h/.cpp*_infershape.cpp,或理解 shape→tiling→kernel 的完整映射。
  • 示例与单测:编写或调整 CANN aclnn_* 示例与 Python/CPP 单测,接口、dtype、格式与 op_host/op_kernel 精确对齐。
  • 对齐与重构:重构、修 bug 或新增功能时,严格沿用现有 FFN/GMM/MoE 模式。

References 索引(按执行顺序与主题)

文档说明何时查阅
references/01-type-format.mdop_host 类型/格式:DataType·Format·UnknownShapeFormat 个数约定、JSON 映射定义或修改 Input/Output 时
references/02-kernel-guide.mdKernel:GlobalTensor/TQue、CopyIn/Compute/CopyOut;Matmul/Cube 模板;GMM 转置说明写/改 op_kernel、Matmul 调用时
references/03-op-host-examples.mdFFN/GMM/MoE 的 Input/Output/Attr 定义示例代码写 *_def.cpp 时
references/04-op-kernel-skeletons.mdFFN/GMM/MoE 的 op_kernel 命名空间与主类骨架写/改 op_kernel 主类时
references/05-json-types-flow.mdJSON + graph/types.h 驱动 op_host/infershape/tiling 对齐流程接口与 JSON/types 对齐时
references/06-tiling.mdTiling 实现:标准 C++ 与宏定义两种方式及取值/写回差异实现或修改 tiling 时
references/07-aclnn-template.mdaclnn 示例通用模板与生成步骤写 test_aclnn_* 时
references/08-genop.mdgenop 命令、生成结构、生成后定制与常见问题从零生成新算子目录时

官方文档为参考示例:本 skill 以 CANN 官方文档为规范与示例来源,不依赖本地工程路径。

各 references 文档内均设有「官方文档参考」小节,列出对应官方链接。


Overall Workflow

  1. 以官方文档与 references 为准:规范与示例见 CANN 官方文档及本 skill 的 references;工程内可在 ops-transformer/ffn/gmm/moe/ 下对照同类型算子的 *_def.cpp*_tiling*.h/.cppop_kernel/*.hexamples/test_aclnn_*.cpp 作实现参考。
  2. op_host 定义图算子接口:Input/Output/Attr、AICore 配置、OP_ADD。见 01-type-format03-op-host-examples
  3. op_kernel 实现 AscendC 内核:Init、Process、队列与 UB 管理、Matmul 时见 02-kernel-guide04-op-kernel-skeletons
  4. 完成 tiling、infershape 与注册:见 06-tiling05-json-types-flow
  5. 编写或更新 CANN 示例与单测:见 07-aclnn-template
  6. 若有 Python 前端:按现有 test 模板补用例并做数值/形状校验。

新算子从零开始时:先执行 bash build.sh --genop=op_class/op_name,再按 08-genop 与上述步骤定制。


Step 1:复用现有模式

  • 参考示例以官方文档为准:类型/格式见 01-type-format(含 CANN/graph/types.h);Kernel 与 Matmul 见 02-kernel-guide(含 Ascend C API、Gitee samples)。工程内可对照同类型算子(FFN/GMM/MoE 的 op_host、tiling、op_kernel、examples)做实现参考。
  • 行为准则:以官方规范与 references 为准,先完整复制同类型算子骨架再做最小必要修改;保持命名、宏(如 ASCEND_IS_AIC)、队列与 UB 管理、AICore 与芯片配置一致。

Step 2:op_host 定义

  • 模式:继承 OpDef,在 namespace ops 内定义;Input 用 Input("name") + .ParamType(REQUIRED/OPTIONAL) + .DataType({...}).Format({...}).UnknownShapeFormat({...})(个数一致);Output 同理;属性用 .Attr("name").AttrType(...).Int/Float/ListInt(...);AICore 用 OpAICoreConfigAddConfig("ascend910b", config);最后 OP_ADD(YourOpClassName)
  • 示例03-op-host-examples。新算子从参考算子完整复制类与构造函数,只改类名、输入输出名与个数、DataType/Format、属性与默认值;需 aclnn 时沿用 "aclnnSupport.value", "support_aclnn"

Step 3:op_kernel 实现

  • 共性:命名空间与算子一致;包含 kernel_operator.h,矩阵类用 lib/matmul_intf.h;类型别名与 MatmulImpl 按参考算子;用模板区分 dtype/量化/激活等。
  • 骨架04-op-kernel-skeletons。确认是否基于 MatmulImpl 及 tiling 字段;只增删 GM 输入、调整 ComputeDequantAndActivate 等业务逻辑;保持队列/UB、PipeBarrier、DataCopyPad、SetAtomicAdd 等模式不变。

Matmul / Cube 子流程

  • 何时:新增或修改基于 Matmul 的内核(如 GMM、MoE finalize routing)。
  • 步骤概要:(1)按 02-kernel-guide 与官方 Matmul 高阶 API 定义 MatmulType/MatmulImpl,按 A:GM+ND、B:GM+NZ、C:GM+ND 复用或微调;(2)Init 中把 Host 传入的 GM 绑定为 GlobalTensor,保存 tiling 的 baseM/baseN/baseK、stepKa/stepKb、coreNum/parallNum 等;(3)Process 中按 tiling 划分 M×N×K block,算 A/B/C 的 GM 与 workspace 偏移;(4)每 block 按 02-kernel-guide 调用 SetOrgShape/SetSingleShape/SetTensorA/SetTensorB/Iterate+GetTensorC,仅 AIC 执行;需 AIV 协作或确定性时参考官方多核/同步文档与 Gitee 样例,不自行发明同步方案。详见 02-kernel-guide

Step 4:Tiling / Infershape 与 JSON 对齐

  • op_host/ 下找 *_tiling*.h/.cpp*_infershape.cpp,按官方 Tiling 文档与同类型算子分析 tiling 参数与 shape→tiling 映射。
  • JSON + types.h05-json-types-flow(JSON 接口 → op_host 映射 → infershape 对齐 → tiling 校验 → op_kernel 命名一致)。
  • Tiling 两种方式06-tiling。标准 C++:结构体在 op_kernel 目录,Host 用 GetTilingData<YourTilingData>() 后直接对成员赋值,无需 SaveToBuffer/SetDataSize;Kernel 用 REGISTER_TILING_DEFAULT(YourTilingData)。宏定义:op_host 用 BEGIN/TILING_DATA_FIELD_DEF/REGISTER_TILING_DATA_CLASS;Host 需先创建 tiling 实例,set 完后 必须 SaveToBuffer + SetDataSize 写回 context。参考示例:见 06-tiling 内「官方文档参考」— 标准 C++ 见官方「使用标准C++语法定义Tiling结构体」与 Gitee MatmulCustomMultiCore;宏定义见官方「基本流程」Add 算子示例。

Step 5:CANN aclnn 示例

  • 流程:Init(aclInit/SetDevice/CreateStream) → 为每个输入/输出 CreateAclTensor → aclnnXxxGetWorkspaceSize → 按需 aclrtMalloc workspace → aclnnXxx(...) → aclrtSynchronizeStream → 拷回并打印 → 销毁张量/释放内存/ResetDevice/aclFinalize。
  • 模板07-aclnn-template。新示例时复制模板,替换 include、dtype、张量构造与 aclnnXxx 调用,保持 CHECK_RET 与成对释放。

Step 6:测试与验证

  • 若有 Python 单测:以 CANN 单测规范为准,构造典型与边界 shape,用参考实现或简单算法算期望值,断言 shape/dtype 与数值误差在可接受范围;工程内若有同类型 test_npu_* 可作模板参考。

约束与示例

  • 约束:不凭空发明模式,先搜索并对齐相邻算子;改文件前先通读;涉及芯片/动态 shape/确定性时与现有算子一致;示例与测试宜小且可手算验证。
  • 示例:用户要求“新增类似 grouped_matmul_finalize_routing 的 GMM 路由算子”时,Agent 应以 官方文档与 references 为参考示例:按 02-kernel-guide05-json-types-flow06-tiling 实现 op_host、tiling、op_kernel 与 Graph→kernel 映射;按 07-aclnn-template 写 aclnn 示例并补单测;工程内同类型算子(如 gmm 目录下同名或相近算子)可作实现参考。

genop 与通用示例生成

  • genop:在 ops-transformer 下执行 bash build.sh --genop=op_class/op_name 生成新算子目录与占位文件。详见 08-genop
  • aclnn 示例生成:从 op_host/op_kernel 提取输入输出与属性,按 07-aclnn-template 填充分支;缺失处用 FILL IN 注释并提示用户补全。

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

32.64%
按下载量换算136

Claude

31.68%
按下载量换算132

Cursor

18.83%
按下载量换算78

Gemini CLI

8.56%
按下载量换算36

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

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

来源信息

继续浏览同类 Skills