skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
ascend/agent-skills132 installs

catlass-operator-code-gen

根据CATLASS算子设计文档生成算子工程交付件

How do I install this agent skill?

npx skills add https://github.com/ascend/agent-skills --skill catlass-operator-code-gen
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides a workflow for generating Huawei Ascend C operator code using the Catlass library. The analysis identified potential risks associated with processing untrusted design documents and the execution of local build scripts, which are typical for developer-focused tools.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

Catlass 算子代码生成

核心工作流

设计文档解析 → Catlass 实现参考选型 → op_host 生成 → op_kernel 生成 → test_aclnn 生成 → 质量验证

设计文档遵守规范(CRITICAL)

设计文档是代码生成的唯一依据,须 100% 遵守。

章节必须遵守内容验证方式
算子名含 catlass 子串,snake_case 目录名与 CamelCase 类名一致目录、OpDef、test_aclnn 命名一致
I/O 与 dtype输入输出 shape、dtype、formatOpDef 与 test_aclnn tensor 一致
核心组件ArchTag、BlockMmad、BlockEpilogue、BlockScheduler、Kernel 类型op_kernel 与 custom-epilogue.md 一致
参考 example指定的 catlass example 路径与选型理由实现与选型一致(非整份粘贴)
TilingKey各分支对应 dtype/转置等Host SetTilingKey 与 TILING_KEY_IS 一一对应
Workspace固定写法见 kernel-rules.md

前置条件

检查项说明
设计文档含算子名、I/O、dtype、转置、参考 example、Kernel/Block/Epilogue
工程OPS_PROJECT_ROOT 已定,含 build.sh、ops/
Catlass<OPS_PROJECT_ROOT>/catlass/ 含 include/、examples/;缺则在工程根克隆

条件不明时追问用户。


Catlass 实现参考选型

在 catlass/examples/ 中按设计文档选定实现参考(读结构、抄组件组合思路,不是把 example 当 ops/ 迁移源):

  1. 找与算子形态最接近的示例
  2. 确定可复用的 Kernel/Block/Epilogue;算子工程 op_kernel 须 Device 调用
  3. 将 tiling 常量、Workspace、TILING_KEY_IS 分支与 Host 侧对齐

端到端步骤

Step 0:生成骨架(强制)

在 OPS_PROJECT_ROOT:bash build.sh --genop=ops/<op_name>

Step 1:清理模板、配置编译选项

删无用模板;按 compile-options.md 配置 ascendc_config.json

Step 2:对照设计文档列清单

算子名、I/O、dtype、转置、参考路径、Kernel/Block/Epilogue、Workspace、TilingKey 分支

Step 3:锁定实现参考

同上文「Catlass 实现参考选型」

Step 4:写 op_host

生成 3 类 4 个文件:

Step 5:写 op_kernel

按 kernel-rules.md:GET_TILING_DATA、TILING_KEY_IS、Device 调用、#define K_MAX_SHAPE_DIM 0、勿 #include tiling.h

Step 6:写 test_aclnn

按 example-rules.md 覆盖 examples/test_aclnn_<op_name>.cpp

Step 7:验证


常见陷阱

NEVER:跳过 --genop;tiling/infershape 并进 def;漏 IMPL_OP_* 注册;def 里 SetTiling/SetInferShape;目录名无 catlass;Kernel 内用 if 代替 TilingKey;op_kernel 用 DeviceGemm;op_kernel #include tiling.h;对 Gemm 仅用 shape 推断转置;忘记在 ascendc_config.json 中配置 Catlass 编译选项

ALWAYS:先 opgen 再覆盖;三文件分文件注册;严格按设计文档组件选型;在 ascendc_config.json 中配置 Catlass 编译选项;改算子后 --pkg 安装再跑示例


references 索引

文件内容
compile-options.md编译选项配置
code-structure.md目录树、文件职责索引
example-rules.mdtest_aclnn 写法
tiling-rules.mdtiling.h / tiling.cpp
def-rules.mddef.cpp
infershape-rules.mdinfershape.cpp
kernel-rules.mdCatlass 依赖与 Device 调用
custom-epilogue.md自定义 Tile Epilogue

参考资料

文档/目录用途
catlass/examples/advanced/basic_matmul_aclnn工程化 op_host / op_kernel / 测试组织对照
catlass/examples/03_matmul_addMatmulEpilogue + BlockEpilogue 组合参考
ascendc-operator-compile-debug编译、安装、跑示例
catlass-operator-design设计文档

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/ascend/agent-skills/catlass-operator-code-gen">View catlass-operator-code-gen on skillZs</a>