跳到主要内容

G5 计算建模设计规格

版本:1.0.0 状态:Accepted 创建日期:2026-06-20 最后更新:2026-06-20 作者:xiang.li 前置互联通信G5仿真建模设计规格

版本号规则 (SemVer):

  • major (X.0.0):架构变更、接口不兼容、公式体系重构
  • minor (1.X.0):新增算子模型/精度、新增章节、扩展接口(向后兼容)
  • patch (1.0.X):修正笔误、补充说明、更新实现说明

变更历史

版本日期变更说明
1.0.02026-06-20初版:CUBE 矩阵乘计算建模——厂商中立抽象 + 翻译 TPUPerf 闭式 cycle 公式 + 访存边 + overlap + 标定门控

@tbl-spec-gcm-01 文档变更历史


概述

本 spec 定义 G5 仿真中计算侧(CUBE 矩阵乘)的建模架构:把当前未标定的 placeholder 升级为「翻译自算能 TPUPerf 闭式 cycle 公式的厂商中立行为级模型」,并显式声明其标定边界。本 spec 首篇只覆盖 CUBE 矩阵乘(mm2 与量化 smm2),向量计算与 HAU 排序留待后续篇。

计算侧建模产出三件事:单 kernel 的计算 cycle(翻译 TPUPerf 公式)、访存边(自建,TPUPerf 无)、二者的 overlap(显式可标参数)。三者合成 kernel 时长,喂给 G5 事件驱动时序层。

背景

G5 对同一条仿真链路两侧保真度不对称:通信侧(CDMA/PAXI/RC-Link/C2C/Switch)按 SG2262 spec 建到 cycle 级可信,计算侧只有形状骨架、参数未标定。当前计算时延模型存在三个量化问题:

  • 计算速率常数无 spec 背书:速率常数(lane / cube 维度 / 频率 / 启动周期)是 placeholder,源码已标 [UNVALIDATED],算出的绝对计算时延不可信。
  • 缺访存边:现有 cycle 公式只算 PE 阵列乘加吞吐,未计入操作数从片上存储读入的时间,访存受限算子(decode、部分 attention)被系统性低估。
  • 覆盖不全:只建了矩阵乘 nn 一种转置格式,缺 nt/tt 变体、缺量化矩阵乘、缺 bank 冲突惩罚项。

驱动力:G5 的目标是端到端推理性能仿真器,计算侧不可信使端到端 TTFT/TPOT 失去地基。算能已有 SystemC 仿真器 TPUPerf,其矩阵乘 cycle 是闭式公式,可作为计算建模的来源——本 spec 定义如何复用它、复用到什么程度、以及在无真机标定时如何诚实界定可信范围。

名词定义

下表钉死本 spec 用到的核心专有名词,后文统一语言。

