摘要
第 0 部分 — 参考设备
第一部分 — 二进制解剖
- 概览
- 精灵解剖
- libtpu.so + sdk.so
- 定制型材
- 嵌入式库图集
- LLVM/MLIR 版本清单
- 静态初始化管道
- 尾随 zstd Blob
- 调度表分类
- RTTI ↔ Vtable 交叉验证
- 每代函数调度程序
- 多态调度入口点
第二部分 — 插件生命周期和 PJRT API
- 概览
- ELF入口&init_proc
- do_init / do_fini
- GetPjrtApi Thunk & tpu_plugin 对象
- TfTpu_初始化引导程序
- 模块初始化和插件发现
- 概览
- PJRT_Api 140槽位重构
- 客户端、设备和拓扑
- 缓冲区 ABI 和内存布局
- 可执行文件加载和执行
- 事件和异步跟踪
- 集体通讯器
- DMA 映射和跨主机接收
- 回调和 Pre-Fatal Hook
- 延长链 (17)
- 扩展:分析器(类型 1)
- 扩展:拓扑描述(类型 16)
- 扩展:RawBuffer(类型 8)
- 扩展:Compile / PhaseCompile(类型 9)
- 扩展:布局/内存/流/FFI/...
- StreamExecutor 主机解释器
- StreamExecutor → PJRT 适配器
第三部分 — Tpu C-Shim 层
- 概览
- Tpu编译器名册
- Tpu可执行名册
- Tpu执行器名册
- TpuTransferManager名册
- Tpu计划名册
- TpuPlatform & TpuNodeContext
- Tpu拓扑和TpuCore位置
- TpuEmbeddingEngine ABI
- TpuConfigurationApi
第四部分 — 芯片和硬件代号模型
- 概览
- 6-代号权威和解
- 双枚举(原始与内部)
- PCI 设备 ID
- 营销/云命名
- 取代标签更正列表
- HAL 家族
- HAL 工厂覆盖矩阵
- TpuHal 类层次结构
- JXC家族(水母、龙鱼)
- PXC家族(河豚)
- VXC 系列(Viperfish)
- GXC 系列(Ghostlite,6acc60406)
- 子核心分类(GFC/GLC/JXC/PXC/VFC/VLC)
- chip_parts.binarypb 解码
- 每个代号常量表
- Tpu拓扑结构(目标+0x3b8)
- TpuChipConfig
- SparseCoreTarget(目标+0x948)
- 目标能力位字段(目标+0x628)
- kDeviceTypeInfo 规格常量
- 每代精度表
- 内存层次结构
- 地址空间 ID 表 (AS0–AS9)
第五部分 - 编译器:降低和优化遍数
- 概览
- HLO 摄取
- 编译阶段 0–3
- 编译缓存
- HLO 通证注册表
- HLO 预通过
- 分片传播
- 自动分片/SPMD
- 代数简化器
- 动态形状支持
- 优化屏障
- 自定义呼叫降低和注册
- MHLO → XTile → tpu
- 马赛克概述
- 马赛克布局推断
- 马赛克矢量布局
- tpu MLIR 方言
- tpu → LLO 降低
- 方言转换合法化器
- 转换模式重写器
- LowerToMlo DMA 桥接
- LowerToSparseCoreLLVM
- SC类型转换器
- MLIR Op模型合同
- LlvmTpu 内在目录
- MSA概述
- MSA 分配段
- MSA 每个版本的默认值
- MSA 预留和 HBM 政策
- 布局分配
- 融合模式
- 融合成本模型
- 点/转换 → MXU 降低
- RaggedDot → 窗口卷积
- 循环平铺和展开
- Tpu程序序列化
第六部分 — TensorCore ISA 和 LLO 编码
- 概览
- LloOpcode 枚举 (462)
- 内存空间枚举 (17)
- 捆绑型号
- InstBits 主数据库
- TPUInstrNameData / 描述 / RegEncoding
- LloOpcode ↔ 原型
- MC-发射器(getBinaryCodeForInstr)
- 239 位记录格式
- Jellyfish 41 字节捆绑包
- 龙鱼捆绑包
- 河豚 51 字节捆绑包
- Viperfish 64 字节捆绑包
- Ghostlite 捆绑包
- 6acc60406 捆绑包
- MXU 插槽
- VPU(矢量-ALU)插槽
- SPU/标量插槽
- 定序器插槽
- 内存加载插槽
- 内存存储插槽
- 谓词寄存器文件
- 硬件循环计数器
- 立即槽
- EUP / 超越插槽
- Matprep / IAR / 锁存器
- vcreate_mask / M-寄存器
- cmem_load 插槽(河豚)
- 稀疏槽 (v5+)
- V5+ EmitX 绝对位位置
- IsaEmitter注册表
- 解码端:JF / PF
- 解码端:VF / GXC
- NOP/未使用时隙规范编码
- TPUMCImm / SyImm32 操作数
- ArchRegno 运行时编号
- kIsaTable 数据部分
- 每代定序器操作 × 类型
- ResultFifo 和 ArchRegister 枚举
- 偏差添加和量化/反量化助手
- XLU 操作名册
- 装拆精度
第七部分 — 成本和延迟模型
- 概览
- 资源枚举(23 槽)
- 每个操作码周期常数
- 归一化计算成本
- GetHloResources路由
- TpuHlo成本分析
- 捆绑感知成本
- 内存带宽和延迟模型
- LocalDmaBandwidth
- MXU 延迟概述
- MXU 延迟:JF / DF
- MXU 延迟:PF
- MXU 延迟:VF
- MXU 延迟:GL(Ghostlite)
- MXU 延迟:GF (6acc60406)
- MatmulMode 和修改器
- MxuOpHold问题失速复发
- 性能系列概述
- 性能:JF/DF
- 性能:PF
- 性能:VF
- 性能:GL (GhPerf 476×31)
- 性能:GF(GhPerf 465×31)
- CycleTable 系列
- Jf循环表
- Vf循环表
- EUP 延迟概述
- EUP 每代延迟整数
- EUP Payne-Hanek 范围缩小
- EUP校正系数
- EUP 通道宽度/拆包
- XLU 冲突处罚表
- XLU 组合/源总线
- XLU 重新汇出费用
- 转置保留延迟
- WindowDescription 字节成本
- 卷积成本状态
- 减少窗口/池成本
- 学习成本模型客户端
- 成本模型测井
- 合并每代计数
第八部分 — 指令调度和捆绑打包
- 概览
- LatencyHidingScheduler 核心
- LHS:post_layout_pre_fusion 变体
- LHS:post_layout /最终变体
- LHS:ILP 变体
- 资源类型分类
- 捆绑模调度
- LLO → 捆绑包装
- MXU 分配 Bin-Packer
- 锁存器分配和溢出
- MxuSequence / SequenceInfo
- MRB链分配器
- MRB FIFO / MSR 放置
- 每代编码器锁存器序列化
第九部分 — SparseCore 和 BarnaCore
- 概览
- 架构
- SCS(标量)发动机
- TAC发动机
- TEC(矢量)发动机
- 每引擎捆绑槽-基础映射
- 区域 → 音序器大纲视图
- getSequencerType
- 标量操作码枚举
- 向量操作码枚举
- OneSlot 标量路由器
- 矢量负载插槽
- VectorStore 插槽
- 矢量扩展 / VEX
- VEX 操作数端口绑定
- VEX 掩码/目标端口/子操作码
- M寄存器谓词字(M0–M31)
- CBREG 循环缓冲寄存器
- 扫描数据路径
- 分段扫描
- 分段添加扫描
- 嵌入小批量分解
- SampleCombiner发射器
- EmitValencyLoop
- RankAndPermute / RadixSort
- 重复数据删除多重性
- 脂肪指针 (AS7/8/9)
- addrspacecast ISel
- Tile-ID 铸件
- 流聚集/分散
- 间接VregStream
- SC后端管道
- SC EmitX 调度程序
- SC内核选择
- SC队列分配和预留
- GetSparseCoreConfig
- SC ↔ MXU 握手
- SparseCore 与 Neuron MatmultSparse
- 概览
- 退休证明
- BCS Scalar0/Scalar1 ISA
- BCS 32 字节捆绑包
- 合并 ALU 位布局
- JF/DF 16 字节地址处理程序包
- 每代 BarnaCore 性能网格
第 X 部分 — 片上存储器和 DMA
- 概览
- HBM BestFit 分配器
- HBM DMA 对准合约
- VMEM分配器
- SMEM 标量存储器
- SMEM 寄存器窗口
- CMEM常量内存池
- SFLAG 同步标志层
- TpuBuffer 布局
- 缓冲区捐赠和别名
- 设备上压缩
- 嵌入式 tcmalloc
- 片内DMA描述符
- Tile 索引扩展
- 卷式/跨式/通用发射器
- DMA参数选择器
- 主机↔设备DMA
- UHI 主机接口 DMA
- OCI 命令 DMA-ID
- 连续队列
第 XI 部分 — 运行时和执行
- 概览
- ExecuteAsyncOnStream
- LoadProgramAndEnqueueToStream
- 流语义和依赖关系
- 进料/出料队列
- 主机回调
- 完成循环和 AsyncTrackingEvent
- PJRT 客户端分配器集成
- 错误/状态字符串模板
- 面向用户的提示字符串
- 内部通行证名称目录
第 XII 部分 — 互连和路由
- 概览
- 链路启动序列
- 拓扑发现
- 跨片 DMA 描述符
- ICI 全归约原语
- 故障模式和恢复
- VC-余额分配
- 概览
- 随机环形WildFirstPaths
- 路由表生成
- GetStaticPath & Multipod
- 环形路由缓存
- 路由缓存解压缩
- 路由缓存重复数据删除
- 路由缓存编解码器
- CreateRoutingSchedule 求解器
- net_router 管道
- 单播路由发射
- 获取距离
- 概览
- TwistedTorusND::BuildStrategy
- 扭曲谓词和方向
- 2阶段复制品组建设
- 形状折叠
- GetReplicaPair3DOnTwistedTorus
- Megacore 偶数/奇数分割
- 获得抢七
- SC-侧扭
- ICR 节点结构 DMA 频段
- nf_descriptor(27字段)
第 XIII 部分 — Pod 集体和障碍
- 概览
- SelectND策略
- 二项式/递归加倍
- AllReduce 分层/钳形
- AllGather ND 环
- AllToAll 表
- ReduceScatter
- 常量映射器
- 降级轴摄取
- SC-卸载配置生成器
- 分层种类
- 张量分割/ND 平面
- 物理核心放置
- SC 核心选择(卸载)
- get_remote_memref
- StartRemoteDma
- 概览
- SpecialPurposeSyncFlags
- Per-Codename compiler_reserved SFLAG
- 屏障着色
- 屏障 → SFLAG 号码绑定
- 全局屏障 SFLAG 窗口
- 复制品(2 型)屏障
- TensorCore 屏障
- Tree-Barrier Vsync
- InferBarrierConfig
- 每代远程 SFLAG 编码器
- 巨核融合
- FP8 量化集合
- SPMD 链路计数成本
第 XIV 部分 — 超大规模(多主机/DCN)
- 概览
- 引导程序:概述
- Bootstrap:协调员选举
- Bootstrap:工人注册
- Bootstrap:拓扑交换
- 引导程序:ICI 切换
- Bootstrap:收敛
- Bootstrap:故障处理
- 引导程序:tpunetd 关系
- 车队元数据:概述
- 舰队:拓扑模型
- 舰队:主机身份
- 舰队:全局寻址
- 舰队:ICI 与 DCN
- 舰队:切片形状
- 舰队:Bootstrap 交换
- 舰队:障碍和错误使用
- 舰队:现场解码
- 跨主机屏障
- 错误聚合器
- tpunetd 协议
第 XV 部分 — 分析和遥测
- 概览
- TpuProfiler ABI
- PJRT_Profiler 扩展
- XPlane / XStat / TraceMe 发射
- tpu_telemetry.proto
- XEvent 元数据 ID
- XStat 元数据 ID
- TraceEntriesCoder
- riegeli 微量容器
- 每设备类型分析器结构
- kDeviceTypeInfo 制作者/读者
- TracePoints 主注册表
- TraceEntry → XEvent/XStat
- 任务原型
- 有效负载:jxc 旧版
- 有效负载:vfc / vlc / gfc
- 有效负载:SparseCore Band
- 有效负载:UHI/OCI/ICI/DMA
- ICR DMA-时间线带
- jxc DMA / HbmMux / brn_perf
- v7x 性能计数器
- DMA端点渲染
第 XVI 部分 — 配置和编译旋钮
- 概览
- xla_* 旗帜图集
- 标志系列
- 环境变量
- TpuCompilationEnvironment(1121个字段)
- TCE字段词典(A)
- TCE字段词典(B)
- TCE 字段偏移和标志默认值
- xla.DebugOptions(290 个字段)
- 默认调试选项
- AutoProto / AutoOr 分辨率
- AutoOr 解析语法
- AutoOr 解析
- AutoProto 消息臂
- 注册表介导的标志
- Tpu版本感知标志前缀调度