jieran-zhang/cannbot-skills/ascendc-direct-invoke-template
Claude Code and agent skill by jieran-zhang/cannbot-skills
- community
Checking that the SKILL.md file is still in the repository.
Kernel直调工程模板,用于创建 Ascend C Kernel 直调工程项目。提供经过验证的 Vector 样例工程(add_custom)和 mxfp8 matmul+eltwise 融合工程,含清晰的修改指南。触发:当用户需要创建 Kernel 直调工程、学习 Ascend C 编程、快速原型验证、或提及"Kernel直调"、"<<<>>>内核调用"、"mxfp8 融合"时使用本 skill。
Install
npx vskill@latest install jieran-zhang/cannbot-skills/ascendc-direct-invoke-templateSKILL.md
The same SKILL.md was published earlier as mcgatom/codex-cannbot/ascendc-direct-invoke-template.
Ascend C Kernel 直调工程
先按算子类型路由到模板,再按 [MODIFY] 注释改造。
场景路由
| 算子类型 | 入口 | 典型算子 | |
|---|---|---|---|
| Vector(A 分支) | references/add_custom/ | add、mul、relu、softmax、layernorm 等逐元素/归约算子 | |
| mxfp8 matmul + eltwise 融合 | references/matmul_fusion_kernel/ + references/matmul_fusion_guide.md | Cube+Vector 融合专用变种;该指南独立自洽,进入后不必再回本页 | |
| Kirin Vector (端侧开发) | references/kirin_add_template/ + references/kirin_vector_guide.md | Kirin SoC(KirinX90/Kirin9030)专用add、mul、relu、softmax、layernorm 等逐元素/归约算子;该指南独立自洽,进入后不必再回本页 |
不支持的场景:纯 Matmul/Cube(非融合)、其他 Cube+Vector 混合(如 matmul+softmax)不在此覆盖范围。
使用方法
A. Vector 算子(Add 分支)
- 复制样例目录:
``bash # 若算子目录 <your_op> 未创建 cp -r references/add_custom <your_op> # 若算子目录 <your_op> 已存在 cp -r references/add_custom/* <your_op> cd <your_op> ``
- 全局替换算子名:
add_custom→<your_op>(add_custom 是整体算子名,_kernel/_torch/_tiling 是固定后缀) - 按 `[MODIFY]` 标记改造:
- 类名和 kernel 函数名
- Tiling 结构体(
add_custom_tiling.h) - 计算逻辑(
add_custom_kernel.asc) - 输入/输出数量
CMakeLists.txt中的目标名
- 编译运行:
``bash # 完整流程(含编译) bash run.sh # 仅运行测试,复用已有编译产物 bash run.sh --skip-build ` > run.sh 在运行 kernel 前会自动删除旧的 output/output.bin`,确保精度验证读取的是本次运行的新鲜输出。
B. mxfp8 matmul + eltwise 融合
见 references/matmul_fusion_guide.md(独立自洽):复制 references/matmul_fusion_kernel/ 工程后按指南改 Epilogue。
C. Kirin Vector 算子(Add 分支)
见 references/kirin_vector_guide.md(独立自洽):复制 references/kirin_add_template/ 工程后按 guide 进行修改。
文件结构(Add 分支)
Add 代码关键模式(速查)
在 add_custom_kernel.asc 和 add_custom.asc 中可直接学习:
- 内存分配:
TPipe+TQue管理 UB Buffer - 数据流: CopyIn → Compute → CopyOut 三段模式
- 同步:
EnQue/DeQue确保操作顺序 - Host 流程: ACL 初始化 → KernelCall → 资源释放
PyTorch 对接
模板已内置 PyTorch 对接,编译后即可使用:
参考资源
| 文件 | 说明 | |
|---|---|---|
references/matmul_fusion_guide.md | mxfp8 matmul + eltwise 融合 Epilogue 规范 | |
references/kernel_launch_details.md | 进阶(通用):内存层次/Double Buffer/同步机制/多 I/O |
- Ascend C 示例代码
- NPU 架构配置详见
npu-archskill - PyTorch 对接详见
torch-ascendc-op-extensionskill
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingops/ascendc-direct-invoke-template/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jieran-zhang/cannbot-skills/ascendc-direct-invoke-template)