ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

PTO 虚拟 ISA 手册解析:Ascend CANN Tile 级指令集架构契约、执行模型与一致性体系

PTO 虚拟 ISA 手册解析:Ascend CANN Tile 级指令集架构契约、执行模型与一致性体系 PTO 虚拟 ISA 手册解析Ascend CANN Tile 级指令集架构契约、执行模型与一致性体系【免费下载链接】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导读PTOParallel Tile Operation是 Ascend CANN 设计的一套面向 Tile 级运算的虚拟指令集架构Virtual ISA, VISA。本文以仓库稳定入口 docs/PTO-Virtual-ISA-Manual_zh.md 及其章节化手册权威维护于 docs/mkdocs/src/manual/为主体系统讲解 PTO 的架构级契约执行模型、状态与类型、Tile 与 GlobalTensor 数据模型、同步语义、指令族分类、Auto/Manual 编程模型、虚拟 ISA 与 AS 分层、字节码与工具链、内存顺序一致性以及后端画像与一致性等级。读完本文你将掌握 PTO 虚拟 ISA 的完整契约骨架理解前端 IR 流水线、后端代码生成与一致性测试各自需要满足的架构约束并知道如何在仓库中逐条核对指令语义。一、手册定位、受众与阅读路径1.1 稳定入口与权威来源PTO-Virtual-ISA-Manual_zh.md 是 PTO 虚拟指令集架构手册的稳定入口页其章节化手册的权威来源维护在docs/mkdocs/src/manual/共 11 个正文章节与 4 个附录均有中英文版本如01-overview_zh.md、08-virtual-isa-and-ir_zh.md等。手册开篇index_zh.md就明确了边界手册定义 PTO 虚拟 ISA 的架构级契约规定前端、IR 流水线、后端与运行时在执行 PTO 程序时MUST 保持的行为逐条指令页面docs/isa/*_zh.md仍是单条指令语义的权威来源手册则定义围绕这些语义的系统级契约。1.2 受众手册面向四类工程师实现 PTO 降层链路的编译器与 IR 工程师实现目标合法化与代码生成的后端工程师需要验证架构可见行为的内核开发者仿真器与一致性测试开发者。1.3 文档约定与规范术语手册借鉴 PTX/Tile-IR 的结构化写法章节在适用时采用统一节奏范围 → 语法/形式 → 语义 → 约束 → 诊断 → 兼容。规范性术语遵循 RFC 惯例术语含义MUST/MUST NOT强制架构要求SHOULD推荐要求偏离时需要明确理由MAY架构显式允许的可选行为1.4 权威来源优先级文档冲突时按以下顺序对齐docs/isa/*_zh.md逐条指令语义与约束include/pto/common/pto_instr.hpp公共 API 形态与重载契约本手册分层模型、架构契约与一致性策略。推荐阅读顺序为index_zh.md→01到11章 → 附录 A/B/C/D对应 手册总览章节、虚拟 ISA 与 AS 契约、字节码与工具链契约、内存顺序与一致性、后端画像与一致性。二、设计目标与架构特征2.1 设计目标PTO 虚拟 ISA 的设计目标见 01-overview_zh.md是在硬件代际演进中提供稳定架构契约以Tile 为中心定义语义并显式定义有效区域行为明确区分架构定义与实现定义在内建接口、IR 与后端代码生成之间建立可验证桥接。2.2 一等架构对象与通用 GPU ISA 写法相比PTO 将以下概念提升为一等架构对象Tile 为主计算单位指令语义在 Tile 域上定义有效区域优先Rv/Cv定义架构计算覆盖位置-意图模型Mat/Left/Right/Acc/Bias/Scale等类型参与合法性约束双编程模型Auto 与 Manual 都是架构层公民事件中心同步顺序通过事件与 event synchronization 显式表达。2.3 架构边界架构层定义有效区域内可观察的指令结果、必须满足的顺序与同步语义、对用户和工具链可见的合法性边界。架构层不定义微架构调度细节、片上布局的具体实现、后端特定优化策略。后端差异 MUST 以实现定义约束形式记录。2.4 兼容性原则SHOULD 优先采用增量演进而非破坏性变更破坏性架构行为变更 MUST 包含显式版本策略与迁移说明实现定义行为 MUST 在手册、IR、后端文档中保持一致标注。一个实际例证仓库在 docs/isa/README_zh.md 中列出了自 PTO ISA v9.2.0 起关闭兼容窗口的历史接口如TADDC、TSYNC、TSUBVIEW等并给出迁移建议如TSYNC(events...)替换为普通 event 顺序表达或调用WaitAllEvents(events...)TFUSEDMULADD改名TMADD、TMULADDDST改名TMULA正是这一兼容策略在仓库中的落地。三、执行模型三层抽象代理与顺序域02-machine-model_zh.md 定义了虚拟 ISA 程序面向的抽象执行模型描述架构可见的顺序与职责边界不描述微架构内部实现。3.1 三个概念执行代理抽象 PTO 机器由三个概念代理构成Host machine准备负载、提交执行、管理全局资源Device machine在执行资源间调度 Tile 程序Core machine执行 Tile/标量指令和同步原语。实现可在内部采用不同映射但 MUST 保持架构可见行为一致。3.2 程序粒度与派发调度PTO 程序以Tile 粒度运行程序是对 tile、scalar、memory、event 值进行操作的有序指令序列执行单元 MAY 并发处理相互独立的 Tile 程序可见顺序 MUST 遵循数据依赖与显式同步语义独立工作 MAY 乱序并行执行有依赖的工作 MUST 满足要求的 happens-before 关系后端/运行时 MAY 采用 SPMD、MPMD 或混合派发模型。3.3 架构可见顺序域顺序语义在三个域上定义程序顺序域单一依赖链中后续操作 MUST 观察到前序已提交效果事件/同步域事件操作与 event synchronization MUST 建立架构定义的顺序点内存可见性域TLOAD/TSTORE的可见性遵循内存顺序约束第 11 章。3.4 Auto 与 Manual 职责划分Auto 模式编译器/运行时 SHOULD 自动插入合法同步与放置策略用户意图保留为架构可见语义执行细节由工具链管理Manual 模式程序员负责显式放置、顺序控制与流水线安全调度工具链 MUST 保留显式编写的同步语义。3.5 实现定义边界调度启发策略、流水线占用与发射细节、内部缓冲与临时放置、后端支持子集的合法性约束均属于实现定义且 MUST 在后端画像中说明且MUST NOT 改变架构定义语义。四、状态与类型系统03-state-and-types_zh.md 定义 PTO 虚拟 ISA 操作可见的架构状态模型与类型契约。4.1 架构状态模型架构层抽象以下概念状态Tile 值及其元数据含有效区域元数据、标量值与立即数属性、全局内存视图与地址、同步/事件相关的可见顺序状态。后端内部临时状态不在本章范围内除非影响架构可观察行为。4.2 类型类别PTO 虚拟 ISA 的类型类别包括Tile 类值!pto.tile...内存/全局视图!pto.memref...或等价类标量整型/浮点/index 类用于同步依赖的事件/token 类。每个指令族 MUST 定义每个操作数/结果位置可接受的类型类别。4.3 Tile 合法性维度Tile 合法性受以下维度约束元素类型dtype、形状与有效区域兼容性、位置-意图角色Mat/Left/Right/Acc/Bias/Scale等、布局与对齐约束后端支持子集。虚拟 ISA 定义合法性接口具体支持集合由后端画像定义。4.4 有效区域语义有效区域是架构一等语义语义定义仅作用于声明的有效域索引有效域之外的值在未明确说明时为未指定多输入操作 MUST 定义域兼容规则。标准记号使用Rv有效行与Cv有效列表示。这与术语表中对有效区域valid region的定义一致Tile 中在某个操作下具有语义定义的元素子集常写作[Rv, Cv]。4.5 属性契约与诊断要求指令属性比较模式、舍入模式、变换模式等MUST 定义类型与取值域约束、默认行为、对语义与合法性检查的影响以及无效取值的诊断要求。类型/状态验证诊断 SHOULD 包含操作数位置、期望/实际类型类别、相关合法性维度dtype/layout/location/shape、面向 CI 稳定性的确定性错误标识。五、Tile 与 GlobalTensor 数据模型04-tiles-and-globaltensor_zh.md 定义 Tile 操作数与全局内存操作数之间的数据模型契约。5.1 Tile 数据模型Tile 是计算类指令的主要架构数据对象其契约包含元素类型与形状类别、有效区域元数据Rv、Cv、指令合法性要求的位置-意图角色、后端合法性需要的布局/对齐属性。5.2 GlobalTensor 数据模型GlobalTensor或等价内存视图表示可寻址的全局内存数据架构可见契约包括与相关 Tile 操作兼容的元素类型、内存指令要求的地址与步长解释、顺序约束下的可见性行为。术语表补充它是对全局内存GM的带类型视图包含形状/步幅等元数据通常用于TLOAD/TSTORE。5.3 GM ↔ Tile 搬运契约TLOAD与TSTORE指令族是 GM 与 Tile 的主要桥接。一致性实现 MUST 保持定义有效域内的元素映射语义、在 event synchronization 与内存模型约束下的顺序保证、量化/缩放与模式属性的已记录行为。同一家族还包括TPREFETCH、TPREFETCH_ASYNC、TSTORE_FP、索引内存操作MGATHER/MSCATTER见 docs/isa/manifest.yaml 与 指令族矩阵附录。5.4 形状与域兼容性对搬运和布局变换操作源域与目标域 MUST 满足指令定义的兼容约束域外行为 MUST 要么显式定义如 pad/fill要么声明为未指定后端合法性检查 MUST 对不支持的 shape/layout 组合给出确定性拒绝。5.5 布局变换类操作extract/insert/reshape/transpose 等操作是对 Tile 域的架构级变换MUST 定义索引空间映射、有效域映射、部分覆盖域行为、存在硬件差异时的实现定义约束。对应仓库中的TEXTRACT、TINSERT、TRESHAPE、TTRANS、TFILLPAD*、TMOV*、TCONCAT、TINTERLEAVE、TDEINTERLEAVE等指令见 PTO ISA 参考。5.6 诊断要求搬运/布局诊断 SHOULD 报告出错操作与操作数位置、不兼容的 shape/layout/location 维度、相关索引/偏移参数上下文、可复现 CI 的确定性错误文案。六、同步与顺序语义05-synchronization_zh.md 定义 PTO 虚拟 ISA 程序的架构可见同步与顺序语义。6.1 同步原语与 event synchronization 契约PTO 同步机制包括基于事件的依赖链接、通过 event synchronization 建立的生产者/消费者顺序点、由架构语义抽象的后端低层同步原语。Auto 模式可使用工具链自动同步所有模式下显式同步都保持架构合法。event synchronization 契约要求一致性实现 MUST 保证顺序点之前的操作结果按照内存模型对顺序点之后的消费者可见、优化与降层过程保持同步语义、不支持的同步形式以确定性诊断拒绝。6.2 冒险类别同步需求通常来自四类冒险RAW读后写依赖资源复用时的WAR写后读交互WAW写后写顺序约束跨流水线交接冒险内存/向量/矩阵域。后端 MAY 在内部优化冒险处理但 MUST 保持架构可观察顺序。6.3 事件与依赖模型、同步职责事件模型 MUST 提供确定性依赖关系以支持生产者/消费者指令组间的流水线交接、Tile 与内存资源的安全复用、等价程序顺序与依赖描述下的可复现执行。Auto 模式中工具链 SHOULD 自动插入合法同步Manual 模式中当依赖无法自然保证时程序员 MUST 提供显式同步工具链 MUST NOT 删除必要的用户显式同步除非证明存在等价顺序保持。6.4 源码级例证SYNCALL以 SYNCALL_zh.md 为例看同步原语的公共 API 形态声明位于 include/pto/common/pto_instr.hpp// 硬件模式所有 CoreType 通用 template SyncCoreType CoreType SyncCoreType::AIVOnly PTO_INST void SYNCALL(); // 软件模式 — GM 共享原子计数器 template SyncAllMode Mode, SyncCoreType CoreType SyncCoreType::AIVOnly, typename GlobalData, std::enable_if_tis_global_data_vGlobalData, int 0 PTO_INST void SYNCALL(GlobalData gmWorkspace, int32_t usedCores 0);SyncCoreType选参与者集合AIVOnly默认、AICOnly、MixAICAIVSyncAllMode选实现路径HardFFTS 硬件旗标无 workspace 重载、SoftGM 共享原子计数器带 workspace 重载gmWorkspace为GlobalTensorint32_t, pto::Shape, pto::Stride只用首个 int32 作为共享到达计数器分配一条 cache line 即可且首次使用前必须清零usedCores为 0 时自动推算参与核数显式指定时可小于 launch 核数未参与核不得调用SYNCALL。七、指令族体系与契约06-instructions_zh.md 定义指令族级的规范契约逐条指令规范语义仍以docs/isa/*_zh.md为准。7.1 指令族分类PTO 指令族分为八类同步与资源绑定Tile-Tile 逐元素运算Tile-标量与 Tile-立即数运算轴归约与扩展运算内存操作GM - Tile与索引变体矩阵乘与 GEMV 运算数据搬运与布局变换不规则/复杂操作。源同步清单由 docs/isa/manifest.yaml 维护该文件为 YAML 兼容 JSON每条指令记录instruction、category、中英文 summary、diagram_template与operands。7.2 指令族通用契约与有效区域优先每个指令族 MUST 定义操作数/结果类别与位置规则、语义作用域有效区域处理、必需约束dtype/layout/location/shape、同步与顺序影响、非法使用的诊断行为、实现定义边界。有效区域优先规则除非具体指令另有定义语义仅在操作有效域内定义域外结果为未指定多输入操作 MUST 定义域组合规则。7.3 各指令族摘要同步与资源绑定event synchronization、TASSIGN及模式/配置类指令MUST 保持架构顺序语义逐元素与标量变体算术、位运算、比较、选择、一元数学及标量融合形式MUST 定义逐元素行为与模式相关约束归约/扩展族按行/按列归约及广播扩展MUST 定义轴语义与域兼容关系内存指令族load/store/prefetch 与索引 gather/scatterMUST 定义 Tile 域与内存域的映射关系矩阵运算族TMATMUL*与TGEMV*契约 MUST 定义累加域、操作数角色合法性与精度模式交互搬运/布局族extract/insert/reshape/transpose/fillpad 等变换MUST 定义索引映射与域保持规则复杂/不规则族sort/quant/partial/gather 变体等MUST 显式标注实现定义部分。7.4 单条指令文档契约与同步策略逐条指令页面 SHOULD 按附录 B 指令契约模板组织Syntax→Operands→Semantics→Constraints→Diagnostics→Implementation-defined behavior→Compatibility notes。指令族与指令索引 MUST 与以下来源保持同步docs/isa/manifest.yaml、include/pto/common/pto_instr.hpp、docs/tools/下的索引/矩阵生成工具如 gen_isa_indexes.py 从 manifest 生成 ISA 索引文档gen_isa_svgs.py 生成指令示意图check_isa_consistency.py 校验一致性。7.5 指令族矩阵规模附录 D 指令族矩阵由 manifest 自动生成给出覆盖统计同步 1 条、手动/资源绑定 6 条、逐元素Tile-Tile29 条、Tile-标量/Tile-立即数 19 条、轴归约/扩展 28 条、内存GM ↔ Tile7 条、矩阵乘 9 条、数据搬运/布局 15 条、复杂指令 20 条、Cross-core Communication 4 条总计 138 条。头文件同步状态pto_instr.hpp含 134 个唯一指令 APImanifest 含 138 条目头文件有但 manifest 缺失无manifest 有但头文件缺失TMATMUL_MX_HIF4、TPREFETCH_ASYNC、TQUANT_DN、TQUANT_HIF4。附录用于分类与覆盖追踪不替代逐条指令的规范化语义描述。八、编程模型契约Auto 与 Manual07-programming_zh.md 定义两种模式下的架构安全编程契约重点是正确性与可移植边界。8.1 契约分工Auto 模式工具链 SHOULD 自动推导合法放置、顺序与调度生成代码 MUST 保持虚拟 ISA 语义在等价源码与选项下用户可见行为 MUST 保持确定性。Manual 模式程序员 MAY 显式控制放置与同步用户显式编写的依赖与顺序点 MUST 被保留非法手工配置 MUST 以可执行诊断失败。8.2 可移植安全编程规则跨后端可移植的程序 SHOULD保持在文档定义的指令族合法域内避免依赖实现定义副作用在数据流无法保证顺序时显式使用同步将 dtype/layout/location 组合限制在后端交集画像内。8.3 性能导向且可移植的模式显式且域安全的 tiling 与有效区域管理通过事件/event synchronization 建立清晰的生产-消费边界使用能力检查进行后端受控特化对不支持组合提供确定性回退路径。8.4 反模式SHOULD 避免将有效域外值当作有意义数据读取依赖未文档化流水线时序行为在无依赖定义时假设隐式顺序未经画像门控直接编码后端特定假设。8.5 调试与验证流程建议五步流程①结构正确性检查类型、元数、属性→ ②合法域检查shape/layout/location 组合→ ③同步检查依赖完备性→ ④后端一致性检查画像约束→ ⑤跨代表目标差分行为检查。当代码依赖实现定义行为时假设 MUST 被文档化后端画像约束 MUST 明确声明可行时 SHOULD 提供回退行为。九、虚拟 ISA 与 AS 分层契约08-virtual-isa-and-ir_zh.md 定义虚拟 ISA 语义与 PTO AS/降层链路之间的契约。9.1 三层契约模型虚拟 ISA 层架构可见语义AS 层用于验证与变换的结构化强类型表示后端降层层目标相关合法化与代码生成。后端特化 MUST 保持虚拟 ISA 可观察行为。9.2 AS 对象模型与验证边界一致性 PTO AS 模型 SHOULD 定义模块与符号契约、函数/基本块结构及顺序、SSA 值拓扑、操作 schema名称、操作数、结果、属性、副作用、显式同步与内存副作用。验证分两层结构验证器IR 层MUST 验证操作 schema、元数、类型类别与必需属性且 MUST 与目标无关目标合法性验证器后端层MUST 验证选定后端画像下的 dtype/layout/location/shape 组合对不支持组合输出确定性诊断。9.3 降层不变量与源同步降层 MUST 保持有效区域语义、显式顺序依赖event、event synchronization、内存顺序点、架构定义域内的操作语义MUST NOT 将实现定义行为静默改写为架构定义行为。AS 契约 MUST 与docs/isa/*_zh.md语义意图和include/pto/common/pto_instr.hppAPI 形态同步。兼容策略优先增量 AS 演进破坏性变更 MUST 含版本与迁移说明未知必需字段 MUST 验证失败已弃用结构 SHOULD 至少在一个兼容窗口内可解析。9.4 最小一致性场景一致性验证 SHOULD 包含结构验证器合法/非法样例测试、按后端画像划分的合法性通过/失败矩阵、IR 与字节码往返检查、与逐条指令语义对齐的差分检查。十、字节码与工具链契约09-bytecode-and-toolchain_zh.md 定义 PTO IR 与字节码形态之间的实际交换与验证契约。10.1 表示层次与模块契约PTO 表示层次虚拟 ISA 语义 → PTO IR 结构化形态 → 字节码序列化交换形态层间转换 MUST 保持架构可观察语义。一致性 v1 字节码模块 MUST 保留操作/基本块/函数顺序、SSA 定义-使用拓扑、操作数/结果类型信息、必需属性与模式元数据、符号与入口身份若无法无损保留序列化 MUST 确定性失败。10.2 验证流水建议流水①前端生成 PTO IR → ②运行结构验证器 → ③IR 序列化为字节码 → ④字节码反序列化为 IR → ⑤再次运行结构验证器 → ⑥可选运行目标合法性验证器。CI SHOULD 覆盖前 1-5 步。10.3 诊断契约与最小错误类别诊断 MUST文本形态具备定位信息、对等价输入具备确定性、提供期望与实际约束差异。最小错误类别解析错误、结构验证错误、字节码格式/兼容错误、目标合法性错误。10.4 兼容策略与往返保证演进策略 MUST 定义 schema 版本字段、向后兼容窗口、未知字段与未知操作处理规则。默认策略未知必需字段 → 拒绝未知可选字段 → 除非兼容模式显式允许否则拒绝未知操作 → 以确定性未支持操作诊断拒绝。对支持特性text - IR - bytecode - IR - textSHOULD 保持语义、验证相关结构与必需元数据不要求文本逐字节一致。10.5 运行验收清单每次发布 SHOULD 验证解析器正反例套件、结构验证一致性套件、畸形字节码鲁棒性测试、往返回归语料、诊断文案稳定性快照。十一、内存顺序与一致性10-memory-ordering-and-consistency_zh.md 定义架构可见内存顺序与可见性保证。11.1 内存对象与一致性基线架构可见内存域包括Tile 本地值、通过内存操作访问的全局内存视图、影响可见性边界的同步状态。后端私有缓存/缓冲属于实现定义但 MUST 满足架构可见顺序结果。基线模型为依赖有序一致性数据依赖与显式同步定义必须满足的可见顺序相互独立操作在内部 MAY 重排必需同步点 MUST 建立定义的可见性关系。11.2 顺序保证与编程要求一致性实现 MUST 保证必需同步/顺序点之后生产者写入对依赖消费者可见显式依赖链中的内存操作保持链路顺序event synchronization 与事件依赖定义的顺序在内存可见性上得到体现。程序 SHOULD在生产者/消费者边界使用显式同步在无定义依赖时避免假设隐式全局顺序避免依赖未指定域外值。在非工具自动同步场景下Manual 模式程序员MUST 显式确保顺序。后端 SHOULD 提供诊断非法上下文中的顺序假设缺失、不支持的内存顺序形式、后端画像特定限制一致性测试 SHOULD 覆盖代表性依赖模式下的有序可见性场景。十二、后端画像与一致性等级11-backend-profiles-and-conformance_zh.md 定义后端能力子集的描述方式与一致性等级评估方法。12.1 后端画像模型与能力门控后端画像 MUST 记录支持的指令族与操作形式、支持的 dtype/layout/location/shape 组合、同步与内存顺序限制、实现定义行为边界、对不支持特性的诊断策略。画像可对应具体目标例如A2/A3/A5/CPU 仿真器。工具链 MUST 基于画像能力门控后端特化。当请求行为超出画像支持时编译/合法化 MUST 确定性失败或选择显式定义的回退路径。12.2 一致性维度与等级一致性评估维度①语义一致性指令行为、②合法性一致性契约验证、③顺序一致性同步与内存可见性、④诊断一致性确定性且可执行错误。建议等级等级名称内容Level 0解析/形态仅结构工具链正确性Level 1指令族合法性具备文档化指令族合法性与诊断Level 2指令语义代表性样例验证逐条语义Level 3跨层稳定性AS/字节码/后端转换后语义、顺序、诊断保持稳定后端 SHOULD 公布最高已验证等级及已知缺口。12.3 必需测试矩阵与变更管理画像一致性套件 SHOULD 包含按指令族划分的合法/非法组合测试、同步与内存顺序场景测试、精度/模式交互测试含混合精度路径、文本/AS/字节码往返工具链测试、诊断稳定性快照测试。后端行为变更时画像文档 MUST 在同一变更集中更新、MUST 说明一致性影响对已发布等级的回归 MUST 视为发布阻断除非有明确豁免和理由。十三、附录体系术语、契约模板、诊断分类与矩阵13.1 术语表附录 A附录 A 术语表定义Tile片上二维操作数含类型/形状/布局/有效区域元数据、GlobalTensor对 GM 的带类型视图、有效区域[Rv, Cv]、位置 LocationVec/Mat/Left/Right/Acc等存储类别/意图、Block/Sub-block并行工作单元、流水线 Pipelineload/transform/compute/store 阶段重叠调度、event synchronization阶段类别间建立顺序关系的同步抽象。13.2 指令契约模板附录 B附录 B 定义单条指令文档的标准章节顺序# INSTR→ Scope → Syntax → Operands → Semantics → Constraints → Diagnostics → Implementation-defined behavior → Compatibility → Examples并给出各章节的规范要求如 Semantics MUST 定义有效域迭代模型与域外行为Constraints MUST 区分架构层要求与后端画像限制及可复制的模板正文。13.3 诊断分类体系附录 C附录 C 定义五类主诊断类别前缀用途PARSE_*PTO-AS 文本错误token、文法、字面量STRUCT_*IR 结构违规元数、属性缺失、类型不兼容LEGAL_*后端/画像合法性失败dtype/layout/location/shape、模式组合、指令变体ORDER_*同步/顺序错误缺失依赖边、非法同步形式、顺序契约违反BCODE_*交换/序列化失败版本、section 畸形、未知字段/操作码诊断质量契约确定性错误类别、确定性主消息形态、可执行上下文期望 vs 实际、可用时提供源码定位。稳定性策略错误类别标识在补丁版本内 MUST 稳定消息文案在 CI 快照中 SHOULD 尽量稳定实质变化 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 4213.4 指令族矩阵附录 D见本文第七章附录 D 由docs/isa/manifest.yaml自动生成逐类列出指令、图示模板、操作数契约与语义页面如SYNCALL对应docs/isa/SYNCALL_zh.md、TMATMUL*对应矩阵乘族、TALLOC/TPUSH/TPOP/TFREE对应 Cross-core Communication 族用于分类与覆盖追踪。十四、在仓库中继续深入手册入口与章节docs/PTO-Virtual-ISA-Manual_zh.md 与 docs/mkdocs/src/manual/11 章 附录 A-D中英双语逐条指令语义docs/isa/README_zh.md 及docs/isa/*_zh.md各指令页如 SYNCALL_zh.md、TLOAD_zh.md、TMATMUL_zh.md并配合 docs/isa/manifest.yaml 使用公共 API 形态include/pto/common/pto_instr.hpp指令内建接口声明与MAP_INSTR_IMPL*宏的 CPU 仿真 trace 机制见__CPU_SIM分支、include/pto/pto-inst.hpp公共头工具链与一致性工具docs/tools/ 下的gen_isa_indexes.py、gen_isa_svgs.py、check_isa_consistency.py、check_virtual_manual_consistency.py、gen_virtual_manual_matrix.py测试佐证tests/cpu/st/、tests/npu/按 a2a3/a5/a6/kirin 等目标划分、tests/costmodel/ 中的指令一致性测试可作为手册各章契约语义/合法性/顺序/诊断在具体后端画像上的落地验证。PTO 虚拟 ISA 的核心设计哲学在于把架构定义与实现定义清晰切分用有效区域、位置-意图角色、事件中心同步与分层验证把指令语义固化为可验证、可移植、可在硬件代际间稳定演进的契约。无论是编写 Auto/Manual 内核还是实现降层、合法化、字节码与一致性测试本手册都是绕不开的架构级规范。【免费下载链接】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),仅供参考
返回列表