名词定义与易混淆概念的区分
TPUPerf算能内部 SystemC TLM-2.0 cycle-approximate 计算仿真器,含 SG2262 矩阵乘的闭式 cycle 公式与 G5 区别:TPUPerf 是 C++ SystemC、SG2262 专属、分钟级 batch;G5 是 Rust event-driven 端到端编排
CUBETPU 中执行矩阵乘/卷积的张量计算单元,SG2262 含 4 个并行子 CUBE与 ARRAY 区别:ARRAY 是向量计算阵列(16 LANE),本 spec 不涉及
PE 阵列矩阵乘的二维脉动计算网格抽象,厂商中立SG2262 的 CUBE 是 PE 阵列的一个参数实例
dataflow矩阵乘三维 M/N/K 哪一维驻留阵列的策略(OS/WS/IS)不同芯片选不同 dataflow,抽象层用参数表达
mm2.nn / mm2.nt / mm2.tt矩阵乘的三种转置格式(左右矩阵是否转置),TPUPerf 中 des_tsk_eu_typ = 4/5/6三者 cycle 公式结构相同、系数不同
smm2量化矩阵乘(short matmul),含 bias / block-quant 项,TPUPerf des_tsk_eu_typ 含 13与 mm2 区别:smm2 用区间重叠法算 bank 冲突、有额外 bias_lat / 量化分支
计算 cyclekernel 在 PE 阵列上的纯计算节拍数,由翻译的闭式公式给出不含访存等待;与访存边正交
访存边kernel 操作数从片上存储(LMEM)/外存(HBM)读入的时间TPUPerf 与现 G5 均无此项,本 spec 自建
带宽域一条访存边占用的物理带宽资源类别(LMEM 总线 / HBM / D2D / C2C)不同带宽域独立,错配会导致带宽口径错误
overlap factor计算与访存重叠比例,0 = 完全串行(相加),1 = 完全重叠(取 max)显式可标参数,非二值假设
bank 冲突惩罚操作数与结果落在同一 LMEM bank 时的额外 cycle,加在 K-loop 项内TPUPerf 中是计算侧惩罚项,非访存子系统模型
ch_per_cyc每 cycle 处理的 K 维通道数,按精度缩放(INT8 基准,BF16 半,FP32 四分一)决定 K-loop 迭代数
标定锚点用于校验模型绝对精度的真机实测点当前无 SG2262 真机锚点
unvalidated 门控底层未标定时,端到端绝对指标(TTFT/TPOT/SLO)不对外返回,只返回相对比较防止 placeholder 绝对数字被当真
厂商中立抽象compute 单元的参数化抽象(PE 阵列维度 + dataflow + 标定参数),具体芯片作参数实例与硬编码 SG2262 结构区别

目标与非目标

目标 / 需求清单(逐条可核对):

  • 需求:CUBE 矩阵乘计算 cycle 翻译 TPUPerf 闭式公式,给定同一组输入(shape + 精度 + 操作数地址),G5 输出逐 kernel 严格等于 TPUPerf 输出(无容差)
  • 需求:覆盖 mm2 的 nn / nt / tt 三种转置格式,以及量化 smm2 的 nn / nt / tt 与 block-quant 变体。
  • 需求:计算 cycle 公式的速率常数(lane 数 / eu 数 / ch_per_cyc / 启动周期 / bank 冲突比例)从芯片参数实例(YAML)加载,SG2262 作为一个参数实例,公式结构与参数分离。
  • 需求:每个 kernel 产出独立的访存边时长,且每条访存边显式标注其带宽域;KV cache 读取的带宽域与通信侧是否共享必须在集成点画清。
  • 需求:kernel 时长 = combine(计算 cycle 时长, 访存边时长, overlap_factor),overlap_factor 是显式配置参数,默认保守(非重叠),报告标注该参数对结果的敏感度。
  • 需求:端到端绝对指标在底层未标定时被门控——unvalidated 标志置位时,SLO 判定只返回相对比较结果,不返回绝对 TTFT/TPOT 数值。
  • 需求:spec 显式声明标定边界——本模型产出相对比较 / 设计空间探索可信、绝对值不可信,绝对精度依赖未来真机锚点。

非目标(明确不做):

  • 非目标:绝对 TTFT/TPOT/SLO 精度。无 SG2262 真机锚点,翻译 TPUPerf 继承其未对硅验证的精度,绝对值不作承诺。
  • 非目标:向量计算(ARRAY/EU)与 HAU 排序建模,留待后续篇。
  • 非目标:NoC / D2D / C2C 通信建模,走 CrossRing 与既有通信侧 spec,不在本 spec。
  • 非目标:请求级 DES(continuous batching / PD 分离),本 spec 只到单 kernel 时长,端到端调度层另立 spec。
  • 非目标:运行时接入 TPUPerf。TPUPerf 是 cycle-approx batch 仿真器,跑一次需 elaborate 整芯片、分钟级,且无单 kernel compute API,不进 G5 运行时热循环。
  • 非目标:PE 阵列内部逐节拍 cycle-sim(fill/drain 微观建模)。对 LLM 大算子收益 <1% 且需不可得的微架构常数。

用例说明

