推理性能建模章节维度发散与补章规划
名词定义
| 名词 | 定义 |
|---|---|
| G5 建模 | 借 gem5 思想做 SystemC AT 级(cycle-approximate)的 AI 芯片 perf model,workload 为 LLM 推理 |
| SystemC AT | SystemC 的 Approximately-Timed 抽象级,cycle 近似,业界俗称 CA model |
| cmodel | 功能模型(functional model),bit-accurate 不带时序,与 perf model 正交 |
| perf model | 性能模型,关心延迟/吞吐/资源占用,必须建立在功能正确性上 |
| 资源域 | 被建模的硬件/系统资源类别,如 compute / memory / interconnect / scheduler |
| 抽象层级 | 同一资源域内的建模精度档,如 analytical / trace-replay / event-driven / cycle-approx |
| 范式有向图 | 主流 perf model 工具(roofline/Calculon/ASTRA-sim/Vidur/gem5)的依赖关系图,边=标定依赖 |
| 判据(分层主线) | 何时升档 / 何时降档的 cost-precision Pareto 准则 |
发散命题
为 docs/knowledge/08-推理性能建模 章节,从第一性原理穷举做一个 SystemC AT 级 AI 芯片 perf model(简称 G5 建模)需要覆盖的所有维度。章节是 survey + 方法论,目标是给 G5 建模提供概念骨架。
- 类型:extension-ideation + research 落点
- 好候选标准:① 业界有互不相同的建模做法可横向对比;② 对 perf model 设计有实质影响;③ 锁在 cost-precision 判据上,不锁单一精度档
- 边界:覆盖 LLM 推理 workload 的所有建模维度,但主线锁 SystemC AT 这档的设计依据——其它档作为对比和判据应用示例
- 关键前提:gem5 / SystemC AT(10–500 KIPS)跑不动 LLM 端到端,任何 perf model 都必须分层 + 标定
建模精度阶梯(全局参照)
按"模拟一秒真实硬件需要多久 / 误差能压到多少 / 标定多难"三轴:
| 档 | 代表 | 速度(rel 实时) | 绝对误差 | 标定难度 |
|---|---|---|---|---|
| analytical(解析) | roofline, GenZ, Calculon | 10⁶× | ±10–30% | 低(datasheet + η) |
| trace-replay | profile-based 查表 | 10⁵× | ±5–15% | 中(需真机 trace) |
| event-driven(算子级 DES) | ASTRA-sim, Vidur | 10³–10⁴× | ±5–15% | 中 |
| cycle-approx(CA / SystemC AT) | gem5, SystemC AT, G5 | 10⁰–10²× | ±5–10% | 高(microarch params) |
| cycle-accurate(strict) | RTL sim | 10⁻³–10⁻¹× | ±0–2% | 最高 |
| functional(cmodel) | QEMU, ISS | 10⁴–10⁶× | 不算时序 | 低 |
每升一档:速度降 10–1000×,标定难度跳一档,绝对误差只小一档——体系结构仿真的核心矛盾。
G5 建模锁在 cycle-approx 档,但端到端跑不动,必须配合 analytical / event-driven 上层做分层。
维度地图:资源域为主轴
主轴 — 资源域(建模对象)
1. Compute — PE 阵列 / dataflow / 向量单元 / SFU
2. Memory — 寄存器 / SRAM bank / L2 / HBM ctrl / DMA
3. Interconnect — 片内 NoC / 片间 c2c / 系统拓扑 / 路由 / 集合通信
4. Scheduler-as-workload — 请求分布 / batcher / PD 分离 / continuous batching
Scheduler-as-workload 不是"被建模的硬件",是驱动建模的输入——continuous batching 等系统设计作为 workload 生成器,排队论作为分析工具。
副轴 — 每个资源域内的抽象层级谱系
analytical → trace-replay → event-driven → cycle-approx
各域谱系独立,不强制对齐档位名:
| 资源域 | analytical 档 | event-driven 档 | cycle-approx 档(G5 落点) |
|---|---|---|---|
| Compute | roofline + η | 算子级时长事件 | PE 阵列脉动节拍、tile 调度 |
| Memory | 带宽 roofline | KV cache 字节预算 + DMA 事件 | bank 冲突、HBM ctrl 队列、cache 命中 |
| Interconnect | alpha-beta | 集合通信 / 拓扑感知事件 | flit 级 NoC + c2c + router 仲裁 |
| Scheduler | 排队论闭式 | 请求级 DES(Vidur) | (不在 cycle-approx 档,作为 trace 输入) |
正交轴(贯穿所有资源域)
- 输入模式:trace-driven(采集回放) vs generative(workload 模型生成) vs hybrid
- 目标维度:latency / throughput / cost / power / MFU,多目标 Pareto
- 系统结构:同构 / 异构 die / chiplet / 跨代芯片混部
骨架 — 范式有向图(替代笛卡尔积)
roofline ──┐
├─→ Calculon ──→ ASTRA-sim ──→ Vidur
│ ↑ ↑
│ │ │
│ └─ profile ────┘
↓
LLMCompass
↓
gem5 / SystemC AT ←── G5 落点
边的含义 = 标定依赖:Calculon 用 roofline 闭式做算子时长,ASTRA-sim 可吃 Calculon 输出做端到端,Vidur 可消费 ASTRA-sim 标定。G5(SystemC AT)产出 kernel 级 cycle 数,反向喂给 ASTRA-sim / Vidur 提升其算子时长精度。
横切关注点
| 横切轴 | 描述 | 各资源域的呈现 |
|---|---|---|
| workload spec | 模型/算子/请求分布从哪来 | Compute 喂算子形状,Memory 喂 KV 分布,Interconnect 喂集合通信调用,Scheduler 喂请求到达 |
| validation & 对标 | 各档输出怎么验,误差来源分层 | analytical 对 trace,cycle-approx 对 RTL/硅后 |
| 设计空间探索(DSE) | perf model 被用来回答什么问题 | 选 PE 配比 / 选并行策略 / 选实例配置 |
| lifecycle | 每次评估的 stage 流 | workload spec → hardware spec → mapping → evaluation → reporting |
章节落地规划(9 篇)
| 篇 | 类型 | 内容 |
|---|---|---|
| 01 总览 + 范式有向图 | 新写 | 6 种主流 perf model 定位、标定依赖图、升降档判据、SystemC AT 在阶梯里的位置 |
| 02 Compute 资源域 | 改造 | 从 roofline 到 PE 阵列 CA 的谱系,各档建模手段、标定方式、误差来源 |
| 03 Memory 资源域 | 改造 | KV cache / bank 冲突 / HBM 控制器 / DMA 的谱系 |
| 04 Interconnect 资源域 | 重写 | 片内 NoC + 片间 c2c + 拓扑路由 + 集合通信的谱系(自包含,不指向 interconnect 章) |
| 05 Scheduler-as-workload | 新写 | continuous batching / 请求分布 / PD 分离 / chunked prefill 作为 workload 输入,排队论作为分析工具 |
| 06 输入模式与 workload spec | 新写 | trace-driven vs generative,采集方法、合成 workload 模型、混合策略 |
| 07 多目标与异构 | 新写 | Pareto 输出、异构 die/chiplet 建模、跨代芯片混部 |
| 08 标定 / 验证 / DSE | 改造 | 各档标定方法、对标对齐三要素、设计空间探索范式 |
| 09 G5 落地示例 | 新写 | SystemC AT 在 compute/memory/interconnect 三域的具体选择、scheduler trace 输入接口、与上层算子级 DES 的耦合 |
关键设计决策
- 主轴是资源域不是时间尺度 — 时间尺度是仿真器属性(跑多快),不是建模对象属性。资源域(compute/memory/interconnect/scheduler)才是被建模系统的本体维度。
- 范式有向图替代笛卡尔积 — 9 cell 矩阵里大半塌缩,真实结构是工具间的标定依赖图。
- 接口层消失 — 不再独立成篇,降级为各资源域内部的"标定子节"。
- L3 服务系统降级 — continuous batching 是被建模对象,作为 workload 输入(Scheduler-as-workload),不作为建模层。
- survey 锁判据不锁 cell — 主线讲 cost-precision Pareto + 升降档条件,SystemC AT 作为最后一篇的判据应用示例。
- 借鉴项目 Granularity 的精度独立思想 — 同一对象多档建模是 insight,但不与时间尺度做笛卡尔积。
执行纪律(每篇都守)
- 先查后写 — 写任何一篇前先查项目已有 docs(interconnect / knowledge/03 长上下文 / knowledge/06 大模型解构 / validation),列出可复用内容,不重复调研
- 自包含 — 04 Interconnect 篇按你指定自包含重写,不指向 interconnect 章
- 洗掉项目背书 — survey 中立讲业界,G5 建模作为"落地示例"在 09 出现,不在其它篇做立论
- 资源域内层级谱系都讲 — 不只讲 cycle-approx 档,各档都给定位 + 标定路径 + 误差范围
对抗审视采纳记录
对抗 Agent 提出 8 个攻击点,处理结果:
| # | 攻击 | 结果 |
|---|---|---|
| 1 | 时间尺度是仿真器属性,不是建模对象 | 接受,主轴改资源域 |
| 2 | 笛卡尔积大量 cell 塌缩 | 接受,改范式有向图 |
| 3 | 接口层是主轴错选的代偿 | 接受,接口降级为标定子节 |
| 4 | trace-driven vs generative 漏了 | 接受,补正交轴 |
| 5 | L3 服务层强行归入性能建模边界失守 | 部分接受,降级为 workload 输入,排队论作为分析工具保留 |
| 6 | 主线锁单 cell 失焦 | 接受改法,锁判据不锁 cell |
| 7 | 多目标 + 异构缺席 | 接受,作为正交轴补 |
| 8 | "形式相同内涵不同"虚假统一 | 保留意见,各域独立讲谱系不强制对齐档位名 |
开放问题
- 9 篇是否仍偏多,07(多目标+异构)与 06(输入模式)可能可并篇
- 09 G5 落地示例的颗粒度——是给概念还是给具体 SystemC class 设计示意,待写时定
- 部署系统层(多集群/容错/扩缩)是否预留接口——当前判断不进章,提一句即可