扩展术语表
本页上的所有名称和符号均适用于
libtpu-0.0.40-cp314车轮中的libtpu.so(构建 ID89edbbe81c5b328a958fe628a9f2207d)。二进制文件并未被剥离:每个 C++ 符号都作为分解后的名称保留下来,因此此处的“术语是有根据的”声明意味着文字字符串或符号存在于二进制文件的名称/字符串表中。括号中的命中计数是针对此精确构建的nm名称表行计数(其分解名称包含该术语的符号);其他版本会有所不同。
摘要
这是根 术语表 的长尾同伴。根页面是大约 83 个术语的快速参考——代号、计算单元、内存空间、IR 名称、ABI 术语——每个页面都链接回的词汇表。此页面是“命名事物”的深层引用索引:具体的结构/类名称、枚举系列、ISA 页面缩写、分析器/跟踪名词以及重新实现者只有在深层 ISA、成本模型、调度程序、路由和分析页面中才会遇到的集体/网络术语。这些都不需要在快速参考中占有一席之地,但它们中的每一个都是读者最终会 grep 查找并需要定义的符号。
分割是经过深思熟虑且不重叠的。根词汇表定义了 MXU、SCS、LLO、PJRT、HBM、TpuVersion。此页面定义了下面的“实现表面”:代号轴解析为的 tpu::Target 功能对象、成本模型读取的 CycleTable/MxuLatencyTable 对、MatmulModeAttr/GainLatchModeAttr MLIR 枚举 MXU 插槽编码、 Iar/Msr/Lmr 寄存器缩写是矩阵推送管道循环、XLineBuilder/GtcSpan 跟踪管道和 TwistedTorusND/ToroidalRouteCache/VirtualChannel 路由机制。如果根词汇表回答 *“这个缩写词是什么意思”,*此页面回答 “它背后的命名 C++ 实体是什么,以及哪个页面拥有它。”
每个命名具体二进制实体的条目在定义之前都根据名称表重新确认;括号中的命中计数是 nm 名称表行计数(其分解名称包含该术语的符号)。在 TPU 集体文献中重复出现但在该二进制文件中不作为 TPU 符号出现的少数术语(最著名的是 RDH)被保留为标记缺席,因此后面的页面不会默默地将它们视为基础。定义停留在一两个句子加上一个深页指针;深层页面拥有算法、布局和基本原理。
对于导航,合约是:
- 此页面扩展,绝不重复,根 术语表 — 83 个快速参考术语就在那里;不要在这里重新定义
MXU/SCS/LLO/PJRT/HBM。 - 每个二进制术语都引用其基础 - 类符号、枚举、
Attr存储或所属的深层页面。 - 不确定或外部术语用
(inferred)、(external)或(not in binary)标记;他们从来没有得到过假锚。 - 每个术语以一个指针结尾,指向拥有其机制的深层页面。
| 家长参考 | 术语表 — 此页面扩展的 ~83 术语快速参考 |
| 代号卡 | 代号备忘单 — 三轴代号绑定 |
| 术语簇 | 结构和类 · 枚举族 · ISA 缩写 · 分析术语 · 集体术语 · 其他 |
| 接地 | 所有计数均为未剥离 libtpu.so 中的 nm 名称表行计数 |
| 深页根 | isa/ · cost/ · sched/ · profiling/ · collectives/ · routing/ · twist/ |
结构和类
重新实现器实例化或建模的指定 C++ 类型。这些是深层页面的主干——代号解析为的功能对象、成本表、IR 构建器和分配器。接地是分解后的阶级符号。
| 术语 | 定义 |
|---|---|
tpu::Target | 每代 功能对象 - 一个巨大的访问器包(Target::AccumulatorsPerTensorCore、Target::AllReduceScopedMemoryLimitBytes、Target::AllSublanesMask、Target::AccessesToSameWordIncurCrossSlotVmemBankConflicts,...),每个成本/ISA/调度程序都通过查询而不是直接打开 TpuVersion。 Target 出现在 20,124 个名称表符号中。代号轴最终解析为 Target。由 目标能力位域 和 每个代号硬件常量 所有。 |
SparseCoreTarget | Target(111 次点击)的 SparseCore 端兄弟 — 带有 SparseCore 私有布局常量(SparseCoreSpmemStripeGranularityBytes、SparseCoreStartReservedSmemWordOffset、SparseCoreStartReservedTecSmemWordOffset、SparseCoreParamPtrLocationWordOffset)。通过 SparseCoreTargetForModule 构建每个模块。归 SparseCore 目标描述符 所有。 |
TpuCoreParts | 每芯片核心库存结构(122 个命中)描述物理芯片如何分解为 TensorCore + SparseCore 部分(兆核配对、核心数量)。归 子核心分类 所有。 |
TpuTopology | Pod/Slice 拓扑描述符(1,368 次点击)——路由和集体布局读取的芯片网格尺寸、包裹和核心布局。归 Tpu拓扑结构 所有。 |
MxuLatencyTable | MXU 问题延迟查找表(19 次命中); GetSharedMxuLatencyTable 返回由 matmul 成本路径消耗的每个平台单例。归 MXU 延迟概述 所有。 |
CycleTable | 每个操作码的周期成本表(175 次命中);通过 CycleTable::Create(Target) 按代号构建,并通过每代子类的 util_registration::FunctionRegistry<TpuVersion, …>(JfCycleTable、PfCycleTable、VfCycleTable、GlcCycleTable、GfcCycleTable)进行选择。成本模型的主要每指令时序源。归 CycleTable 系列 所有。 |
IsaEmitter | 捆绑编码发射器(358 次命中),将预定的 LLO 降低为每代指令位;每个编解码器一个注册的发射器。归 ISA发射器注册表 所有。 |
LloRegionBuilder | LLO 区域构建助手(5,425 次点击),用于在调度/发射之前组装每束 LLO IR 区域。归捆绑包型号概述所有;另请参见 LLO 操作码枚举。 |
ConversionPatternRewriter | 驱动 MHLO→TPU→LLO 合法化重写的 MLIR 方言转换重写器(10,346 次点击,其 ConversionPatternRewriterImpl)。标准 MLIR 机械,在这里大量实例化。由 转换模式重写器 和 方言转换合法化器 所有。 |
MrbChainAllocator | Matrix-Result-Buffer 预留分配器(15 次点击)——一个按时间排序的预留管理器(AdvanceTimeTo、ExtendMrbReservation、ReleaseMrbReservation),它在整个计划中链接 MRB 生命周期。归MRB链分配器所有;放置在MRB FIFO / MSR 放置。 |
TwistedTorusND | 路由层使用的 N 维扭曲环面拓扑模型(31 个命中;TwistedTorus* 126)来描述其 ICI 网格是偏移包裹的而不是简单的环形的 Pod。归 扭曲概述 所有。 |
ToroidalRouteCache | 环形/扭曲环路路径的记忆路由存储(123 次命中)— 缓存计算的 ICI 路由,以便路由生成器不会为每个集合重新派生它们。归环形路由缓存所有;编解码器位于 路由缓存编解码器。 |
ContinuationQueue | SyncFlag 支持的工作队列(151 次命中),其可用计数被读入同步标志字 (SparseCoreContinuationQueues::GetAvailableCountSflag);每个核心的大小来自 Target::ContinuationQueueConfig::PerCore(通过 absl::c_all_of 和 size_words 来检查所有每个核心的大小是否相等)。定序器从中排出延续的硬件队列。记录在 SFLAG协议 下。 |
StaticMapBase / StaticMap | 用于只读字符串→id 和 id→处理程序表(操作码名称、元数据 id)的编译时完美哈希/冻结映射基础(207 / 210 次点击)。逆向工程里程碑:StaticMapBase 实例标记了一个内置的查找表。请参阅 仪器名称数据。 |
AutoOr<T> | 带有 AutoOrFromString 解析器的状态或值/标志包装模板(1,184 次命中;AutoOr<bool>、AutoOr<double>、AutoOr<float>)。携带解析的旋钮值或默认值;配置层的选项值容器。由 AutoOr 解析语法 和 AutoOr 解析 所有。 |
AutoProto | 配套的原型支持的自动配置容器(766 次点击)保存自动调整/自动配置选项的结构化(protobuf)形式。在配置界面中与 AutoOr 配对。由 AutoProto/AutoOr 分辨率 和 AutoProto 消息臂 所有。 |
注意 -
tpu::Target是真正的“代号”有效负载。 根词汇表的三个整数轴(TpuVersion/DeviceType/TpuVersionProto)只是选择器;他们选择的对象是tpu::Target(或SparseCoreTarget)。将代号视为enum并就此停止的重新实现者会错过每个每代常量(累加器计数、子通道掩码、作用域内存限制、存储体冲突规则)都作为Target访问器存在,而不是在平面表中。
枚举系列
ISA 页编码的枚举系列。在此二进制文件中,每个包的 ISA 枚举被实现为 MLIR 枚举属性 — 每个都是一个带有 …AttrStorage 的 …Attr(例如 MatmulModeAttr、MatmulModeAttrStorage),因此对裸名称加上 Attr 的 grep 确认它是一个操作属性枚举,而不是一个普通 C enum。接地气是属性符号。
| 术语 | 定义 |
|---|---|
MatmulMode | MXU matmul 操作模式枚举(110 次命中;MatmulModeAttr)— 选择矩阵槽运行的收缩/累加模式。归 MXU 插槽 所有; Matmul 模式修改器 中的成本修正。 |
MatmulDataFormat | MXU 操作数数据格式枚举(291 次命中;MatmulDataFormatAttr,带有 MatmulDataFormatAndScalingFactor 配对)— 元素类型/打包 matmul 馈送(bf16、int8、fp8,...)。归MXU 插槽所有; 装拆精度 精密包装。 |
MatpushModifier | 矩阵推送修饰符枚举(12 次命中)— 每个 matpush 标志,用于调整操作数如何锁存到 MXU 前端。归 MatPrep / IAR 闩锁槽 所有。 |
GainLatchMode | MXU 增益/比例锁存模式枚举(176 个命中;GainLatchModeAttr、GainLatchModeAndScalingFactor)— 控制如何将每行增益/比例因子与数据格式一起锁存。归 MXU 插槽 所有。 |
ResultFifo | MXU 结果 FIFO 选择器枚举(103 次命中) — 输出 FIFO,matmul 结果在写回之前流入。归 结果Fifo / ArchRegister 所有。 |
ArchRegister | 架构寄存器标识枚举(46 个命中)— 编码器引用的指定硬件寄存器插槽(与输出侧的 ResultFifo 配对)。归结果Fifo / ArchRegister所有;编号为 ArchRegNo 编号。 |
VxposeMode | 矢量转置模式枚举(64 个命中;VxposeModeAttr,带有变体 VXPOSE_MODE_NONE/VXPOSE_MODE_SEGMENTED/VXPOSE_MODE_COMPRESSED)— XLU 转置运算的相位/模式选择器。归 XLU 操作名册 所有。 |
MemorySpace | LLO 内存空间枚举(2,208 次命中)——每个内存操作上携带的地址空间标签 (HBM/VMEM/SMEM/CMEM/Spmem/…)。根词汇表的内存空间组的深度枚举。归 内存空间枚举 所有。 |
TpuSequencerType | 定序器类型枚举(278 次命中)——TensorCore 与 SparseCore SCS/TAC/TEC 定序器;编解码器模板为每个定序器实例化的轴。 两个相差一的编号(编解码器模板与原型/运行时),请参阅根术语表的 SCS/TAC/TEC 陷阱。归 每代定序器操作 所有。 |
GOTCHA — 这些是 op 属性,而不是平面 C 枚举。 每个
Matmul*/GainLatchMode/Vxpose枚举都作为 MLIR…Attr存在,并带有生成的…AttrStorage和…AndScalingFactor同伴。从普通整数枚举编码捆绑包的重新实现者将错过该属性携带的“成对”缩放因子/存储——数据格式和增益模式被锁在一起(MatmulDataFormatAndScalingFactor、GainLatchModeAndScalingFactor),而不是独立的。
ISA 缩写
ISA 插槽页使用的短寄存器/锁存器缩写,无需扩展。每个都是特定硬件寄存器类或锁存器状态的矩阵推送/编码器管道的名称。基础是驼峰式符号系列 - 注意二进制文件使用驼峰式命名(Iar、Msr),因此大写 grep (IAR) 返回零。
| 缩写 | 扩展/定义 |
|---|---|
IAR (Iar) 每个 TensorCore 的 | Input Aactivation Register — 矩阵推送管道填充的 MXU 前端操作数锁存寄存器(4,793 个 Iar 命中;IarNumber、ReadIar、 SetSublaneIar/SetRawIar/SetLaneIar、iar_initialization)。每个 TensorCore 的 IAR 数量是 Target 访问器 (IarsPerTensorCore)。归MatPrep / IAR 闩锁槽所有; IAR 的容量。 |
| MRB | Matrix-Result Bbuffer — 回写前保存 MXU 输出的缓冲区(Mrb,139 次命中)。由 MrbChainAllocator 分配(参见上面的结构)。归 MRB链分配器 所有。 |
MSR (Msr) | Matrix Staging Register(15,277 Msr 命中)— 矩阵管道插入/保留的暂存寄存器(诊断拼写为“矩阵暂存寄存器”;可通过 XmrToMsr 与 Xmr 相互转换)。与 SMRD/checkSMRDHazards LLVM 命中不同,后者是不相关的静态链接代码。归 MRB FIFO / MSR 放置 所有。 |
VEX (Vex) | Vector-EX管理单元 — SparseCore 矢量数据路径(892 Vex 命中)。已经在根术语表的计算单元中;此处列出为 SparseCore-ISA 阅读器解析的缩写。归 矢量扩展 (vex) 所有。 |
VREG (Vreg) | Vector REGister — VPU 的通道矢量化寄存器文件(12,568 次命中)。操作数类 VPU/XLU 插槽读取和写入。归 VPU插槽 所有。 |
SREG (Sreg) | Scalar REGister — SPU 的标量寄存器文件(5,746 次命中)。归 SPU标量插槽 所有。 |
LMR (Lmr) | Load-Matrix R寄存器宽度 - matpush/loadmatrix 上的矩阵加载寄存器宽度选择器(1,990 次点击;LoadMatrixLmrWidth、MatrixMultiplyLmrWidth,“平台的 LMR 宽度无效。”)。每个平台验证的字段。归 MatPrep / IAR 闩锁槽 所有。 |
CBREG (Cbreg) | Constant/Base REGister — 基址加偏移量寄存器类(379 个命中;CbregField、ReadCbreg/WriteCbreg/AddCbreg、CbregMetadata,带有原始字段cbreg_offset/cbreg_size) 用于寻址/常量操作数。归 插槽立即 所有。 |
LSF (Lsf) | A Latch-State Flag 在向量矩阵推送上(11 次命中;VlatchLsf、EmitVectorLatchLsf、LsfGainLatchMode,“此平台不支持指令 vmatpush.lsf。”) — 每个平台门控锁存器修饰符。归 编码器锁存器序列化 所有。 |
RPU (Rpu) | 向量R旋转/跨通道操作类型(103 次命中;RpuOp,断言 first_rpu_inst->opcode() == LloOpcode::kVectorRotate,“filtered_xlu_ops 应该只有 TransposeTiles 和 RpuOperations。”) — XLU 系列旋转操作。归 XLU 操作名册 所有。 |
注意 — 在 grep 名称表时,大小写很重要。 文字
IAR(全部大写)具有 零 命中;接地符号是 CamelCaseIar(4,793 次点击)。同样,MatPush也不存在——二进制拼写为Matpush(97)。使用二进制文件的大小写进行 Grep,否则您会断定某个功能缺失(而实际上它并不存在)。
分析条款
根术语表的 XProf 架构条目下方的跟踪/分析管道中的命名名词 (XPlane/XEvent/XStat/XSpace/TraceMe)。这些是分析器页面读者遇到的构建者和跨度。接地气是阶级的象征。
| 术语 | 定义 |
|---|---|
TraceEntry | 硬件/定序器发出的每核原始跟踪记录(3,863 个命中) - 前 XEvent 形成每个编解码器系列的 CoreDispatcher 解码。归跟踪条目编码器所有; XEvent 的跟踪条目 中的转换。 |
XLine / XLineBuilder | XPlane 中的单个时间线行(95 个 XLine 命中); XLineBuilder::AddEvent 将转换后的 XEvent 附加到其上。 TraceEntry 流所在的行。归 XPlane / XStat / TraceMe 所有。 |
GtcSpan | A Global Time C计数器跨度(112 个命中;GetEntriesGtcSpan、GetTraceDroppingGtcSpan)— 一批跟踪条目覆盖的硬件时间戳窗口,用于对齐每个核心时钟并报告丢失的跟踪间隔。归 跟踪条目编码器 所有。 |
| 里格利 | 跟踪 blob 被序列化为的记录容器格式(2,757 个 riegeli 命中) — 一个成帧的、可选压缩的记录流。 XProf 有效负载周围的磁盘信封。归 Riegeli 跟踪容器 所有。 |
StaticMap(元数据 ID) | 探查器用于 XEvent/XStat 元数据 ID 解析的冻结查找(请参阅结构);探查器端 StaticMapBase 将统计名称映射到整数 ID。由 XEvent 元数据 ID 和 XStat 元数据 ID 所有。 |
集体条款
集合或路由页面使用的结构/拓扑名词。其中一些已实现为 Structs 下列出的路由类(TwistedTorusND、ToroidalRouteCache);这里的条目是描述性术语和 VirtualChannel 机械。每行均注明接地情况。
| 术语 | 定义 |
|---|---|
VC / VirtualChannel | V虚拟C通道 — ICI 链路的逻辑子通道(92 个 VirtualChannel 命中;VirtualChannelConfiguration)。通过 VC 分配器(VcBalanceThreshold、VcBalanceUsage)在链路之间进行平衡,以避免共享物理链路上的队头阻塞。归 VC余额分配 所有。 |
| 扭曲环面 | 一种环面拓扑,其环绕是偏移(剪切)而不是对齐的(18 个字符串命中“扭曲环面”;类 TwistedTorusND)。让吊舱呈现出普通环面无法呈现的平衡直径网格;路由层明确地对其进行建模。归 扭曲概述 所有。 |
| n-hop | 多跳 ICI 路由模式(接地为 NHopRoutingTableGenerator、EnableNHopRouting、IsNHopRouting 和 tpu_slice_builder_ici_route_force_n_hop 标志) — 一种遍历多个 ICI 链路而不是单个直接跳的路由,当拓扑或链路故障排除一跳路径时使用。由 路由表生成 和 获取静态路径 所有。 |
| 兆核 | 每芯片两个 TensorCore 执行模式(Megacore,466 个命中;“megacore”294 个小写字符串命中)——这种配对可以让芯片的两个核心进行集体融合。归巨核融合所有; Megacore 偶数/奇数 中的偶/奇核心分裂。 |
| RDH | Redundant-**Data Handling — 外部文献中的 TPU-pod 集体弹性概念。 (not in binary as a TPU term):名称表中唯一的RDH子字符串是静态链接的LLVM符号GCNHazardRecognizer::checkSMRDHazards(“RDH”是SMRD + Hazards边界); rdlo/RDLO 寄存器操作数字符串同样是不相关的 LLVM 代码。两者都与集体无关。请勿将弹性声明锚定在 RDH 上;请使用接地的 n-hop / 退化轴机械代替。请参阅 降级轴。 |
注意 — 扭曲环面、n 跳和巨核是这里的弹性三元组。 当 ICI 链路或子立方体发生故障时,路由层通过组合扭曲环面剪切、n 跳多链路路由和(用于计算)巨核偶数/奇数分割来到达工作路径 — 所有三者均位于上述位置。传统的“RDH”框架不是该二进制文件对该机制的命名方式。
杂项
跨集群的术语或命名深页读者遇到的逆向工程工件。
| 术语 | 定义 |
|---|---|
…AttrStorage | 每个操作属性枚举背后的 MLIR 生成的存储结构(MatmulModeAttrStorage、GainLatchModeAttrStorage,...)。看到 …AttrStorage 符号可以确认相邻的 …Attr 是方言注册的枚举属性,而不是普通整数。上面的 Enum Families 集群的逆向工程里程碑。 |
…AndScalingFactor | 成对编码后缀(MatmulDataFormatAndScalingFactor、GainLatchModeAndScalingFactor)标记枚举,将比例因子与一个属性中的模式一起锁定。 MXU 模式与其规模无关的信号。请参阅 MXU 插槽。 |
Matpush / Vmatpush | 将操作数锁存到 MXU IAR 中的矩阵推送指令系列(Matpush 97 次命中); Vmatpush 形式的向量携带 Lsf 锁存标志。拼写为 CamelCase,而不是 MatPush。归 MatPrep / IAR 闩锁槽 所有。 |
CycleTable::Create /注册表 | 构建正确的 CycleTable 的每平台构建路径:通过 util_registration::FunctionRegistry<TpuVersion, …> 在每代子类上调度 CycleTable::Create(Target) (JfCycleTable/PfCycleTable/VfCycleTable/GlcCycleTable/GfcCycleTable) — 证明成本模型是平台调度的钩子。请参阅 CycleTable 系列。 |
GetSharedMxuLatencyTable | 返回进程范围 MxuLatencyTable 单例的访问器; matmul 成本路径调用的入口点。请参阅 MXU 延迟概述。 |
SparseCoreTargetForModule | 为给定模块构建 SparseCoreTarget 的工厂 — 解析 tpu::Target 的 SparseCore 类似物。请参阅 SparseCore 目标描述符。 |
交叉引用
- 术语表 — 父快速参考;大约 83 个核心术语(代号、计算单元、内存空间、IR 名称、ABI 术语)都存在于此,并且此页面扩展了它们。解析那里的
MXU/SCS/LLO/PJRT/HBM,这里命名的结构/枚举/缩写。 - 代号备忘单 — 规范的三轴代号卡;最终选择的是
tpu::Target。 - ISA 概述 · MXU 插槽 · 内存空间枚举 · 结果Fifo / ArchRegister · MatPrep / IAR 闩锁槽 — 拥有枚举系列和 IAR/MRB/MSR/LMR/CBREG/RPU 缩写。
- 成本概览 · CycleTable 系列 · MXU 延迟概述 · Matmul 模式修改器 — 拥有
CycleTable、MxuLatencyTable和 matmul 模式成本修改器。 - 调度器概述 · MRB链分配器 · MRB FIFO / MSR 放置 · 编码器锁存器序列化 — 拥有
MrbChainAllocator、MRB/MSR 布局和 LSF 锁存器。 - 分析概述 · 跟踪条目编码器 · Riegeli 跟踪容器 · XPlane / XStat / TraceMe — 拥有
TraceEntry、XLine/XLineBuilder、GtcSpan和里格利。 - 集体概述 · 扭曲概述 · 路由概述 · VC余额分配 — 拥有
TwistedTorusND、ToroidalRouteCache、VirtualChannel、megacore 和 n-hop 路由。 - 目标概述 · 目标能力位域 · SparseCore 目标描述符 · Tpu拓扑结构 — 拥有
tpu::Target、SparseCoreTarget、TpuCoreParts和TpuTopology。