Skip to content

扩展术语表

本页上的所有名称和符号均适用于 libtpu-0.0.40-cp314 车轮中的 libtpu.so(构建 ID 89edbbe81c5b328a958fe628a9f2207d)。二进制文件并未被剥离:每个 C++ 符号都作为分解后的名称保留下来,因此此处的“术语是有根据的”声明意味着文字字符串或符号存在于二进制文件的名称/字符串表中。括号中的命中计数是针对此精确构建的 nm 名称表行计数(其分解名称包含该术语的符号);其他版本会有所不同。

摘要

这是根 术语表长尾同伴。根页面是大约 83 个术语的快速参考——代号、计算单元、内存空间、IR 名称、ABI 术语——每个页面都链接回的词汇表。此页面是“命名事物”的深层引用索引:具体的结构/类名称、枚举系列、ISA 页面缩写、分析器/跟踪名词以及重新实现者只有在深层 ISA、成本模型、调度程序、路由和分析页面中才会遇到的集体/网络术语。这些都不需要在快速参考中占有一席之地,但它们中的每一个都是读者最终会 grep 查找并需要定义的符号。

分割是经过深思熟虑且不重叠的。根词汇表定义了 MXUSCSLLOPJRTHBMTpuVersion。此页面定义了下面的“实现表面”:代号轴解析为的 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::AccumulatorsPerTensorCoreTarget::AllReduceScopedMemoryLimitBytesTarget::AllSublanesMaskTarget::AccessesToSameWordIncurCrossSlotVmemBankConflicts,...),每个成本/ISA/调度程序都通过查询而不是直接打开 TpuVersionTarget 出现在 20,124 个名称表符号中。代号轴最终解析为 Target。由 目标能力位域每个代号硬件常量 所有。
SparseCoreTargetTarget(111 次点击)的 SparseCore 端兄弟 — 带有 SparseCore 私有布局常量(SparseCoreSpmemStripeGranularityBytesSparseCoreStartReservedSmemWordOffsetSparseCoreStartReservedTecSmemWordOffsetSparseCoreParamPtrLocationWordOffset)。通过 SparseCoreTargetForModule 构建每个模块。归 SparseCore 目标描述符 所有。
TpuCoreParts每芯片核心库存结构(122 个命中)描述物理芯片如何分解为 TensorCore + SparseCore 部分(兆核配对、核心数量)。归 子核心分类 所有。
TpuTopologyPod/Slice 拓扑描述符(1,368 次点击)——路由和集体布局读取的芯片网格尺寸、包裹和核心布局。归 Tpu拓扑结构 所有。
MxuLatencyTableMXU 问题延迟查找表(19 次命中); GetSharedMxuLatencyTable 返回由 matmul 成本路径消耗的每个平台单例。归 MXU 延迟概述 所有。
CycleTable每个操作码的周期成本表(175 次命中);通过 CycleTable::Create(Target) 按代号构建,并通过每代子类的 util_registration::FunctionRegistry<TpuVersion, …>(JfCycleTablePfCycleTableVfCycleTableGlcCycleTableGfcCycleTable)进行选择。成本模型的主要每指令时序源。归 CycleTable 系列 所有。
IsaEmitter捆绑编码发射器(358 次命中),将预定的 LLO 降低为每代指令位;每个编解码器一个注册的发射器。归 ISA发射器注册表 所有。
LloRegionBuilderLLO 区域构建助手(5,425 次点击),用于在调度/发射之前组装每束 LLO IR 区域。归捆绑包型号概述所有;另请参见 LLO 操作码枚举
ConversionPatternRewriter驱动 MHLO→TPU→LLO 合法化重写的 MLIR 方言转换重写器(10,346 次点击,其 ConversionPatternRewriterImpl)。标准 MLIR 机械,在这里大量实例化。由 转换模式重写器方言转换合法化器 所有。
MrbChainAllocatorMatrix-Result-Buffer 预留分配器(15 次点击)——一个按时间排序的预留管理器(AdvanceTimeToExtendMrbReservationReleaseMrbReservation),它在整个计划中链接 MRB 生命周期。归MRB链分配器所有;放置在MRB FIFO / MSR 放置
TwistedTorusND路由层使用的 N 维扭曲环面拓扑模型(31 个命中;TwistedTorus* 126)来描述其 ICI 网格是偏移包裹的而不是简单的环形的 Pod。归 扭曲概述 所有。
ToroidalRouteCache环形/扭曲环路路径的记忆路由存储(123 次命中)— 缓存计算的 ICI 路由,以便路由生成器不会为每个集合重新派生它们。归环形路由缓存所有;编解码器位于 路由缓存编解码器
ContinuationQueueSyncFlag 支持的工作队列(151 次命中),其可用计数被读入同步标志字 (SparseCoreContinuationQueues::GetAvailableCountSflag);每个核心的大小来自 Target::ContinuationQueueConfig::PerCore(通过 absl::c_all_ofsize_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(例如 MatmulModeAttrMatmulModeAttrStorage),因此对裸名称加上 Attr 的 grep 确认它是一个操作属性枚举,而不是一个普通 C enum。接地气是属性符号。

术语定义
MatmulModeMXU matmul 操作模式枚举(110 次命中;MatmulModeAttr)— 选择矩阵槽运行的收缩/累加模式。归 MXU 插槽 所有; Matmul 模式修改器 中的成本修正。
MatmulDataFormatMXU 操作数数据格式枚举(291 次命中;MatmulDataFormatAttr,带有 MatmulDataFormatAndScalingFactor 配对)— 元素类型/打包 matmul 馈送(bf16、int8、fp8,...)。归MXU 插槽所有; 装拆精度 精密包装。
MatpushModifier矩阵推送修饰符枚举(12 次命中)— 每个 matpush 标志,用于调整操作数如何锁存到 MXU 前端。归 MatPrep / IAR 闩锁槽 所有。
GainLatchModeMXU 增益/比例锁存模式枚举(176 个命中;GainLatchModeAttrGainLatchModeAndScalingFactor)— 控制如何将每行增益/比例因子与数据格式一起锁存。归 MXU 插槽 所有。
ResultFifoMXU 结果 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 操作名册 所有。
MemorySpaceLLO 内存空间枚举(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同伴。从普通整数枚举编码捆绑包的重新实现者将错过该属性携带的“成对”缩放因子/存储——数据格式和增益模式被锁在一起(MatmulDataFormatAndScalingFactorGainLatchModeAndScalingFactor),而不是独立的。


ISA 缩写

ISA 插槽页使用的短寄存器/锁存器缩写,无需扩展。每个都是特定硬件寄存器类或锁存器状态的矩阵推送/编码器管道的名称。基础是驼峰式符号系列 - 注意二进制文件使用驼峰式命名(IarMsr),因此大写 grep (IAR) 返回零。

缩写扩展/定义
IAR (Iar) 每个 TensorCore 的Input Aactivation Register — 矩阵推送管道填充的 MXU 前端操作数锁存寄存器(4,793 个 Iar 命中;IarNumberReadIarSetSublaneIar/SetRawIar/SetLaneIariar_initialization)。每个 TensorCore 的 IAR 数量是 Target 访问器 (IarsPerTensorCore)。归MatPrep / IAR 闩锁槽所有; IAR 的容量。
MRBMatrix-Result Bbuffer — 回写前保存 MXU 输出的缓冲区(Mrb,139 次命中)。由 MrbChainAllocator 分配(参见上面的结构)。归 MRB链分配器 所有。
MSR (Msr)Matrix Staging Register(15,277 Msr 命中)— 矩阵管道插入/保留的暂存寄存器(诊断拼写为“矩阵暂存寄存器”;可通过 XmrToMsrXmr 相互转换)。与 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 次点击;LoadMatrixLmrWidthMatrixMultiplyLmrWidth,“平台的 LMR 宽度无效。”)。每个平台验证的字段。归 MatPrep / IAR 闩锁槽 所有。
CBREG (Cbreg)Constant/Base REGister — 基址加偏移量寄存器类(379 个命中;CbregFieldReadCbreg/WriteCbreg/AddCbregCbregMetadata,带有原始字段cbreg_offset/cbreg_size) 用于寻址/常量操作数。归 插槽立即 所有。
LSF (Lsf)A Latch-State Flag 在向量矩阵推送上(11 次命中;VlatchLsfEmitVectorLatchLsfLsfGainLatchMode,“此平台不支持指令 vmatpush.lsf。”) — 每个平台门控锁存器修饰符。归 编码器锁存器序列化 所有。
RPU (Rpu)向量R旋转/跨通道操作类型(103 次命中;RpuOp,断言 first_rpu_inst->opcode() == LloOpcode::kVectorRotate,“filtered_xlu_ops 应该只有 TransposeTiles 和 RpuOperations。”) — XLU 系列旋转操作。归 XLU 操作名册 所有。

注意 — 在 grep 名称表时,大小写很重要。 文字 IAR(全部大写)具有 命中;接地符号是 CamelCase Iar(4,793 次点击)。同样,MatPush 也不存在——二进制拼写为 Matpush (97)。使用二进制文件的大小写进行 Grep,否则您会断定某个功能缺失(而实际上它并不存在)。


分析条款

根术语表的 XProf 架构条目下方的跟踪/分析管道中的命名名词 (XPlane/XEvent/XStat/XSpace/TraceMe)。这些是分析器页面读者遇到的构建者跨度。接地气是阶级的象征。

术语定义
TraceEntry硬件/定序器发出的每核原始跟踪记录(3,863 个命中) - 前 XEvent 形成每个编解码器系列的 CoreDispatcher 解码。归跟踪条目编码器所有; XEvent 的跟踪条目 中的转换。
XLine / XLineBuilderXPlane 中的单个时间线行(95 个 XLine 命中); XLineBuilder::AddEvent 将转换后的 XEvent 附加到其上。 TraceEntry 流所在的行。归 XPlane / XStat / TraceMe 所有。
GtcSpanA Global Time C计数器跨度(112 个命中;GetEntriesGtcSpanGetTraceDroppingGtcSpan)— 一批跟踪条目覆盖的硬件时间戳窗口,用于对齐每个核心时钟并报告丢失的跟踪间隔。归 跟踪条目编码器 所有。
里格利跟踪 blob 被序列化为的记录容器格式(2,757 个 riegeli 命中) — 一个成帧的、可选压缩的记录流。 XProf 有效负载周围的磁盘信封。归 Riegeli 跟踪容器 所有。
StaticMap(元数据 ID)探查器用于 XEvent/XStat 元数据 ID 解析的冻结查找(请参阅结构);探查器端 StaticMapBase 将统计名称映射到整数 ID。由 XEvent 元数据 IDXStat 元数据 ID 所有。

集体条款

集合或路由页面使用的结构/拓扑名词。其中一些已实现为 Structs 下列出的路由类(TwistedTorusNDToroidalRouteCache);这里的条目是描述性术语和 VirtualChannel 机械。每行均注明接地情况。

术语定义
VC / VirtualChannelV虚拟C通道 — ICI 链路的逻辑子通道(92 个 VirtualChannel 命中;VirtualChannelConfiguration)。通过 VC 分配器(VcBalanceThresholdVcBalanceUsage)在链路之间进行平衡,以避免共享物理链路上的队头阻塞。归 VC余额分配 所有。
扭曲环面一种环面拓扑,其环绕是偏移(剪切)而不是对齐的(18 个字符串命中“扭曲环面”;类 TwistedTorusND)。让吊舱呈现出普通环面无法呈现的平衡直径网格;路由层明确地对其进行建模。归 扭曲概述 所有。
n-hop多跳 ICI 路由模式(接地为 NHopRoutingTableGeneratorEnableNHopRoutingIsNHopRoutingtpu_slice_builder_ici_route_force_n_hop 标志) — 一种遍历多个 ICI 链路而不是单个直接跳的路由,当拓扑或链路故障排除一跳路径时使用。由 路由表生成获取静态路径 所有。
兆核每芯片两个 TensorCore 执行模式(Megacore,466 个命中;“megacore”294 个小写字符串命中)——这种配对可以让芯片的两个核心进行集体融合。归巨核融合所有; Megacore 偶数/奇数 中的偶/奇核心分裂。
RDHRedundant-**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 生成的存储结构(MatmulModeAttrStorageGainLatchModeAttrStorage,...)。看到 …AttrStorage 符号可以确认相邻的 …Attr 是方言注册的枚举属性,而不是普通整数。上面的 Enum Families 集群的逆向工程里程碑。
…AndScalingFactor成对编码后缀(MatmulDataFormatAndScalingFactorGainLatchModeAndScalingFactor)标记枚举,将比例因子与一个属性中的模式一起锁定。 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 目标描述符

交叉引用