假设本设计已实现,一个开发者评估某并行策略下 prefill 的计算时长:

  1. 输入:一个矩阵乘 kernel 描述——M=4096, N=2048, K=5120、精度 BF16、转置格式 nn、操作数与结果的片上地址。
  2. 厂商中立抽象解析:从芯片参数实例(SG2262 YAML)加载 PE 阵列参数——lane=16, eu=8, ch_per_cyc(INT8 基准)=32 → BF16=16, init_nn=44
  3. 计算 cycle:按 mm2.nn 公式 ceil(4096/16)·ceil(2048/8)·(ceil(5120/16)+bank_conflict)+44,bank_conflict 由操作数/结果地址是否同 bank 决定。
  4. 访存边:按操作数字节数 / LMEM 总线带宽算读入时间,标注带宽域 = LMEM 总线。
  5. 合成:kernel 时长 = combine(计算时长, 访存时长, overlap_factor=0)(默认非重叠 = 相加)。
  6. 输出:单 kernel 时长(ns),喂给 G5 事件驱动时序层。开发者扫不同并行策略时,得到的是相对排序可信的计算时长——若请求绝对 SLO 判定,unvalidated 门控返回"绝对值不可信,仅相对比较"。

详细设计

概念模型

计算侧 kernel 时长由三个正交分量合成:

分量来源物理含义
计算 cycle 时长翻译 TPUPerf 闭式公式 ÷ 频率PE 阵列纯计算节拍
访存边时长自建:操作数字节 ÷ 带宽域带宽操作数读入等待
overlap显式 overlap_factor 参数计算与访存的重叠程度

@tbl-gcm-three-parts 计算 kernel 时长的三个分量

合成关系:

$$\begin{equation} t_{\text{kernel}} = (1 - \rho) \cdot (t_{\text{comp}} + t_{\text{mem}}) + \rho \cdot \max(t_{\text{comp}}, t_{\text{mem}}) \label{eq:gcm-kernel-combine} \end{equation}$$

其中 $\rho$ = overlap_factor ∈ [0, 1],$\rho=0$ 为完全串行(相加),$\rho=1$ 为完全重叠(取 max)。默认 $\rho=0$(保守非重叠)。

厂商中立抽象

矩阵乘计算单元抽象为「PE 阵列 + dataflow + 标定参数」,具体芯片作参数实例:

  • PE 阵列参数:lane 数、eu 数、ch_per_cyc(按精度的基准通道数)、启动周期、bank 冲突比例表。
  • dataflow:矩阵乘三维 M/N/K 到阵列空间轴/时域轴的映射(OS/WS/IS),影响公式中哪一维归 lane、哪一维归 eu、哪一维归 ch。
  • 参数实例:SG2262 的 CUBE 是一组参数值(见附录 C),存于芯片配置 YAML,不硬编码进公式。

设计原理:CLAUDE.md 定义"芯片是输入维度",compute 域绑死单厂商与平台定位矛盾。通信侧的拓扑/路由已厂商中立,compute 域补齐中立性,G5 才能仿真任意芯片。公式结构(ceil-tiling + 启动税 + bank 冲突)是跨厂商通用的脉动阵列建模骨架,差异只在参数。

计算 cycle 公式(翻译自 TPUPerf)

公式结构是接口契约,速率常数从参数实例加载。记 $M$ = 输出通道数、$N$ = 输出宽、$K$ = 归约维、$L$ = lane 数、$E$ = eu 数、$C$ = ch_per_cyc、$B$ = bank 冲突惩罚(0/1/2)。

mm2.nn(左右矩阵均不转置,$K$ 取左矩阵归约维):

$$\begin{equation} \text{cycle}_{\text{nn}} = \lceil M/L \rceil \cdot \lceil N/E \rceil \cdot \left( \lceil K/C \rceil + B \right) + \text{init}_{\text{nn}} \label{eq:gcm-mm2-nn} \end{equation}$$

mm2.nt(右矩阵转置,$K$ 取右矩阵宽):

$$\begin{equation} \text{cycle}_{\text{nt}} = \lceil M/L \rceil \cdot \lceil N/E \rceil \cdot \left( \lceil K/C \rceil + B \right) \cdot \lambda + \text{misc}_{\text{nt}} \label{eq:gcm-mm2-nt} \end{equation}$$

