当前位置: 首页 > 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.jsqmd.com/news/997034/

相关文章:

  • STM32H743硬件IIC驱动+AT24C02 EEPROM读写封装(含LED调试指示)
  • 从URL设计源头避免414:前端与后端工程师都该知道的5个最佳实践
  • go-cache无法清除cache.什么cache可以
  • 注册公司执照代办靠谱的品牌有哪些? - mypinpai
  • 终极GTA5菜单指南:YimMenu完整教程与安全使用手册
  • 2026年上海电器设备回收服务能力观察:沪豫合与全城上门有何不同? - 优质品牌商家
  • ZLMediaKit转流性能优化:为什么同协议转发能省掉组帧?一个Demo带你实测
  • 量子计算与大语言模型交叉研究:评估与挑战
  • Qucs-S四大仿真引擎深度评测:Ngspice、Xyce、SpiceOpus、Qucsator特性对比与选择指南
  • 从入门到精通:后端开发工程师的成长路径
  • 佳能清零软件全新版本,ts3380,ts9020,mg3640s,mg3680,g3800,g3000报错5b00,5b02,5b04,1700,1702,1704,p07,e08亲测完美维修好了。
  • BERT-Small代码实现原理深度解析:4层轻量级模型的预训练与推理全流程指南
  • 2026年导电布胶带口碑排名,哪个好? - mypinpai
  • PySpark MLlib工业级机器学习实战:从开发到上线的全链路指南
  • Open API Spex完全指南:Elixir Plug应用的终极API规范工具
  • 如何将图片传输到手机
  • 给单片机“喂”程序:保姆级图解Intel HEX文件格式与数据合并原理
  • 伺服电机仿真(34):Simulink仿真实践——子系统封装与模型库管理(进阶篇)
  • 北京游学机构推荐:包含清北名校路线的研学机构推荐 - 品牌2026
  • 别再傻傻只用端口VLAN了!华为交换机MAC-VLAN实战:让员工电脑‘刷脸’上网,访客自动隔离
  • 从‘插松枝’到生产者-消费者模型:PTA L2-041题背后的经典并发思想浅析
  • 2026年6月恒温恒湿箱厂家权威榜单发布:专业能力与市场口碑双重认证 - 品牌推荐
  • LDA-1B机器人基础模型:多模态扩散变换器与DINOv3视觉编码解析
  • 解决Amlogic设备Armbian系统无线网卡驱动缺失问题
  • 2026年靠谱的衣柜定制专业公司排行榜 - mypinpai
  • SleepingOwlAdmin快速入门:15个核心功能详解与实战演示
  • 建议所有演唱会主办都来学佛山「7时代·音乐现场」
  • NVIDIA Profile Inspector完整指南:免费解锁200+隐藏设置,轻松优化显卡性能
  • 避开这些坑!基于GaN器件CGH40010F的Doherty功放ADS仿真常见误区解析
  • 2026年6月珠海家装公司推荐:辰臻装饰领衔,五家实力品牌深度横评 - 品牌推荐