PTO 全称 Parallel Tile Operation,即并行 Tile 操作,是 Ascend CANN 定义的面向 Tile 编程的虚拟指令集架构。本仓在该架构下共提供 124 条 Tile 指令,其中包含一套片间通信扩展指令。这些指令覆盖逐元素计算、归约、广播、矩阵乘与 GEMV、数据搬运、类型转换、布局变换、排序、Union 计算等计算与变换场景,以及同步、资源配置等系统控制场景,可供上层框架、算子实现与编译工具链统一调用。
PTO 指令统一采用 Tile 块级抽象,命名风格为:指令类别前缀+计算名称,整体首字母大写,采用 PascalCase 风格。其中绝大多数指令以 [object Object] 为前缀,表示面向 Tile 对象的操作;不规则访存指令以 [object Object] 为前缀,[object Object] 表示 memory,如 [object Object]、[object Object];跨核同步屏障为 [object Object]。下文为了描述方便,将本文中的接口统称为 PTO 接口。
表 1 关键指令类别
PTO 接口的头文件位于 CANN 安装目录下的 [object Object] 子目录中,例如 [object Object]。[object Object] 请替换为 CANN 软件安装后的存储路径,以 root 用户安装为例,默认路径为 [object Object]。各头文件的用途如下表所示。
表 2 头文件列表