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

CANN 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 skills/ops-lab/tilelang/teams/tilelang-op-orchestrator # 3. 执行初始化脚本(项目级) bash init.sh project opencode # OpenCode 用户(默认) bash init.sh project claude # Claude Code 用户 # 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 skills/ops-lab/tilelang/teams/tilelang-op-orchestrator # 3. 执行初始化脚本(全局) bash init.sh global opencode # OpenCode 用户(默认) bash init.sh global claude # Claude Code 用户 # 4. 进入 TileLang-Ascend 源码仓库,安装环境 cd tilelang-ascend bash install_ascend.sh cd ..

安装内容

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

内容OpenCode 项目级OpenCode 全局Claude 项目级Claude 全局
Skills 技能模块.opencode/skills/~/.config/opencode/skills/.claude/skills/~/.claude/skills/
Agents 子代理.opencode/agents/~/.config/opencode/agents/.claude/agents/~/.claude/agents/
AGENTS.md.opencode/AGENTS.md~/.config/opencode/AGENTS.md.claude/CLAUDE.md~/.claude/CLAUDE.md

环境校验

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

项目级安装

skills/ops-lab/tilelang/teams/tilelang-op-orchestrator/ ├── .opencode/ │ ├── skills/ # 技能模块 │ │ ├── tilelang-api-best-practices/ │ │ ├── tilelang-programming-model-guide/ │ │ ├── tilelang-op-design/ │ │ ├── tilelang-op-generate/ │ │ └── tilelang-review/ │ ├── agents/ # 子代理(如有) │ ├── AGENTS.md # Agent 配置 │ └── cannbot-manifest.json # 安装清单 ├── tilelang-ascend # tilelang代码仓 ├── init.sh # 初始化脚本 └── quickstart.md # 本文档

二、快速上手

启动

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

opencode # OpenCode 用户

开发算子示例

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

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

核心工作流

按照 3 阶段渐进式开发,确保算子开发质量:

阶段一:需求分析与方案设计 → 阶段二:算子实现 → 阶段三:精度验证与调试

每个阶段的详细说明参见 AGENTS.md。

产出物示例

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

tilelang-ascend/examples/softmax/ ├── softmax.py # TileLang kernel 实现 ├── design.md # 设计文档 └── README.md # 实现说明(可选)

三、可用技能

Skill用途触发时机
tilelang-api-best-practicesAPI 速查表与最佳实践编写 kernel 查阅 API 时
tilelang-op-design算子方案设计,生成 design.md设计算子时
tilelang-op-generate基于 design.md 生成算子代码实现算子时
tilelang-programming-model-guideDeveloper/Expert 模式对照与转换选择编程模式时
tilelang-review代码审查(Python + C++)代码 review 时

四、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.jsqmd.com/news/786933/

相关文章:

  • 在长期项目中观察通过Taotoken调用API的月度成本波动情况
  • 物联网与AGI融合:从数据感知到自主决策的技术架构与实践路径
  • GPTree GUI:本地优先的代码库可视化工具,为LLM高效准备项目上下文
  • ChatGPT-RetrievalQA数据集:用大模型合成数据训练信息检索系统
  • CursorMD:AI驱动的文档架构师,实现文档驱动开发新范式
  • AI Workflow:一键注入170+技能,让AI编程助手秒变行业专家
  • 使用技巧(五):插件装了 50 个还是裸奔?Claude Code 三大市场只装一个就够了,这款 165K Star
  • AI SDK 集成 Codex CLI:解锁 GPT-5 模型的自主工具执行能力
  • 智能建造中的AI伦理挑战:从数据隐私到人机信任的九大议题
  • Autovisor:如何用Python自动化工具7天搞定智慧树课程?
  • 开发上下文同步工具:提升多任务切换效率的智能工作流解决方案
  • Arm CoreSight调试技术:TMC-ETR模式与DTSL脚本配置详解
  • 精度不再至上!SLAM 终极形态:可编辑 + 实时 + 强鲁棒
  • 多模态AI整合图像、文本与组学数据,攻克印戒细胞癌精准诊断难题
  • 【深度解析】从 AI Coding Agent 到 AI 项目经理:拆解 Verdant Manager 的多 Agent 并行工作流
  • AI智能体可视化监控:基于3D办公室隐喻的可观测性实践
  • 基于Socket.IO的极简聊天应用开发:从原理到部署实战
  • 基于ESP32与FreeRTOS的自平衡机器人:从PID控制到实时系统实战
  • 怎么掌握 Linux 基础知识?
  • 为AI助手打造本地记忆库:SQLite+知识图谱实现私密持久化协作
  • CANN/pyasc反正切函数API文档
  • 杰理之使用PB7应注意与DACR的绑定【篇】
  • AI使用技巧总结(不定期更新)
  • 可解释AI:SHAP与LIME如何驱动负责任AI的公平与透明
  • 为Hermes Agent配置Taotoken自定义提供商接入大模型
  • 基于强化学习的蝾螈机器人水陆运动控制研究
  • 2026年4月职途加速品牌推荐,职途加速,职途加速品牌好不好 - 品牌推荐师
  • MCP服务器模板:快速构建AI数据连接器的脚手架指南
  • Kubernetes MCP服务器:构建AI友好的K8s可编程接口
  • LlamaIndex:构建私有数据LLM应用的智能数据管道框架