当前位置: 首页 > news >正文

cann/cannbot-skills TileLang算子开发指南

CANNBot TileLang 算子开发快速入门指南

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

概述

CANNBot TileLang 算子开发模式适用于通过TileLang-Ascend框架开发自定义算子。基于 TVM 编译器基础设施,使用 Python DSL +@tilelang.jit编写 AI 计算 kernel,支持 Developer 模式(自动化)和 Expert 模式(手动控制)两种编程范式。

一、环境搭建

操作步骤

方式一:项目级安装(推荐)

在项目目录下安装,配置仅对当前项目生效。

# 1. 克隆 CANN Skills 仓库 git clone https://gitcode.com/cann/cannbot-skills.git # 2. 进入 TileLang 算子开发目录 cd cannbot-skills/plugins-official/tilelang-op-orchestrator # 3. 执行初始化脚本(项目级) bash init.sh project opencode # OpenCode 用户(默认) bash init.sh project claude # Claude Code 用户 bash init.sh project trae # Trae 用户 bash init.sh project cursor # Cursor 用户 bash init.sh project copilot # Copilot 用户 # 4. 进入 TileLang-Ascend 源码仓库,安装环境 cd tilelang-ascend bash install_ascend.sh cd ..
方式二:全局安装

在用户目录下安装,配置全局生效。

# 1. 克隆 CANN Skills 仓库 git clone https://gitcode.com/cann/cannbot-skills.git # 2. 进入 TileLang 算子开发目录 cd cannbot-skills/plugins-official/tilelang-op-orchestrator # 3. 执行初始化脚本(全局) bash init.sh global opencode # OpenCode 用户(默认) bash init.sh global claude # Claude Code 用户 bash init.sh global trae # Trae 用户 bash init.sh global cursor # Cursor 用户 bash init.sh global copilot # Copilot 用户 # 4. 进入 TileLang-Ascend 源码仓库,安装环境 cd tilelang-ascend bash install_ascend.sh cd ..

安装内容

init.sh 脚本会完成以下操作:

内容OpenCode 项目级OpenCode 全局Claude 项目级Claude 全局Trae 项目级
Skills 技能模块.opencode/skills/~/.config/opencode/skills/.claude/skills/~/.claude/skills/.trae/skills/
Agents 子代理.opencode/agents/~/.config/opencode/agents/.claude/agents/~/.claude/agents/.trae/agents/
AGENTS.md.opencode/AGENTS.md~/.config/opencode/AGENTS.md.claude/CLAUDE.md~/.claude/CLAUDE.md.trae/AGENTS.md
Cursor 安装路径
内容Cursor 项目级Cursor 全局级
Skills 技能模块.cursor/skills/~/.cursor/skills/
Agents 子代理.cursor/agents/~/.cursor/agents/
AGENTS.md.cursor/AGENTS.md~/.cursor/AGENTS.md
Copilot 安装路径
内容Copilot 项目级Copilot 全局级
Skills 技能模块.github/skills/~/.copilot/skills/
Agents 子代理.github/agents/~/.copilot/agents/
AGENTS.md.github/AGENTS.md~/.copilot/AGENTS.md

环境校验

执行完上述步骤后,检查目录结构是否符合以下规范:

项目级安装

cannbot-skills/plugins-official/tilelang-op-orchestrator/ ├── .opencode/ │ ├── skills/ # 技能模块(9 个) │ │ ├── tilelang-env-check/ │ │ ├── tilelang-submodule-pull/ │ │ ├── tilelang-op-design/ │ │ ├── tilelang-op-develop/ │ │ ├── tilelang-op-test-design/ │ │ ├── tilelang-perf-optimization/ │ │ ├── tilelang-api-best-practices/ │ │ ├── tilelang-programming-model-guide/ │ │ └── tilelang-review/ │ ├── agents/ # 3 个子代理(analyst / developer / perf-tuner) │ ├── AGENTS.md # 编排器(Primary)配置 │ └── cannbot-manifest.json # 安装清单 ├── tilelang-ascend # tilelang代码仓 ├── init.sh # 初始化脚本 └── quickstart.md # 本文档

