ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

PTO 虚拟指令集架构手册(VISA)解析:从架构契约到后端一致性的系统级指南

PTO 虚拟指令集架构手册(VISA)解析:从架构契约到后端一致性的系统级指南 PTO 虚拟指令集架构手册VISA解析从架构契约到后端一致性的系统级指南【免费下载链接】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本文是 CANNpto-isa仓库中《PTO 虚拟指令集架构手册》中文版docs/mkdocs/src/manual/index_zh.md及其全部章节的系统化导读与深度解读。PTOParallel Tile Operation是 Ascend CANN 面向 Tile 级运算设计的虚拟指令集架构Virtual ISA, VISA本文完整展开手册定义的架构级契约执行模型、状态与类型、Tile 与 GlobalTensor、同步、指令族契约、编程模型、IR/字节码交换、内存顺序与一致性、后端画像与一致性等级并给出与仓库中逐条指令文档、公共 API 头文件与生成工具链的对应关系。读完本文你将理解 PTO 的架构层究竟约束了什么、放开什么掌握用MUST/SHOULD/MAY规范术语阅读架构文档的方法以及如何按统一节奏范围-语法-语义-约束-诊断-兼容为一条新指令撰写符合规范的契约文档并能依据一致性等级Level 03评估后端实现与虚拟 ISA 的符合程度。0 手册定位一套系统级契约而非指令手册《PTO 虚拟指令集架构手册》在仓库中的位置是 docs/mkdocs/src/manual/index_zh.md英文版为 index.md它是 PTO VISA 的架构级总纲。手册开篇就划清了自身的边界本手册定义 PTO 虚拟指令集架构Virtual ISA, VISA的架构级契约。它规定了前端、IR 流水线、后端与运行时在执行 PTO 程序时MUST 保持的行为。而逐条指令的语义权威来源是 docs/isa 下的*_zh.md页面仓库中如 TADD_zh.md、TLOAD_zh.md、TMATMUL_zh.md 等百余个指令页面。二者分工明确逐条指令页面单条指令的语义与约束这条指令做什么。本手册围绕这些语义的系统级契约整个程序怎么被构造、验证、降层、执行、保持一致性。因此手册面向的读者是实现 PTO 降层链路的编译器与 IR 工程师实现目标合法化与代码生成legalization codegen的后端工程师需要验证架构可见行为的内核开发者仿真器与一致性测试开发者。0.1 文档约定统一的规范节奏手册借鉴 PTX / Tile-IR 的结构化写法同时保持 PTO 的架构特性。章节在适用时采用统一节奏这也是阅读手册任何一章都可以预期的骨架范围Scope语法/形式Syntax / Form语义Semantics约束Constraints诊断Diagnostics兼容Compatibility0.2 规范性术语RFC 2119 风格手册中的MUST、MUST NOT、SHOULD、MAY均为规范性术语含义如下术语含义MUST/MUST NOT强制架构要求违反即为不符合规范SHOULD推荐要求偏离时需要明确理由并记录MAY架构显式允许的可选行为在阅读后文所有契约时需要时刻区分这三档强度——它决定了某条规则是硬性架构约束还是推荐实践。0.3 权威来源优先级文档冲突时如何对齐架构文档之间不可避免会出现措辞差异。手册给出了明确的冲突裁决顺序docs/isa/*_zh.md逐条指令语义与约束语义的最终权威include/pto/common/pto_instr.hpp公共 API 形态与重载契约接口的最终权威本手册分层模型、架构契约与一致性策略系统级契约。其中第 2 项在仓库中确认存在include/pto/common/pto_instr.hpp 定义了 134 个唯一指令 API并配套实现文件 pto_instr_impl.hpp是手册 附录 D 中头文件同步状态的核对基准。0.4 推荐阅读顺序手册本身建议的阅读路径是一个从抽象到具体、从模型到实现的递进结构总览执行模型状态与类型Tile 与 GlobalTensor同步指令集概述编程指南虚拟 ISA 与 IR字节码与工具链内存顺序与一致性后端画像与一致性附录 A术语表附录 B指令契约模板附录 C诊断分类附录 D指令族矩阵本文将沿这条主线展开并将各章要点与其对应的仓库证据一一对应。1 总览PTO 架构的设计目标与架构边界1.1 四大设计目标01-overview_zh.md 明确了 PTO 虚拟 ISA 的设计目标在硬件代际演进中提供稳定架构契约应用与工具链不必随每一代硬件重写以 Tile 为中心定义语义并显式定义有效区域active region行为语义在有效域内精确域外行为被显式声明为未指定明确区分架构定义architecture-defined与实现定义implementation-defined前者所有实现必须一致后者允许后端差异但必须文档化在内建接口、IR 与后端代码生成之间建立可验证桥接三者通过契约而非惯例对齐。1.2 PTO 的架构特征与通用 GPU ISA 写法的差异与通用 GPU ISA 相比PTO 将以下概念提升为一等架构对象Tile 为主计算单位指令语义在 Tile 域上定义而非标量线程有效区域优先Rv/Cv有效行/有效列定义架构计算覆盖范围位置-意图模型Mat/Left/Right/Acc/Bias/Scale等位置-意图角色参与合法性约束详见第 3、4 章双编程模型Auto与Manual都是架构层公民详见第 2、7 章事件中心同步顺序通过事件与 event synchronization 显式表达详见第 5 章。1.3 架构边界定义什么、不定义什么架构层定义有效区域内可观察的指令结果必须满足的顺序与同步语义对用户和工具链可见的合法性边界。架构层不定义微架构调度细节片上布局的具体实现后端特定优化策略。后端差异MUST以实现定义约束形式记录——这是手册反复出现的核心纪律差异可以存在但不能沉默地存在。1.4 权威来源与指令族分类PTO 的权威来源组合为单条指令语义docs/isa/README_zh.md逐条语义权威公共 API 签名include/pto/common/pto_instr.hpp。指令族按以下层次组织与第 6 章、附录 D 一一对应同步与资源绑定逐元素与标量/Tile 运算归约/扩展运算内存搬运GM - Tile与索引内存操作矩阵/向量矩阵运算布局与数据搬运变换不规则与复杂操作。1.5 兼容性原则SHOULD优先采用增量演进而非破坏性变更破坏性架构行为变更MUST包含显式版本策略与迁移说明实现定义行为MUST在手册、IR、后端文档中保持一致标注。2 执行模型Host / Device / Core 三代理抽象02-machine-model_zh.md 定义了虚拟 ISA 程序所面向的抽象执行模型——它描述架构可见的顺序与职责边界不描述微架构内部实现。2.1 三个概念执行代理抽象 PTO 机器由三个概念代理构成代理职责Host machine准备负载、提交执行、管理全局资源Device machine在执行资源间调度 Tile 程序Core machine执行 Tile/标量指令和同步原语实现可以在内部采用不同映射例如某个后端可能把 Device 与 Core 合并实现但MUST保持架构可见行为一致。2.2 程序粒度与调度规则PTO 程序以Tile 粒度运行程序是对 tile、scalar、memory、event 值进行操作的有序指令序列执行单元MAY并发处理相互独立的 Tile 程序可见顺序MUST遵循数据依赖与显式同步语义。调度策略本身属于实现定义但受架构规则约束独立工作MAY乱序并行执行有依赖的工作MUST满足要求的 happens-before 关系后端/运行时MAY采用 SPMD、MPMD 或混合派发模型。2.3 三个架构可见顺序域顺序语义在三个域上定义这是理解 PTO 一致性模型的钥匙程序顺序域在单一依赖链中后续操作 MUST 观察到前序已提交效果事件/同步域事件操作与 event synchronization MUST 建立架构定义的顺序点内存可见性域TLOAD/TSTORE的可见性遵循第 11 章即 10-memory-ordering-and-consistency_zh.md内存顺序约束。2.4 Auto 与 Manual 职责分工Auto 模式编译器/运行时 SHOULD 自动插入合法同步与放置策略用户意图保留为架构可见语义执行细节由工具链管理Manual 模式程序员负责显式放置、顺序控制与流水线安全调度工具链 MUST 保留显式编写的同步语义。2.5 实现定义边界以下内容属于实现定义且 MUST 在后端画像中说明调度启发策略、流水线占用与发射细节、内部缓冲与临时放置、后端支持子集的合法性约束。关键约束是这些实现差异 MUST NOT 改变架构定义语义。3 状态与类型Tile 合法性维度与有效区域语义03-state-and-types_zh.md 定义了虚拟 ISA 操作可见的架构状态模型与类型契约。3.1 架构状态模型架构层抽象以下概念状态Tile 值及其元数据包含有效区域元数据标量值与立即数属性全局内存视图与地址同步/事件相关的可见顺序状态。后端内部临时状态不在本章范围内除非它影响架构可观察行为。3.2 类型类别PTO 虚拟 ISA 的类型类别包括Tile 类值!pto.tile...内存/全局视图!pto.memref...或等价类标量整型/浮点/index 类用于同步依赖的事件/token 类。每个指令族 MUST 定义每个操作数/结果位置可接受的类型类别——这是 IR 结构验证的基础见第 8 章。3.3 Tile 合法性四维度Tile 合法性受以下维度约束元素类型dtype形状与有效区域兼容性位置-意图角色Mat/Left/Right/Acc/Bias/Scale等布局与对齐约束后端支持子集。虚拟 ISA 定义合法性接口哪些维度要检查具体支持集合由后端画像定义哪些组合被支持。3.4 有效区域语义Rv/Cv有效区域是架构一等语义语义定义仅作用于声明的有效域索引有效域之外的值在未明确说明时为未指定多输入操作 MUST 定义域兼容规则。标准记号使用Rv与Cv表示有效行/有效列。这一设计直接呼应第 1 章有效区域优先的架构特征——例如TLOAD加载时只有Rv × Cv内的元素被定义域外数据不被承诺。3.5 属性契约与诊断要求指令属性比较模式、舍入模式、变换模式等MUST 定义类型与取值域约束、默认行为如存在、对语义与合法性检查的影响、无效取值的诊断要求。类型/状态验证诊断 SHOULD 包含操作数位置、期望与实际类型类别、相关合法性维度dtype/layout/location/shape、面向 CI 稳定性的确定性错误标识。4 Tile 与 GlobalTensorGM ↔ Tile 搬运契约04-tiles-and-globaltensor_zh.md 定义了 Tile 操作数与全局内存操作数之间的数据模型契约。4.1 Tile 数据模型Tile 是计算类指令的主要架构数据对象契约包含元素类型与形状类别有效区域元数据Rv、Cv在指令合法性中要求的位置-意图角色后端合法性需要的布局/对齐属性。4.2 GlobalTensor 数据模型GlobalTensor或等价内存视图表示可寻址的全局内存数据其架构可见契约包括与相关 Tile 操作兼容的元素类型内存指令要求的地址与步长解释在顺序约束下的可见性行为。4.3 GM ↔ Tile 搬运契约TLOAD与TSTORE指令族是 GM 与 Tile 的主要桥接仓库中对应 TLOAD_zh.md 与 TSTORE_zh.md。一致性实现 MUST 保持定义有效域内的元素映射语义在事件/event synchronization 与内存模型约束下的顺序保证量化/缩放与模式属性的已记录行为。4.4 形状兼容、布局变换与诊断对于搬运和布局变换操作源域与目标域 MUST 满足指令定义的兼容约束域外行为 MUST 要么显式定义如 pad/fill要么声明为未指定后端合法性检查 MUST 对不支持的 shape/layout 组合给出确定性拒绝。布局变换类操作extract/insert/reshape/transpose 等仓库对应 TEXTRACT_zh.md、TINSERT_zh.md、TRESHAPE_zh.md、TTRANS_zh.md是对 Tile 域的架构级变换MUST 定义索引空间映射、有效域映射、部分覆盖域行为、存在硬件差异时的实现定义约束。搬运/布局诊断 SHOULD 报告出错操作与操作数位置、不兼容的 shape/layout/location 维度、相关索引/偏移参数上下文、可复现 CI 的确定性错误文案。5 同步事件中心的生产者/消费者契约05-synchronization_zh.md 定义了虚拟 ISA 程序的架构可见同步与顺序语义。5.1 同步原语PTO 同步机制包括基于事件的依赖链接通过event synchronization建立生产者/消费者顺序点由架构语义抽象的后端低层同步原语。在 Auto 模式下可使用工具链自动同步在所有模式下显式同步都保持架构合法。5.2 event synchronization 契约event synchronization 用于在操作集合之间建立顺序关系。一致性实现 MUST 保证顺序点之前的操作结果按照内存模型对顺序点之后的消费者可见优化与降层过程保持同步语义不支持的同步形式以确定性诊断拒绝。5.3 冒险类别同步需求从何而来同步需求通常来自四类冒险冒险场景RAW读后写消费者读取生产者尚未写完的数据WAR写后读资源复用新写入覆盖旧值但旧读者尚未完成WAW写后写两次写入的顺序约束跨流水线交接内存/向量/矩阵域之间的交接后端 MAY 在内部优化冒险处理但MUST 保持架构可观察顺序。5.4 事件与依赖模型事件模型 MUST 提供确定性依赖关系以支持生产者与消费者指令组之间的流水线交接Tile 与内存资源的安全复用在等价程序顺序与依赖描述下可复现执行。5.5 Auto 与 Manual 同步职责Auto 模式中编译器/运行时 SHOULD 自动插入合法同步Manual 模式中当依赖无法自然保证时程序员 MUST 提供显式同步工具链MUST NOT 删除必要的用户显式同步除非证明存在等价顺序保持。6 指令族与契约从 8 大族到单条指令文档06-instructions_zh.md 定义了指令族级的规范契约逐条语义仍以docs/isa/*_zh.md为准。6.1 指令族分类8 族同步与资源绑定Tile-Tile 逐元素运算Tile-标量与 Tile-立即数运算轴归约与扩展运算内存操作GM - Tile与索引变体矩阵乘与 GEMV 运算数据搬运与布局变换不规则/复杂操作。指令清单的源同步由 docs/isa/manifest.yaml 维护——这是附录 D 矩阵自动生成的数据源。6.2 指令族通用契约每个指令族 MUST 定义操作数/结果类别与位置规则语义作用域有效区域处理必需约束dtype/layout/location/shape同步与顺序影响非法使用的诊断行为实现定义边界。6.3 有效区域优先规则除非具体指令另有定义语义仅在操作有效域内定义域外结果为未指定多输入操作 MUST 定义域组合规则。6.4 各指令族摘要同步与资源绑定包含 event synchronization、TASSIGN见 TASSIGN_zh.md以及模式/配置类指令如SETFMATRIX、SET_IMG2COL_RPT、SET_QUANT_SCALAR等。这类操作定义顺序或状态配置效果MUST 保持架构顺序语义。逐元素与标量变体包含算术、位运算、比较、选择、一元数学以及标量融合形式如TADD/TADDS、TMUL/TMULS、TCMP/TCMPS、TEXP、TSEL等。操作 MUST 定义逐元素行为与模式相关约束。归约/扩展族包含按行/按列归约及广播扩展如TROWSUM、TCOLSUM、TROWEXPAND*、TCOLEXPAND*系列。操作 MUST 定义轴语义与域兼容关系。内存指令族包含 load/store/prefetch 与索引 gather/scatterTLOAD、TSTORE、TPREFETCH、MGATHER、MSCATTER等。操作 MUST 定义 Tile 域与内存域的映射关系。矩阵运算族包含TMATMUL*TMATMUL_zh.md、TMATMUL_ACC_zh.md、TMATMUL_BIAS_zh.md、TMATMUL_MX_zh.md 等与TGEMV*TGEMV_zh.md 等。契约 MUST 定义累加域、操作数角色合法性与精度模式交互。搬运/布局族包含 extract/insert/reshape/transpose/fillpad 等变换。契约 MUST 定义索引映射与域保持规则。复杂/不规则族包含 sort/quant/partial/gather 变体及其他特种操作如TSORT32、TMRGSORT、TQUANT*、TGATHER、THISTOGRAM等。契约 MUST 显式标注实现定义部分。6.5 单条指令文档契约逐条指令页面 SHOULD 按附录 B 模板组织Syntax → Operands → Semantics → Constraints → Diagnostics → Implementation-defined behavior → Compatibility notes。6.6 覆盖与同步策略指令族与指令索引 MUST 与以下来源保持同步docs/isa/manifest.yamlinclude/pto/common/pto_instr.hppdocs/tools 下的索引/矩阵生成工具如 gen_isa_indexes.py、gen_virtual_manual_matrix.py、check_isa_consistency.py。7 编程模型契约Auto 与 Manual 的安全编程边界07-programming_zh.md 定义 Auto 与 Manual 两种模式下的架构安全编程契约重点是正确性与可移植边界而不是后端特定优化技巧。7.1 Auto 模式契约工具链 SHOULD 自动推导合法放置、顺序与调度生成代码 MUST 保持虚拟 ISA 语义在等价源码与选项下用户可见行为 MUST 保持确定性。7.2 Manual 模式契约程序员 MAY 显式控制放置与同步用户显式编写的依赖与顺序点 MUST 被保留非法手工配置 MUST 以可执行诊断失败。7.3 可移植安全编程规则面向跨后端可移植的程序 SHOULD保持在文档定义的指令族合法域内避免依赖实现定义副作用在数据流无法保证顺序时显式使用同步将 dtype/layout/location 组合限制在后端交集画像内。7.4 性能导向且可移植的模式可移植模式包括显式且域安全的 tiling 与有效区域管理通过事件/event synchronization 建立清晰的生产-消费边界使用能力检查进行后端受控特化对不支持组合提供确定性回退路径。7.5 反模式应避免以下做法不具可移植性SHOULD 避免将有效域外值当作有意义数据读取依赖未文档化流水线时序行为在无依赖定义时假设隐式顺序未经画像门控直接编码后端特定假设。7.6 调试与验证流程建议的五步流程从纯结构到后端差异逐步深入结构正确性检查类型、元数、属性合法域检查shape/layout/location 组合同步检查依赖完备性后端一致性检查画像约束跨代表目标差分行为检查。8 虚拟 ISA 与 IR三层模型与验证边界08-virtual-isa-and-ir_zh.md 定义了 PTO 虚拟 ISA 语义与 PTO AS/降层链路之间的契约。8.1 三层契约模型虚拟 ISA 层架构可见语义AS 层用于验证与变换的结构化强类型表示后端降层层目标相关合法化与代码生成。后端特化 MUST 保持虚拟 ISA 可观察行为。8.2 AS 对象模型一致性 PTO AS 模型 SHOULD 定义模块与符号契约函数/基本块结构及顺序SSA 值拓扑操作 schema名称、操作数、结果、属性、副作用显式同步与内存副作用。8.3 两层验证边界结构验证器IR 层MUST 验证操作 schema、元数、类型类别与必需属性MUST 与目标无关目标合法性验证器后端层MUST 验证选定后端画像下的 dtype/layout/location/shape 组合MUST 对不支持组合输出确定性诊断。8.4 降层不变量降层 MUST 保持有效区域语义显式顺序依赖event、event synchronization、内存顺序点架构定义域内的操作语义。降层MUST NOT 将实现定义行为静默改写为架构定义行为。8.5 兼容策略与最小一致性场景SHOULD 优先采用增量 AS 演进破坏性 AS 契约变更 MUST 包含版本与迁移说明未知必需字段 MUST 验证失败已弃用结构 SHOULD 至少在一个兼容窗口内可解析。一致性验证 SHOULD 包含结构验证器合法/非法样例测试按后端画像划分的合法性通过/失败矩阵IR 与字节码往返检查与逐条指令语义对齐的差分检查。9 字节码与工具链序列化交换与往返保证09-bytecode-and-toolchain_zh.md 定义 PTO IR 与字节码形态之间的实际交换与验证契约。9.1 表示层次虚拟 ISA 语义PTO IR 结构化形态字节码序列化交换形态。层间转换 MUST 保持架构可观察语义。9.2 字节码模块契约v1一致性 v1 模块 MUST 保留操作/基本块/函数顺序SSA 定义-使用拓扑操作数/结果类型信息必需属性与模式元数据符号与入口身份。若无法无损保留序列化MUST 确定性失败。9.3 验证流水建议前端生成 PTO IR运行结构验证器IR 序列化为字节码字节码反序列化为 IR再次运行结构验证器可选运行目标合法性验证器。CI SHOULD 覆盖前 1–5 步。9.4 诊断契约与最小错误类别诊断 MUST 满足文本形态具备定位信息、对等价输入具备确定性、提供期望与实际约束差异。最小错误类别解析错误结构验证错误字节码格式/兼容错误目标合法性错误。9.5 兼容策略未知字段处理默认规则演进策略 MUST 定义 schema 版本字段、向后兼容窗口、未知字段与未知操作处理规则。默认策略情形默认行为未知必需字段拒绝未知可选字段除非兼容模式显式允许否则拒绝未知操作以确定性未支持操作诊断拒绝9.6 往返保证与运行验收清单对支持特性text - IR - bytecode - IR - textSHOULD 保持语义、验证相关结构与必需元数据不要求文本逐字节一致。每次发布 SHOULD 验证解析器正反例套件结构验证一致性套件畸形字节码鲁棒性测试往返回归语料诊断文案稳定性快照。10 内存顺序与一致性依赖有序一致性基线10-memory-ordering-and-consistency_zh.md 定义了虚拟 ISA 操作的架构可见内存顺序与可见性保证。10.1 内存对象与顺序域架构可见内存域包括Tile 本地值通过内存操作访问的全局内存视图影响可见性边界的同步状态。后端私有缓存/缓冲属于实现定义但 MUST 满足架构可见顺序结果。10.2 一致性基线依赖有序一致性基线模型为依赖有序一致性dependency-ordered consistency数据依赖与显式同步定义必须满足的可见顺序相互独立操作在内部 MAY 重排必需同步点 MUST 建立定义的可见性关系。10.3 顺序保证一致性实现 MUST 保证在必需同步/顺序点之后生产者写入对依赖消费者可见显式依赖链中的内存操作保持链路顺序event synchronization 与事件依赖定义的顺序在内存可见性上得到体现。10.4 未指定与实现定义行为在定义域外访问或解释数据可能为未指定时序与缓存策略细节属于实现定义后端内存优化仅在不破坏可见顺序语义时允许。10.5 编程要求与一致性测试程序 SHOULD在生产者/消费者边界使用显式同步在无定义依赖时避免假设隐式全局顺序避免依赖未指定域外值。在非工具自动同步场景下Manual 模式程序员 MUST 显式确保顺序。一致性测试 SHOULD 覆盖代表性依赖模式下的有序可见性场景。11 后端画像与一致性Level 03 等级体系11-backend-profiles-and-conformance_zh.md 定义了后端能力子集的描述方式以及一致性等级评估方法。11.1 后端画像模型后端画像 MUST 记录支持的指令族与操作形式支持的 dtype/layout/location/shape 组合同步与内存顺序限制实现定义行为边界对不支持特性的诊断策略。画像可对应具体目标例如A2/A3/A5 或 CPU 仿真器——这与仓库结构中的 include/pto/npuAscend NPU 各代实现、include/pto/cpuCPU 参考实现等目录一一对应。11.2 能力门控工具链 MUST 基于画像能力门控后端特化。当请求行为超出画像支持时编译/合法化 MUST 确定性失败或选择显式定义的回退路径。11.3 一致性四维度与四等级一致性评估维度语义一致性指令行为、合法性一致性契约验证、顺序一致性同步与内存可见性、诊断一致性确定性且可执行错误。建议的一致性等级等级名称内容Level 0解析/形态仅结构工具链正确性Level 1指令族合法性具备文档化指令族合法性与诊断Level 2指令语义代表性样例验证逐条语义Level 3跨层稳定性AS/字节码/后端转换后语义、顺序、诊断保持稳定后端 SHOULD 公布最高已验证等级及已知缺口。11.4 必需测试矩阵与变更管理画像一致性套件 SHOULD 包含按指令族划分的合法/非法组合测试同步与内存顺序场景测试精度/模式交互测试含混合精度路径文本/AS/字节码往返工具链测试诊断稳定性快照测试。后端行为变更时画像文档 MUST 在同一变更集中更新MUST 说明一致性影响对已发布等级的回归 MUST 视为发布阻断除非有明确豁免和理由。附录指南模板、诊断分类与指令族矩阵附录 B指令契约模板——新指令文档的写作规范appendix-b-instruction-contract-template_zh.md 定义了单条指令文档的标准章节结构新增指令页面与现有页面重构都应使用此模板。必需章节顺序# INSTR ## Scope → 标识指令族与设计意图说明本页定义架构语义还是后端补充约束 ## Syntax → 给出 PTO-AS 形式与公共 API 签名参考先规范形态再可选变体 ## Operands → 每个操作数/结果定义角色dst/src0/src1、类型类别、域/形状预期、位置/布局要求 ## Semantics → 定义有效域迭代模型、域内输出语义、明确域外行为已定义或未指定 ## Constraints → 列出合法性维度dtype/layout/location/shape、模式属性区分架构层要求与后端画像限制 ## Diagnostics → 定义确定性拒绝条件给出常见失败类别的期望/实际示例 ## Implementation-defined behavior → 枚举全部实现定义点指向后端特定细节文档位置 ## Compatibility → 行为变更时提供版本/迁移说明标注增量或破坏性变更 ## Examples附录 C诊断分类体系——稳定、可执行的错误契约appendix-c-diagnostics-taxonomy_zh.md 定义了工具链诊断的分类与稳定性要求。诊断质量契约确定性错误类别、确定性主消息形态、可执行上下文期望 vs 实际、在可用时提供源码定位。主诊断类别类别前缀用途典型场景PARSE_*PTO-AS 文本错误token 形态错误、文法违规、字面量/属性语法非法STRUCT_*IR 结构违规操作数/结果元数错误、必需属性缺失、类型类别不兼容LEGAL_*后端/画像合法性失败不支持的 dtype/layout/location/shape 组合、模式组合、指令变体ORDER_*同步/顺序错误缺失必需依赖边、非法同步形式、顺序契约违反BCODE_*交换/序列化失败不支持的字节码版本、section/record 畸形、未知必需字段/操作码稳定性策略错误类别标识在补丁版本内 MUST 稳定消息文案在 CI 快照中 SHOULD 尽量稳定文案实质变化应在发布说明中记录。附录给出的诊断示例格式可直接作为实现模板LEGAL_UNSUPPORTED_TUPLE: tmatmul operand src1 has unsupported tuple expected: layout in {fractal_a, fractal_b}, dtype in {fp16, bf16} actual: layoutrow_major, dtypeint8 context: backend_profileA3, op_locline 42附录 D指令族矩阵——138 条指令的源同步清单appendix-d-instruction-family-matrix_zh.md 由 docs/isa/manifest.yaml 自动生成是 PTO 虚拟指令族的源同步矩阵。覆盖统计分类指令数量同步1手动 / 资源绑定6逐元素Tile-Tile29Tile-标量 / Tile-立即数19轴归约 / 扩展28内存GM - Tile7矩阵乘9数据搬运 / 布局15复杂指令20Cross-core Communication4总计138头文件同步状态附录 D 记录的核对结论头文件清单来源include/pto/common/pto_instr.hpp134个唯一指令 APIManifest 清单来源docs/isa/manifest.yaml138条目头文件有但 manifest 缺失无manifest 有但头文件缺失TMATMUL_MX_HIF4、TPREFETCH_ASYNC、TQUANT_DN、TQUANT_HIF4即这些指令已在清单/文档中登记但公共头文件尚缺对应 API属于当前仓库已知的同步差异。矩阵本身按分类列出了全部指令及其图示模板、操作数契约与语义页面例如同步族SYNCALL→ SYNCALL_zh.md内存族TLOAD/TSTORE→ TLOAD_zh.md、TSTORE_zh.md矩阵乘族TMATMUL/TGEMV→ TMATMUL_zh.md、TGEMV_zh.mdCross-core CommunicationTALLOC/TPUSH/TPOP/TFREE→ TALLOC_zh.md、TPUSH_zh.md、TPOP_zh.md、TFREE_zh.md。附录 D 的定位是分类与覆盖追踪不替代逐条指令的规范化语义描述——这再次呼应了手册 0.3 节逐条指令页面是单条指令语义的权威来源的总体分工。结语从手册到仓库的完整映射通读整本手册可以提炼出 PTO 虚拟 ISA 架构契约的三条主线语义在有效域内定义域外显式声明Rv/Cv、位置-意图角色、布局对齐构成 Tile 合法性的完整维度逐条指令页是语义的最终权威顺序通过事件与显式同步表达依赖有序一致性为基线程序顺序域、事件/同步域、内存可见性域三层顺序模型贯穿执行模型、同步与内存一致性三章实现差异必须文档化并被画像门控架构定义与实现定义的严格区分、后端画像的能力门控、Level 03 一致性等级共同构成跨后端可移植 每后端可特化的契约框架。这套契约在仓库中有完整的落地点语义权威见 docs/isa/README_zh.md 及其下的逐条指令页面API 形态见 include/pto/common/pto_instr.hpp清单与同步核对依赖 docs/isa/manifest.yaml 与 docs/tools 下的生成/检查脚本后端参考实现可对照 include/pto/npu 与 include/pto/cpu。对于编译器/IR 工程师、后端工程师、内核开发者与一致性测试开发者这份手册既是实现降层链路的行为契约也是评估任一后端符合程度的度量衡。【免费下载链接】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),仅供参考
返回列表