其中 $\lambda$ = loop_cycle 系数,由结果精度与 bias 配置决定(FP32/INT32 且无 bias 时为 2,否则 1)。$\text{misc}_{\text{nt}}$ 是 nt 格式特有的加性常数,与 nn/tt 的 $\text{init}$ 语义不同——nt 的 init_cycle 为 0,加性项是 misc(参数实例值见附录 C)。

mm2.tt(左右矩阵均转置):

$$\begin{equation} \text{cycle}_{\text{tt}} = \lceil M/L \rceil \cdot \lceil N/E \rceil \cdot \left( \lceil K/C \rceil + B' \right) + \text{init}_{\text{tt}} \label{eq:gcm-mm2-tt} \end{equation}$$

其中 $B'$ = (bank 冲突 > 0 ? 1 : 0),是 tt 格式特有的简化惩罚。

量化 smm2:结构同上,差异为——bank 冲突用区间重叠法(操作数 bank 范围两两重叠计数)而非地址相等判断;$N$ 维有下界 $\max(N, 2E)$;含额外 bias_lat 项与 block-quant 分支。量化是独立子模型,覆盖工作量与 mm2 同量级,不可简化为"加几个系数"。

精度缩放$C$(ch_per_cyc)与 $E$(eu 数)按精度从参数实例各自独立加载,不由 INT8 基准算术推导。SG2262 实例中 $C$ 恰为 INT8 基准 / BF16 取半 / FP32 取四分一(1/2/4 是该芯片取值的巧合,非建模假设——若某芯片三值不成 1/2/4 比例,按独立加载值算以保证 G5 == TPUPerf)。$E$ 选择口径为二分:BF16 走 eu_16bit、INT8 与 FP32 均走 eu_8bit(与 $C$ 的三分口径不对称,FP32 的 eu 不单列)。

bank 冲突惩罚的可实现性:mm2 的 $B$ 由操作数地址与结果地址是否落在同一 LMEM bank 决定。首篇 G5 解析编排层不产出真实 LMEM bank 地址布局,故 $B$ 暂置 0(stub),该项标记为"首篇不建模"。影响幅度:$B \in \{0,1,2\}$ 加在 K-loop 项 $\lceil K/C \rceil + B$ 内,大算子 $K$ 大时 $B$ 占比 $< 1\%$(如 $K=5120, C=16$$\lceil K/C \rceil = 320$$B=2$ 仅占 0.6%);小算子占比上升,需在该场景标注。后续为 G5 mapping 加 LMEM 地址布局后启用真实 $B$(见后续工作)。

bank 冲突比例(MFU 报告项):TPUPerf 另产出 bank_conflict_ratio(0→0、1→0.67、2→1.0),用于 MFU 报告,与 cycle 计算分离。本 spec 将其纳入为可选 MFU 观测量(不进 cycle),首篇 $B$ stub 为 0 时该比例恒为 0,启用真实 $B$ 后生效。

访存边

TPUPerf 与现 G5 均无访存边——TPUPerf 的 bank 冲突是计算侧惩罚项,其 LMEM 模型仅为固定延迟(flat latency),bank 冲突在访存层是未实现 stub。本 spec 自建访存边:

$$\begin{equation} t_{\text{mem}} = \sum_{\text{operand}} \frac{\text{bytes}_{\text{operand}}}{\text{BW}_{\text{domain}(\text{operand})}} \label{eq:gcm-mem-edge} \end{equation}$$

每个操作数的读取归属一个带宽域,带宽取该域参数(LMEM 总线宽度 × 频率 / HBM 带宽 / 等)。带宽域参数来自 TPU spec 总线宽度(如 512-bit DMA 总线)。

访存层 bank 冲突:首篇仅用峰值带宽,不建模访存层 bank 冲突(同 bank 操作数的访存串行化),TPUPerf 该项也是 stub。后果:访存边有效带宽偏乐观(用峰值当有效),访存时长偏短。该高估在标定边界声明范围内(绝对值不可信),待 SRAM 时序 spec 获取后补访存层 bank 冲突。

带宽域参数来源:SG2262 的 LMEM/SRAM 访问时序与 GDMA 搬运 spec 原始文档尚未获取。首篇用 TPU spec 总线宽度推算的峰值带宽占位,spec 显式标注访存边绝对值不可信。该参数随原始文档获取后修订(见后续工作),与整体"相对可信、绝对不可信"边界一致。

overlap

kernel 内计算与访存的重叠由显式参数 $\rho$ 控制(见 ),不采用二值假设。设计原理:完美重叠($\rho=1$)会乐观、完全串行($\rho=0$)会高估,二者都是无依据的极端。CP 评估曾因完美重叠假设导致拐点乐观偏差——本 spec 不重蹈,而是把 $\rho$ 暴露为可标参数,报告同时给出该参数的敏感度区间。默认值取 $\rho=0$(保守非重叠),理由:标定不足时高估比低估安全(不会误判 SLO 可满足)。

标定边界与门控

模型分两层验收,互不混淆:

  • 翻译正确性(本 spec 可证伪的核心):给定同一输入,G5 计算 cycle 严格等于 TPUPerf 输出。验收标准是 G5 == TPUPerf,无容差,可写严格断言。这一层验的是"翻译对不对",不是"对硅对不对"。
  • 对硅正确性(本 spec 不承诺):TPUPerf 常数未对硅验证、repo 无标定数据,翻译继承其未知绝对精度。无真机锚点时,端到端绝对指标不可证伪。

门控规则:底层(计算/访存)未取得真机标定锚点时,unvalidated 标志置位。该标志置位时,端到端 SLO 判定函数只返回相对比较(配置 A vs B 的相对优劣),不返回绝对 TTFT/TPOT 数值。防止 placeholder 绝对数字进入 demo / 汇报被当真。

集成点

  • 上游:G5 mapping 层产出矩阵乘 kernel 描述(shape + 精度 + 转置格式 + 操作数地址)。
  • 下游:本模型产出单 kernel 时长(ns),喂 G5 事件驱动时序层串端到端。
  • 与通信侧的带宽域边界:decode 阶段 KV cache 从 HBM 读,这条访存边的带宽域与 CrossRing 通信侧(NoC/D2D/C2C)是否共享同一段物理带宽(如 HBM 控制器),是端到端集成的关键决策——错配会复现"CP 评估走错带宽域"的同构错误。本决策移出首篇范围、defer 到请求级 DES spec:首篇只覆盖 CUBE 矩阵乘(prefill 计算主导),KV 读 / continuous batching / PD 分离属请求级调度层,带宽域共享关系在该层定义。首篇约束:访存边显式携带"带宽域"标签字段,使后续 DES spec 能定义共享矩阵而无需改本 spec 的访存边模型。

引用

  • TPUPerf 矩阵乘 cycle 公式来源:算能内部 TPUPerf 仓库 spec/sg2262/src/mm2_cmd_sg2262.ccMM2Cmd::get_custom_profile / SMM2Cmd::get_custom_profile),gerrit Brahma 分支。
  • SG2262 微架构参数来源:TIU spec v1.0.2、TPU_SPEC v1.0.5、TPU Tensor 指令集、TPUPerf 开发规范(存于仓库外 项目/TPU/,非本 repo)。
  • 通信侧建模体例参照:G5-CDMA建模设计规格
  • 计算建模现状与缺口:G5-计算建模现状与缺口(本 spec 实现后更正其"计算侧无 spec 背书"结论)。