二、快速上手

启动

在初始化完成的目录下执行:

opencode # OpenCode 用户

开发算子示例

在交互界面中输入算子开发需求,CANNBot 会按照“算子方案设计-->算子代码实现-->算子精度验证”分阶段开发流程引导你完成:

帮我开发一个 softmax 算子方案设计

核心工作流

采用 3 阶段状态机编排,由 orchestrator 统一调度,确保算子开发质量:

Stage 1 算子设计(含需求理解) → Stage 2 代码实现 + 测试 + 精度调试(一站式) → Stage 3 性能调优(可选)

每阶段通过工件门禁校验后才进入下一阶段;Stage 2 内部完成"生成代码 → 跑测试 → 精度调试"全部循环,精度通过后才询问是否进入 Stage 3。支持断点续跑、失败恢复与设计回退(Subagent 返回[DESIGN_ERROR]时回退到 Stage 1 重做设计),详见 AGENTS.md。

产出物示例

TileLang 算子开发模式下,CANNBot 会在examples/{operator}/目录下生成文件:

examples/softmax/ ├── DESIGN.md # Stage 1 设计文档 ├── example_softmax.py # Stage 2 kernel + 内嵌 golden + test 用例 + main 块 ├── README.md # 实现说明(可选) ├── perf_tuning/ # Stage 3 性能调优产物(可选) ├── history_version/ # 设计回退 / 精度调试备份 └── .orchestrator_state.json # 流程状态(自动维护,支持断点续跑)

三、可用技能与代理

Skill用途触发时机
tilelang-env-check环境检查与自动修复(子模块 / 编译 / 环境变量)Stage 1 启动前环境预检
tilelang-submodule-pull拉取代码与子模块env-check 发现子模块缺失时
tilelang-op-design算子方案设计,生成 DESIGN.mdStage 1
tilelang-op-develop基于 DESIGN.md 生成算子代码与测试Stage 2
tilelang-op-test-design测试用例与精度标准设计Stage 2 辅助
tilelang-perf-optimization性能瓶颈分析与优化Stage 3
tilelang-api-best-practicesAPI 速查表与最佳实践编写 kernel 查阅 API 时
tilelang-programming-model-guideDeveloper/Expert 模式对照与转换选择编程模式时
tilelang-review代码审查(Python + C++)代码 review 时
Agent用途负责阶段
tilelang-op-orchestrator流程编排、状态机、工件门禁、设计回退(Primary)全流程
tilelang-op-analyst算子设计(含需求理解、设计回退)Stage 1
tilelang-op-developer代码实现 + 测试 + 精度调试(一站式)Stage 2
tilelang-op-perf-tuner性能分析与调优Stage 3

四、Developer 模式 vs Expert 模式

TileLang-Ascend 支持两种编程范式,开发前需先确认使用哪种模式:

维度Developer(自动化)Expert(手动控制)
内存分配T.alloc_shared/fragment编译器自动映射T.alloc_L1/ub/L0A/L0B/L0C显式指定
计算T.Parallel+ 符号运算T.tile.add/exp/max
作用域编译器自动分离 Cube/Vector显式with T.Scope("C"/"V")
同步自动手动T.barrier_all/set_flag/wait_flag
适合场景快速开发、原型验证需要精细控制性能

详细对照参见tilelang-programming-model-guideskill。

五、常见问题

Q: 如何查看帮助信息?

bash init.sh --help

Q: 项目级和全局安装如何选择?

  • 项目级:适合多项目开发,每个项目可以有不同配置
  • 全局:适合单一项目,全局生效

Q: 如何更新技能模块?

重新执行 init.sh 即可,脚本会自动覆盖旧版本。

