开发者文档¶
PyPTO 的构成:IR、pass 流水线、代码生成,以及围绕它们的基础设施。
本章面向开发编译器本身的人。如果你是在编写 PyPTO 程序,请从用户手册开始。
子章节¶
| 章节 | 内容 |
|---|---|
| IR | 节点层次、类型系统、算子、builder、parser、序列化、结构化比较 |
| Passes | pass 框架与默认流水线中的每个 pass,按执行顺序编号 |
| 语言 | Python DSL 语法规范与外部 C++ kernel 接入 |
| 代码生成 | 把 IR lower 成 PTO-ISA 方言 MLIR 与编排层 C++ |
| 后端 | 通过 BackendHandler 做逐架构分派 |
| 调试 | 把 IR lower 成可执行的 PyTorch 脚本用于数值校验 |
顶层主题¶
| 页面 | 内容 |
|---|---|
| PTO 项目生态 | 多仓库工具链 —— PyPTO、PTOAS、pto-isa、simpler、pypto-lib —— 及其组合方式 |
| 编译性能剖析 | 内建的编译流水线墙钟计时 |
| 错误处理 | CHECK 与 INTERNAL_CHECK、PyPTO 异常类型、失败信息中的 IR 源码位置 |
| 日志 | 两套相互独立的日志子系统,以及如何判断一条消息来自哪一套 |
| 运行时 DFX 开关 | 通过 RunConfig 暴露的五个运行时诊断子特性 |
| 模拟器 Trace 清洗 | 把 MindStudio Insight 二进制 dump 转成可读 trace |
| 逐任务 Ring Sizing | RunConfig 上的三个 ring 尺寸覆盖项及其调优时机 |
| 持久化 L3 执行 | 在多个已 prepare 的分布式程序间复用同一个 worker |
| 内存图 | 把 pass dump 渲染成可交互的片上内存 HTML 图 |
| 分布式算子 | N6 分布式算子家族 —— 对集合通信与低层原语的类型化 DSL 访问 |
| PTOAS 算子状态矩阵 | 编译器当前会发射哪些 PTOAS 公开与兼容算子 |
另请参阅¶
- PTO ISA 参考 —— 后端所面向的硬件模型。
- 运行时文档 —— 执行已编译程序的调度器。