备选方案

维度翻译闭式公式(选定)roofline + ηprofile 查表运行时接入 TPUPerf脉动 cycle-sim
计算时长来源TPUPerf 闭式公式翻译进 RustFLOPs/峰值 × η真机实测查找表TPUPerf SystemC 运行时逐节拍模拟
标定依赖继承 TPUPerf 常数经验 η / 真机 η真机网格同翻译微架构常数
厂商中立是(公式结构通用)否(换芯片重测)否(SG2262 专属)部分
端到端可跑是(Rust 标量快)否(分钟级 batch)否(跑不动)
bank 冲突/转置精度有(翻译保留)无(η 抹掉)有(实测含)

选择理由:翻译闭式公式在四条上胜出——(1) 复用算能已建的真实公式(含 bank 冲突 + 转置 + 量化),不自己猜常数;(2) 全 Rust、厂商中立、端到端可跑;(3) 公式是 ~15 行纯整数运算,可翻译性高,G5 现有 mm2.nn 已是其子集;(4) 验收标准可证伪(G5 == TPUPerf)。否决其余:roofline+η 抹掉 bank/转置细节、profile 查表需真机且换芯片重测、运行时接入被无 compute API + 分钟级 batch 堵死、脉动 cycle-sim 需不可得微架构常数且跑不动端到端。完整业界对比见附录 A。