Q: 如何选择 Developer 模式还是 Expert 模式?

场景推荐模式
快速验证算子可行性Developer 模式
原型开发和概念验证Developer 模式
需要精细控制硬件资源和内存层级Expert 模式
生产级高性能算子调优Expert 模式
混合使用(如 Cube 用 Developer,Vector 用 Expert)混合模式

总结

  1. TileLang 算子开发模式通过 Python DSL 实现昇腾 NPU 算子的快速开发
  2. 环境搭建核心两步:克隆仓库 → 执行 init.sh
  3. opencode/claude是核心交互指令
  4. 开发前必须确认使用 Developer / Expert / 混合模式

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.gsyq.cn/news/1508912.html

相关文章:

  • LayoutParser终极指南:5步实现高效文档布局解析,零基础也能轻松上手
  • 3分钟上手视频字幕提取:本地化OCR工具让字幕提取从未如此简单
  • S32K3XX芯片时钟配置避坑指南:从EB工具配置到寄存器手撕代码的完整心路
  • 从8255流水灯到理解CPU外设控制:一个实验讲透微机接口核心思想
  • LLM如何革新信息传播建模:从语义理解到多智能体系统
  • SleepingOwlAdmin与Eloquent模型:高级关系管理和数据展示技巧
  • 别再只盯着快充功率了!一文看懂USB PD策略引擎(Policy Engine)如何决定你的充电速度
  • JVM对象逃逸分析深度详解
  • 避坑指南:用RIGOL示波器测自身触发信号,我发现了一个40ns的延迟(附校准思路)
  • ARMv8开发实战:手把手教你用GDB调试AArch64同步异常(附代码示例)
  • MSP430F437软I2C驱动FDC1004电容传感模块(含完整初始化与差分值读取)
  • 从电容爆炸到电路稳定:我是如何通过理解‘反极性串联’彻底搞懂电解电容使用禁忌的
  • 从数据流视角看Hi3516DV500陀螺仪防抖:FIFO模式、采样率与帧率如何协同不丢数
  • 2026年专业的义乌纸箱机械设备厂用户力荐 - myqiye
  • 2026年工业锅炉厂家选择指南:西南区域优质品牌综合评测与分析 - 优质品牌商家
  • SBUS、PPM、PWM傻傻分不清?一文讲透航模遥控器协议怎么选,附SBUS硬件连接实测
  • 避开蓝桥杯AT24C02的坑:详解I2C时序和16位数据读写(方法一vs方法二对比)
  • 青岛老牌网红餐厅实测!那些年吃串地,海鲜烧烤馄饨高性价比聚餐首选
  • 企业AI转型必看:从痛点出发,收藏这份7天落地指南,小白也能轻松入门!
  • Activiti 5.22 explorer 控制台一键部署包:内置 H2 数据库 + 3 个可运行 BPMN 示例流程
  • 靠谱的泡沫轻质混凝土供应企业 - myqiye
  • 金融报表自动生成系统(Qt Widgets + Excel/PDF + 模板)
  • 南京轻医美连锁店做GEO应该怎么选服务商?2026本地靠谱GEO服务商选型指南 - 企业新闻快传
  • 从RGB颜色提取到大小端转换:聊聊移位操作在嵌入式开发中的那些实战用法
  • 有哪些微信投票小程序,西瓜评选+云帆投票+圈投票,投票平台深度对比测评 - 投票小程序
  • 5个为什么Tesseract OCR是开发者处理图像文字提取的首选方案
  • Qt 多媒体全解|视频播放、录音、摄像头实时预览
  • 2026年青海及西北地区彩钢厂选择指南:实地调研与多维度分析 - 优质品牌商家
  • 解决Go通道痛点:gh_mirrors/cha/channels中的ResizableChannel使用指南
  • 收藏!小白程序员也能入行的AI大模型学习指南,抓住下一个风口!