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

CANN PTO ConvTile编程模型

ConvTile 编程模型

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

PTO Lib 程序可基于ConvTile编写卷积相关算子。ConvTile是固定容量的 2D 到 6D 缓冲对象,也是 PTO 卷积类操作中的主要计算单元和数据搬运单元。

从概念上说,ConvTile驻留在片上 Tile 存储中(类似寄存器文件或片上 SRAM),并通过TLOAD/TSTORE与全局内存(GM)之间搬运数据。

本文档说明include/pto/common/pto_tile.hpp中的 C++ConvTile类型及其布局和形状约束。

ConvTile 表示什么

一个ConvTile主要由以下几类属性定义:

  • 位置(Location):该 Tile 所属的逻辑存储类别(如矩阵/立方寄存器等)。
  • 元素类型(Element type):标量元素类型(如floathalfint8_t等)。
  • 缓冲区大小(Buffer size)ConvTile的静态缓冲容量。
  • 布局(Layout):如NCHWNHWCNC1HWC0等,用于指导 lowering 和目标相关优化路径。
  • 形状(Shape)pto::ConvTileShape<...>,支持最多 6 个维度。

pto::ConvTile类型

ConvTile通过 C++ 模板类型声明:

pto::ConvTile< pto::TileType Loc_, Element_, BufferSize_, pto::Layout_ layout, pto::ConvTileShape Shape_ >;

位置(TileType

TileType表示 Tile 的逻辑/物理存储类别,同时参与重载选择和编译期检查。

常见位置包括:

  • TileType::Vec:向量 Tile 存储(UB / 向量流水线)。
  • TileType::Mat:通用矩阵 Tile 存储(矩阵 L1)。

每条指令允许使用哪些位置,应以docs/isa/下对应指令文档为准。

容量(BufferSize_

BufferSize_定义了 Tile 对象的静态容量。多数指令要求 Tile 具备静态形状,以便在编译期进行特化和优化。

布局(pto::Layout

ConvTile包含一个布局枚举,如:

  • NCHW
  • NHWC
  • NC1HWC0
  • FRACTAL_Z
  • FRACTAL_Z_S16S8

布局信息会影响后端实现、lowering 路径以及特定目标上的快速路径选择。

形状(pto::ConvTileShape

pto::ConvTileShape<...Shapes>支持 1 到 6 个整型模板参数。每个维度既可以是编译期常量,也可以是pto::DYNAMIC(即-1)。

  • 静态维度保存在类型信息中,可通过ConvTileShape::staticShape[dim]获取。
  • 动态维度保存在运行时对象ConvTileShape::shape[dim]中,并由ConvTileShape(...)构造函数赋值。

构造函数会通过static_assert检查“运行时传入参数个数是否与动态维度数量一致”,因此若构造参数不匹配,会在编译期报错。

地址绑定(TASSIGN

在手动放置流程中,TASSIGN(tile, addr)用于把一个ConvTile对象绑定到实现定义的地址。

在自动模式中,TASSIGN(tile, addr)可能根据构建配置被处理为 no-op。

具体约束请参考docs/isa/TASSIGN.md

最小示例

#include <pto/pto-inst.hpp> using namespace pto; void example(__gm__ half* in, __gm__ half* out) { using TileT = ConvTile<TileType::Mat, half, 4096, Layout::NC1HWC0, pto::ConvTileShape<1, 1, 16, 16, 16>>; using GShape = Shape<1, 1, 16, 16, 16>; using GStride = Stride<1 * 16* 16* 16, 16* 16* 16, 16 * 16, 16, 1>; using GT = GlobalTensor<half, GShape, GStride, Layout::NC1HWC0>; GT gin(in); TileT tile5d; TASSIGN(tile5d, 0x0); TLOAD(tile5d, gin); }

【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa

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

http://www.jsqmd.com/news/783226/

相关文章:

  • CANN a2向量归约约束
  • MES、WMS、WCS 之外,还需要一个“工业执行 Runtime”吗?
  • 台州普金办公设备:台州有实力的打印机租赁公司 - LYL仔仔
  • 拒绝“人工智障”!看销售易AI CRM如何用硬核数据征服500强 - 资讯焦点
  • 苏州蔷薇吊装搬运:苏州设备搬运公司哪家专业 - LYL仔仔
  • 【必看】2026年 {计算题} |专项解析 ~ C:三点估算
  • CANN DeepSeek Indexer注意力优化
  • 实测2家热门京东e卡回收正规平台,京回收vs猎卡回收,避坑不亏! - 京回收小程序
  • 爱马仕(Hermes)AI智能体框架完整指南:从入门到部署
  • 可解释AI如何适配人类决策模式:从理性模型到快速节俭启发式
  • 天津佳艺空间装饰:靠谱家装服务的核心实力解析 - 奔跑123
  • CANN/ops-math PadV3Grad算子
  • 2026年自贡全案整装怎么选?一站式家装与智能家居避坑完全指南 - 优质企业观察收录
  • CANN/ops-nn ELU反向梯度算子
  • 中国AI CRM厂商测评:谁能真正扛起企业智能化增长的大旗? - 资讯焦点
  • 2026年水切割常规故障处理方案:成都水刀配件厂家技术支持能力横评 - 企业名录优选推荐
  • 更简易的事件分发器
  • GWAI:一站式AI平台如何革新引力波数据分析
  • 从等保测评到威胁情报:一文读懂2026年安卓安全监测的技术内幕
  • CANN/pyasc数据块归约API
  • 多模态大模型如何重塑科学教育:从认知减负到自适应学习
  • 法律AI的确定性追求:规则引擎与形式化方法的技术实践与边界
  • 国标新标杆,护眼新高度——独语A8重塑学生读写光环境 - 资讯焦点
  • 无需专程前往金店 孝感一区三市三县全城上门收金 山区乡镇均可接单 - 金掌柜黄金回收
  • 国内高锰酸盐指数水质在线监测仪十大品牌排名 - 仪表人小余
  • CANN/pypto hypot函数
  • RimSort终极指南:三步告别环世界MOD加载混乱的免费智能管理器
  • 2026年成都水刀配件厂家全景对标:从易损件痛点到源头采购一站式解决方案 - 企业名录优选推荐
  • CANN/pyasc复制函数文档
  • GWAI:深度学习与模块化架构重塑引力波数据分析