非功能性需求

维度本 spec 的考虑
性能(仿真精度)翻译正确性:G5 == TPUPerf 无容差。绝对精度:不承诺(无真机锚点),相对排序可信
性能(仿真速度)计算 cycle 为闭式标量计算,O(1),不进端到端热循环瓶颈
兼容性compute 参数下沉芯片 YAML,需同步更新 configs/chips/_template.yaml;新增字段不破坏既有通信侧配置
可观测性kernel 时长输出含 max/P95(继承通信侧报告规范),bank_conflict_ratio 作可选 MFU 观测量
安全性 / 隐私N/A——内部仿真器,不暴露公网,不处理用户数据

局限与后续工作

局限(本设计的代价)

风险 / 局限影响缓解措施
TPUPerf 常数未对硅验证绝对计算时延精度未知标定边界显式声明;门控绝对指标;待真机锚点升绝对
无真机标定锚点端到端绝对 TTFT/TPOT 不可证伪目标降级到相对比较 / 设计空间探索
访存边带宽域参数暂缺真实值访存时长用峰值带宽占位、偏乐观标注占位;获取 SRAM/GDMA spec 后修订
首篇 bank 冲突项 stub 为 0计算 cycle 略低估,大算子 < 1%、小算子占比上升标注;为 G5 mapping 加 LMEM 地址布局后启用真实 B
KV 读 HBM 带宽域共享关系未定decode TPOT / continuous batching 资源争用建模待精化defer 到请求级 DES spec;首篇访存边预留带宽域标签字段
三层(计算/访存/DES)独立未验证端到端偏差归因困难每层独立验收标准 + 计算层先严格对齐 TPUPerf 再叠加

后续工作

  • 向量计算 + HAU 排序建模(中优先级,前置:本篇 Accepted)。
  • 真机标定锚点接入(高优先级,前置:获得 SG2262 真机实测渠道)——升相对到绝对。
  • 访存层 bank 冲突建模(中优先级,前置:SRAM 时序 spec)。
  • G5 mapping LMEM 地址布局(中优先级,前置:无)——为操作数/结果分配 bank-distinct 地址,启用计算侧真实 bank 冲突项 B。
  • 请求级 DES 层(高优先级,独立 spec)——continuous batching / PD 分离 + KV-HBM 带宽域共享关系,消费本 spec 的 kernel 时长。

验收标准

场景指标目标值测试方法
mm2.nn 逐 kernelG5 cycle vs TPUPerf cycle严格相等(无容差)同输入跑 TPUPerf 与 G5,逐 kernel 比对
mm2.nt / mm2.tt同上严格相等同上,覆盖转置变体
量化 smm2(含 block-quant)同上严格相等同上,覆盖量化分支
精度缩放INT8/BF16/FP32 的 ch_per_cyc与参数实例一致各精度跑一组 shape
厂商中立换参数实例(改 lane/eu/ch)cycle 随参数变、公式不变注入不同 YAML 参数实例
overlap 参数ρ=0 与 ρ=1 的 kernel 时长分别等于相加与 max固定计算/访存时长,扫 ρ
门控unvalidated 置位时 SLO 查询返回相对比较、不返回绝对值置位标志,调 SLO 判定

单元测试关键 case

  • mm2.nn,M=4096,N=2048,K=5120,BF16,无 bank 冲突 → cycle 等于 TPUPerf 同输入输出。
  • mm2.nn,操作数与结果同 bank → 首篇 bank 冲突项 B stub 为 0(不建模);启用真实地址布局后应等于 TPUPerf 的 B 值。
  • 换 lane=16 参数实例 → cycle 按 ceil(M/16) 变化,公式结构不变。

