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

CANN TileLang API最佳实践


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

name: tilelang-api-best-practices description: TileLang Ascend API 使用最佳实践。提供内存分配、数据搬运、矩阵计算、归约、元素级运算、同步、调度原语等 API 的正确用法和最佳实践。触发:使用 TileLang API 编写 Ascend NPU kernel 时或遇到 API 相关问题时。

TileLang Ascend API 最佳实践


API 文档索引

文档涵盖内容典型场景
api-kernel-memory.mdKernel 定义(T.prim_func, T.Kernel, @jit)、内存分配(Developer: T.alloc_shared/fragment/var, Expert: T.alloc_ub/L1/L0x)、数据搬运(T.copy)Kernel 编写、片上存储管理、数据搬运
api-compute.md矩阵计算(T.gemm_v0, T.mma)、归约(T.reduce_sum/max/min)、Element-wise(T.Parallel + 符号 API)、Tile 扩展原语(T.tile.xxx,含 T.tile.atomic_add)GEMM、Softmax、逐元素计算、排序、原子累加
api-schedule-sync.md循环(T.serial, T.unroll)、流水线(T.Pipelined)、持久化调度(T.Persistent)、同步(T.set_flag/wait_flag, T.barrier_all, T.set_cross_flag)、调试(T.printf, T.dump_tensor)流水线优化、多核均衡、同步、调试

场景索引

使用场景相关文档关键技巧
GEMM 矩阵乘api-compute, api-kernel-memoryshared→fragment 层级搬运、init 参数、T.barrier_all
Softmax/LayerNormapi-computeT.reduce_max/sum、T.tile.exp/sub/div
逐元素计算api-computeT.Parallel + 符号 API 或 T.tile.xxx 两种范式
多 block/core 累加到 GMapi-computeT.tile.atomic_add(dst_gm, src_local),调用前显式清零 GM
CV 融合算子api-kernel-memory, api-schedule-syncworkspace 索引一致性、AUTO_CV_COMBINE、vid 并行化
流水线优化api-schedule-syncT.Pipelined num_stages、核间/核内流水线
多核负载均衡api-schedule-syncT.Persistent 缓存友好调度
排序api-computeT.tile.sort → T.tile.merge_sort → T.tile.topk
Kernel 调试api-schedule-syncT.printf、T.dump_tensor、get_kernel_source()

API 速查表

Kernel 定义

API说明
@T.prim_func定义 kernel 函数
T.Tensor((M, N), dtype)声明张量参数
T.Kernel(block_num, is_npu=True) as (cid, vid)Kernel 启动上下文
@jit(out_idx=[-1], pass_configs={...})JIT 编译装饰器
T.dyn['K']/T.dynamic('K', 'int32')动态 shape

内存分配

API说明模式
T.alloc_shared(shape, dtype)shared 层级(编译器自动判断 L1/UB)Developer
T.alloc_fragment(shape, dtype)fragment 层级(编译器自动判断 L0A/B/C)Developer
T.alloc_var(dtype, init=...)标量变量Developer
T.alloc_ub / T.alloc_L1 / T.alloc_L0A/L0B/L0C显式指定存储层级Expert

数据搬运与计算

API说明
T.copy(src, dst)GM/L1/UB/L0 之间搬运数据
T.tile.atomic_add(dst_gm, src_local)将本地 tensor 原子累加到 GM;V1 支持 local/UB → GM
T.gemm_v0(A, B, C, transpose_A, transpose_B, init)标准 GEMM
T.mma(A, B, C, init)NPU MMA 指令
T.reduce_sum/max/min(buffer, out, dim)按维度归约

循环与调度

API说明
T.serial(N)/T.unroll(N)普通循环 / 循环展开
T.Parallel(ext0, ext1, ...)元素级并行循环
T.Pipelined(range, num_stages=N)流水线并行
T.Persistent(domain, wave_size, index)持久化调度

同步与调试

API说明
T.set_flag / T.wait_flag核内流水线同步
T.barrier_all() / T.pipe_barrier(pipe)管线屏障
T.set_cross_flag / T.wait_cross_flag核间同步
T.sync_all()全局同步
T.printf(fmt, *args)设备端格式化打印
T.dump_tensor(tensor, desc, size, shape_info)Tensor 转储

常用 pass_configs

配置项说明
TL_ASCEND_AUTO_SYNC: True自动同步插入
TL_ASCEND_MEMORY_PLANNING: True自动内存规划
TL_ASCEND_AUTO_CV_COMBINE: True自动 CV 分离(核间流水线)
TL_ASCEND_AUTO_CV_SYNC: True自动核间同步(核间流水线)

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

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

http://www.zskr.cn/news/1508802.html

相关文章:

  • 注册公司执照代办靠谱的品牌有哪些? - mypinpai
  • 2026年上海电器设备回收服务能力观察:沪豫合与全城上门有何不同? - 优质品牌商家
  • 量子计算与大语言模型交叉研究:评估与挑战
  • Qucs-S四大仿真引擎深度评测:Ngspice、Xyce、SpiceOpus、Qucsator特性对比与选择指南
  • 从入门到精通:后端开发工程师的成长路径
  • BERT-Small代码实现原理深度解析:4层轻量级模型的预训练与推理全流程指南
  • 2026年导电布胶带口碑排名,哪个好? - mypinpai
  • Open API Spex完全指南:Elixir Plug应用的终极API规范工具
  • 2026年6月恒温恒湿箱厂家权威榜单发布:专业能力与市场口碑双重认证 - 品牌推荐
  • LDA-1B机器人基础模型:多模态扩散变换器与DINOv3视觉编码解析
  • 2026年6月珠海家装公司推荐:辰臻装饰领衔,五家实力品牌深度横评 - 品牌推荐
  • 南京教育连锁店做GEO应该怎么选服务商?2026本地靠谱GEO服务商推荐与选型指南 - 企业新闻快传
  • Python知识增强系统:10个机制穿透式项目实战
  • 2026年企业搬迁服务口碑排名,靠谱的有哪些? - 工业设备
  • 《魔域》辅助开发笔记:如何安全高效地遍历与读取魔石商店的所有商品信息
  • 10分钟掌握Python数据科学生态:gh_mirrors/bo/Books-项目的Pandas与NumPy速查手册
  • 伺服电机仿真(35):Simulink仿真实践——模型线性化与频域分析工具使用
  • 别再死记硬背PCA了!从Rayleigh商到Courant-Fischer定理,图解主成分分析(PCA)的数学根基
  • 3步打造AI美食家:用PyTorch轻松实现智能食物识别系统
  • 鸿蒙原生开发——从零构建密码生成器
  • 戈壁风电场箱变监控与安全防护落地实战
  • 193.苹果设备shsh2 blob降级攻略|tsschecker伪造验证+idevicerestore落地
  • 全球公共代谢组数据的全局图谱绘制
  • 2026年长城故宫升旗一日游十大品牌推荐 - 工业设备
  • 【Springboot毕设全套源码+文档】基于Java的校园故障智能报修管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • MeloTTS多语种TTS引擎完整指南:从零部署到实战应用
  • 当通讯系统不能“上云”,私有化安全协作平台如何护航数字化转型
  • Altair+pynarrative:用声明式图表与自动叙事构建数据决策链
  • 2026年深圳电子元器件回收行业格局:谁在领跑?实战案例与机构深度解析 - 优质品牌商家
  • Python PDF自动化:文本提取、OCR识别与动态写入实战