附录

附录 A:业界调研

LLM 推理仿真器建模单算子计算时长的六种代表方式对比:

工具时长建模方式标定方式端到端 / 速度厂商中立性
ASTRA-sim 2.0event-driven 框架 + roofline compute backend(可插 measured)datasheet peak + η 或外部 profile能;$10^3$$10^4\times$中立
Calculon逐算子闭式解析(linear/bmm/softmax 各有式)分段阶梯 η 曲线(按传输规模分档)能(训练端到端);~1 ms中立
GenZroofline + 固定全局 η实测固定 η(A100=0.40,H100-8×=0.75)能;$10^6\times$中立
LLMCompasscycle-approx 分层 tiling + mapper 搜 schedule,利用率涌现mapper 自动寻优,无经验 η能但慢(4×A100 GPT-3 ~16 min)中立
SCALE-Sim脉动 cycle-sim 解析公式,fill/drain 启动税显式微架构常数(阵列维/dataflow/SRAM)算子/层级,非 LLM 端到端绑定脉动阵列
Vidurprofile 查表 + 随机森林回归真机 profile(CUPTI + PyTorch)能(请求级);$10^4$$10^5\times$中立但必须真机

@tbl-gcm-survey 单算子计算时长建模与标定方式横向对比

本 spec 的差异化定位:「翻译厂商已有闭式 cycle 公式作离线公式源、不运行时接入」有已发表先例——SCALE-Sim TPU(arXiv 2603.22535)把脉动算子路由到已验证解析模型、用线性回归把 cycle 标定到真机时间,与本 spec 机制同构(区别仅在公式来源:它自推脉动闭式,本 spec 直接复用厂商 TPUPerf 闭式);Calculon 的「逐算子闭式喂上层 DES」是同一思路另一半。相对 roofline+η(GenZ/Calculon):把 tile/wave 量化与启动税编进公式而非折进 η,精度上限高一档,代价是绑定特定芯片。相对 profile 查表(Vidur):解析外推天然覆盖未流片芯片/新形状,不需真机。生态位 = vendor closed-form as offline calibration source,介于 Calculon 阶梯 η 与 SCALE-Sim 脉动闭式之间。

引用(DOI 优先):

附录 B:实现说明

实现后补充,记录 spec 与实现的偏差。

附录 C:SG2262 参数实例

SG2262 CUBE 矩阵乘的参数取值(来源:TPUPerf 配置 + TPU_SPEC v1.0.5),落地到芯片配置 YAML,公式正文不含裸字面量。

参数来源
lane 数 $L$16TPU_SPEC(8 ARRAY × 2 LANE)
eu 数 $E$(INT8 / FP32)eu_8bitTPUPerf get_cube_ohow_8bit
eu 数 $E$(BF16)eu_16bitTPUPerf get_cube_ohow_16bit
ch_per_cyc $C$(INT8)32TPUPerf get_cube_ic_8bit
ch_per_cyc $C$(BF16)16TPUPerf get_cube_ic_16bit
ch_per_cyc $C$(FP32)8TPUPerf get_cube_ic_32bit
init_cycle(mm2.nn)44TPUPerf MM2Cmd
misc(mm2.nt)19TPUPerf MM2Cmd(nt 的 init_cycle=0)
init_cycle(mm2.tt)47TPUPerf MM2Cmd
bank 冲突比例(B=0/1/2)0 / 0.67 / 1.0TPUPerf bank_conflict_ratio(首篇 B stub 为 0)
LMEM 总线带宽域待获取(占位用 512-bit DMA 总线峰值推算)TPU_SPEC 总线宽度

@tbl-gcm-sg2262-params SG2262 CUBE 矩阵乘参数实例

$E$$C$ 三精度值各自从配置独立加载(非由 INT8 基准算术推导);量化 smm2 的 init_cycle(33/44/47)与 bias_lat / block-quant 项见 TPUPerf SMM2Cmd。LMEM 带宽域真实参数待 SRAM/GDMA spec 获取后填入。