Compute 资源域
单算子时长怎么从 FLOPs 算出来——四档精度(analytical / trace-replay / event-driven / cycle-approx)各自的做法、取舍、标定路径
核心要点:
- 计算延迟建模的难点不在公式,在效率因子的标定。同一条 roofline 公式,η 取 0.4 还是 0.75,绝对值差近一倍
- analytical 档轻、需求少,但报告精度从"仅相对"(LLM-Viewer)到 ±5% 跨度大,差别全在 η 的处理方式
- trace-replay 档精度高但必须能跑到目标硬件,不可预测未流片芯片
- event-driven 档单算子时长仍依赖 analytical 或 trace,增量价值在算子间时序而非时长精度
- cycle-approx 档(G5 落点)能 capture tile / wave quantization、kernel fusion、pipeline 启动税等细节,但要 microarch 标定 + 仿真速度降两到三个量级
- PE 阵列建模范式不可互换:脉动阵列(SCALE-Sim)的 tile 公式与 SIMT(GPGPU-Sim)的 warp 调度涌现是两条路,套错就系统性偏
名词定义
| 名词 | 定义 |
|---|---|
| Roofline | 延迟取计算时间与访存时间的较大者 $\max(\text{FLOPs}/(\text{算力}\times\eta_C), \text{Bytes}/(\text{带宽}\times\eta_M))$ |
| 算术强度(AI) | 每字节访存对应的浮点运算数 FLOPs/Byte,决定算子落在 roofline 的算力区还是带宽区 |
| 效率因子 η | 实测吞吐对峰值的折扣比例,$\eta\in(0,1]$,可分计算侧 $\eta_C$ 与访存侧 $\eta_M$ |
| MFU | Model FLOP Utilization,实测吞吐对应 FLOPs 除以峰值算力 |
| Tile quantization | tile 尺寸不整除 GEMM 维度时,边缘 tile 占满 SM 但仅含部分有效输出造成的利用率损失 |
| Wave quantization | 总 tile 数不整除 SM 数时,最后一个 wave 仅部分 SM 工作造成的利用率损失 |
| Kernel fusion | 把多个相邻算子合并执行,中间张量不落 HBM,改写 roofline 访存边 |
| Cycle-approximate | gem5 / SystemC AT 这一档,流水线 / cache / 互联做参数化建模而非门级精确 |
本篇范围
计算延迟建模管"单算子时长怎么从 FLOPs 算出来"——输入是工作负载层产出的 FLOPs / bytes / shape(由 06-大模型解构 章节定义),输出是该算子在目标硬件上的执行时长与资源占用画像。
不包含:
- 算子间的时序协同与暴露通信——见后续 04 Interconnect 篇与 05 Scheduler 篇
- 算子的 FLOPs / 字节数推导(attention / FFN / MoE 结构)——见 06-大模型解构
- 内存层级的 bank 冲突与 HBM 控制器——见 03 Memory 资源域
从 FLOPs 到 cycles 的核心难题
Q:给定算子的 FLOPs 与字节数,算它的执行延迟需要什么?
理想情形下,$T = \text{FLOPs}/\text{算力}$ 或 $T = \text{Bytes}/\text{带宽}$ 取较大者就完了。真实情形,峰值算力几乎永远达不到。差距来自三件事:
- 算子形状与硬件形状不对齐:GEMM 的 $M, N, K$ 不整除阵列维度 → tile / wave quantization
- 操作数从存储读入的等待:访存不饱和、bank 冲突、cache miss → 计算单元空转
- 多算子争用同一资源:多核 / 多算子共享 SRAM / NoC / HBM → 排队
精度阶梯的本质是这三件事各档怎么处理:
| 档 | 形状失配 | 访存等待 | 资源争用 | 主要工程负担 |
|---|---|---|---|---|
| analytical | 折进 η | 折进 η | 不建模 | η 的标定来源 |
| trace-replay | 实测吸收 | 实测吸收 | 实测吸收 | 真机 trace 采集 |
| event-driven | 算子时长查表(同上两档) | 算子时长查表 | 显式建模 | 算子间 DAG 时序正确性 |
| cycle-approx | 显式 tile / wave 建模 | 显式 DMA / cache 事件 | 显式队列 / 仲裁 | microarch 参数标定 |
@tbl-ipm-c-tier-handling 各档对三类利用率损失源的处理方式
下面按档展开。
Analytical 档:roofline 谱系与 η 的处理
主流 LLM analytical 工具沿一条 roofline 主线展开,关键差异在效率因子 η 怎么定。把"达不到峰值"的不确定性收敛到一个有界、可标定的标量,而不是散在一堆 cycle 常数里——这是 analytical 范式相对 cycle 级建模的核心优势。
四工具横向对比
| 工具 | roofline 形式 | η 处理 | 报告精度 | 适用场景 |
|---|---|---|---|---|
| LLM-Viewer[1] | 标准 roofline | 无 η(裸峰值) | 仅相对,无定量绝对误差 | bottleneck 定性分类 |
| GenZ[2] | $T=\max(C/(\text{FLOPS}\cdot\eta_C),M/(\text{BW}\cdot\eta_M))$ | 双 η 实测标定(A100=0.40,H100-8×=0.75) | 单平台 2.73% / 1.85%(prefill / decode geomean),跨架构 5.82% | 多平台部署选型 |
| Calculon[3] | 每算子 $\max(\lambda_f/\lambda_{fh}, \lambda_m/\lambda_{mh})$ | 不显式 η,通过并行策略与 overlap 参数间接建模 | ±10%(SC'23 报告,A100 Selene)[4] | training 阶段 TP/PP/DP/EP 策略搜索 |
| LLMCompass[5] | 分层 tiling 仿真 + LogGP 通信 | 不预设 η,mapper 搜索 26,400 轮自动寻优 tile schedule | E2E 4.1%,per-op 10.4% | 芯片微架构 DSE |
@tbl-ipm-c-analytical-tools analytical 档主流工具的 η 处理方式与报告精度
η 怎么从"魔数"变成"可标定标量"
业界对 η 的处理分三档,精度递增:
- 裸峰值(无 η):直接 datasheet 峰值。LLM-Viewer 即如此,因此声明"only the relative relationships can be referenced"(README verbatim)。裸峰值系统性高估,绝对值不可信但相对排序仍有意义。
- 实测固定 η:GenZ 从实测 profiling 给出平台级 η:A100 = 0.40,H100-8× = 0.75[2]。这种处理把 η 的不确定性收敛到几个全局常数,标定成本低、可重复。
- mapper 搜索 η:LLMCompass 不预设 η,而是在硬件 mapping 空间里搜索最优 tile schedule,利用率从搜索结果中涌现而非经验设定。代价是仿真时间长,适合 DSE 而非秒级扫描。
关键证据:挂一个显式 η,绝对精度可从"仅相对"跨到 ±5–10%。GenZ 报告 TTFT geomean 误差 2.73%(prefill)/ 1.85%(decode),Calculon 报告 ±10% vs Megatron 实测——这是标定数据稀缺场景下投入产出比最高的一步,不需要全标定,只需标定一个标量。
计算与访存的"完美流水"假设
roofline 公式里的 $\max(\cdot,\cdot)$ 假设计算和访存通过双缓冲完美流水,取较大的一边。这是简化,真实有启动开销和依赖造成的不完美,但这部分不完美由 η 吸收。比起标不准的 cycle 常数,这个近似更可信,且 GenZ / Calculon / LLM-Viewer 都用它、验证过 ±5–10%。
算子之间的重叠不能用 roofline 表达
算子内的 $\max$ 假设是合理的,但算子间(尤其计算和通信)的重叠不能用算子内 $\max$ 表达——要靠事件驱动的时序层(见 05 Scheduler 篇)。一个值得注意的工程教训:Calculon 在 A100 上的默认配置是把计算和通信时间相加(非重叠),因为跨设备重叠协调是公认的开放问题。标定不足时,非重叠是更安全的默认。
Trace-Replay 档:真机查表
真机 profiling 把"算多久"的不确定性从公式里搬到实测里:跑一遍代表性 kernel,把结果存表,后续仿真直接查。代价是必须能跑到目标硬件,无法预测未流片的芯片。
Vidur:随机森林回归
Vidur[6] 在目标 GPU 上跑 batch 实测样本,用随机森林回归预测单算子时长,产出 operator-wise runtime lookup table。选 RF 的理由论文给出:MLP 需大量数据、多项式回归捕不住 tile / wave quantization 引入的非线性。按算子类型分三类建模——token-level、sequence-level attention、communication——各自采样策略不同。
报告精度(verbatim):静态 workload P95 误差 ≤ 3.33%,高负载动态场景 < 5%,全场景 < 9%。论文未公开训练集规模。
vTrain:CUPTI 抓 kernel
vTrain[7] 用 NVIDIA CUPTI 在目标 GPU 上逐算子执行,抓取 CUDA kernel trace,建 operator-to-task lookup table(含每个算子被分解出的 kernel 列表 + 各 kernel 执行时长)。覆盖 MHA / FFN forward / backward 与 All-Reduce / Send-Receive。利用 transformer 层重复性把 profiling 复杂度降至 $O(1)$。
报告精度:单节点 MAPE 8.37%(R²=0.9896),多节点 MAPE 14.73%(R²=0.9887)。一个关键局限:孤立 profiling 下 NCCL 集合通信延迟平均低估约 30%。
取舍
trace-replay 范式精度上限高,但两件事注定了它不能取代 analytical:
- 必须真机:datasheet 阶段无法用,芯片设计期 DSE 用不上
- 覆盖度有限:只能预测出现在 profiling 集合里的算子形状,新形状靠回归外推,外推距离越远精度越差
实际工程做法是混合:基线靠 analytical 做相对排序,关键 kernel 上目标硬件后用 trace-replay 标定。
Event-Driven 档:与 analytical 的边界
ASTRA-sim 2.0[8] 是算子级事件驱动 perf model 的范本。它的 compute backend 通过 AstraComputeAPI 抽象接口插件化解耦——内置 Roofline backend(源码确认实现 $\min(\text{bandwidth} \times \text{OI}, \text{peak\_perf})$),measured backend 由外部插件实现。simulate() 方法异步调用,完成后回调 system 层触发后继事件。
关键判断:event-driven 对 analytical 的增量价值不在单算子时长精度(单算子时长仍由 roofline 或 trace 给),而在算子间时序——compute-communication overlap、pipeline bubble、动态 stall 的正确建模。论文未公开 compute backend 自身的精度数字,因为它把这个责任完全下放给了 backend。
判断该不该升到 event-driven 看一个问题:关键问题是 MFU 标定还是时序协同?
- MFU 标定 / 设计空间扫描 → analytical + roofline 已足够
- pipeline 时序、计算-通信 overlap、负载均衡气泡 → 必须 event-driven
这条边界后续 05 Scheduler 篇深入,本篇只点出 compute 域内的判据。
Cycle-Approximate 档:G5 建模的落点
cycle-approximate(SystemC AT、gem5、SCALE-Sim、GPGPU-Sim 这一档)能 capture 前三档 capture 不到的细节:tile / wave quantization 的精确利用率损失、kernel fusion 的访存改写、SIMD 流水的启动税与停滞、warp scheduler 的 occupancy 涌现。代价是仿真速度降 2-3 个量级、microarch 参数标定成本高。
这一档下,PE 阵列建模分两大流派,范式不可互换。
PE 阵列建模:脉动阵列 vs SIMT
脉动阵列(systolic)流派 — SCALE-Sim[9]
SCALE-Sim 用解析公式从 mapping 参数直接算 cycles:
$$\begin{equation} T_{\text{tile}} = (2R + C + T - 2) \cdot \lceil M/R \rceil \cdot \lceil N/C \rceil \label{eq:ipm-c-scalesim} \end{equation}$$其中 $R, C$ 是阵列行列维,$T$ 是时域累加深度,$(2R + C - 2)$ 是 pipeline fill / drain 的固定启动税。三种 stationary dataflow(Weight / Input / Output-Stationary)决定 GEMM 三维如何分配到阵列空间轴与时域轴,影响带宽压力但不改变公式结构。利用率定义为 $\text{actual\_MACs}/(R\cdot C\cdot T_{\text{tile}})$。SCALE-Sim v3 报告对 Ampere 稀疏核与 RTL 误差 ≤ 5%[10]。
脉动阵列是 TPU、华为达芬奇 Cube、Eyeriss 等加速器的主流形态。它的利用率损失可以从公式显式预测——这是 analytical 与 cycle-approx 在脉动阵列上的边界相对模糊的原因:解析公式 + tile / wave quantization 修正就已经能给出 ±5% 的精度。
SIMT 流派 — GPGPU-Sim / Accel-Sim[11][12]
GPGPU-Sim 是 warp-instruction 粒度的 cycle-level 仿真器,6 段 pipeline 逐 warp 逐 cycle 驱动。关键抽象是 Superpipelining(用 1/4 时钟频率模拟 4× 宽度)。Occupancy 由寄存器与 CTA 约束动态涌现,而非解析预计算——这是 SIMT 建模与脉动阵列的本质区别。GPGPU-Sim 报告与 GeForce 8600GT 相关系数 0.899。
Accel-Sim 是 GPGPU-Sim 4.0 的 SASS trace-driven 新前端,消除了编译器 gap。在 Volta 上误差率降 79%,仿真速度提升 4.3×。
gem5 的 GPU 模型(GCN3,针对 AMD GCN3/Vega)是 cycle-accurate(非 cycle-approximate),计算核 IPC 误差 5-10%。定位是研究用全系统仿真器,速度远低于 SCALE-Sim 或 Accel-Sim,实际 LLM perf model 较少直接用 gem5-GPU。
两流派的不可互换性
| 维度 | 脉动阵列(SCALE-Sim) | SIMT(GPGPU-Sim / Accel-Sim) |
|---|---|---|
| 利用率来源 | tile / wave 量化解析建模 | warp 停滞 + branch divergence 涌现 |
| 仿真速度 | 亚秒级 | 慢得多(cycle 级) |
| 适合 | NPU 设计空间快速探索 | GPU 微架构精细分析 |
| 常见混淆 | 把 tile 公式套到 SIMT 上 | 把 SIMT 仿真速度期望套到脉动阵列 |
@tbl-ipm-c-pe-array PE 阵列两建模流派对比
Tile Quantization 与 Wave Quantization
这两类利用率损失是 cycle-approx 档相对 analytical 档的关键增量价值——roofline 看不见它们,但它们对小 GEMM(decode batch=1)影响巨大。
Tile Quantization:$M$ 或 $N$ 不被 tile 尺寸整除时,边缘 tile 仍占满 SM 时间但仅含部分有效输出。NVIDIA 官方文档[13]示例:N 从 128 增到 136,"executes 1.5× as many arithmetic operations despite 0.39% more work"——0.39% 的有效计算增量触发 50% 的开销增量。
Wave Quantization:总 tile 数 $T_{\text{tot}}$ 不被 SM 数 $S$ 整除时,最后一个 wave 仅 $T_{\text{tot}} \bmod S$ 个 SM 工作。利用率:
$$\begin{equation} \eta_{\text{wave}} = \frac{T_{\text{tot}}}{\lceil T_{\text{tot}}/S \rceil \cdot S} \label{eq:ipm-c-wave-util} \end{equation}$$NVIDIA 文档 A100 示例:tile 数从 108 增到 117,GFLOPS 减半、耗时翻倍——这是 wave 量化造成的尾 wave 空载。
两者区别:tile quantization 在 tile 内部边缘浪费(M/N 与 tile 对齐),wave quantization 在 SM 调度层的尾 wave 空闲(总 tile 数与 SM 数对齐)。cycle-approx 档可分别用 $\eta_{\text{tile}}$ 与 $\eta_{\text{wave}}$ 两个独立因子乘进 kernel 时长;标准 roofline 档不显式 capture,需把它们一起折进经验 η,代价是同一 η 在不同形状上偏差大。
Kernel Fusion 对 Roofline 的改写
融合不改 FLOPs,但消除中间张量的 HBM 写回,使算术强度 $\text{AI} = \text{FLOPs}/\text{Bytes}$ 跃升。未融合时两个相邻算子 $f_1 + f_2$ 需两次 HBM round-trip;融合后仅 input + output bytes 落 HBM。
各档对融合的处理:
- analytical:对融合组做"fusion pass",合并 I/O bytes 再算 roofline——直接 capture 在算术强度变化里
- cycle-approx:在 DAG 上标注
in_sram=True跳过中间 DMA 事件 - event-driven:显式删除中间 DMA 事件并做 SRAM footprint 约束检查
Flash Attention:融合 + tiling 的典型
Flash Attention[14]在论文 Theorem 2 证明,标准 Attention 需 $\Omega(Nd + N^2)$ HBM bytes(因 $N \times N$ attention score 必须物化),Flash Attention 仅需 $\Theta(N^2 d^2 / M)$ bytes(典型 $d=64\text{--}128$、SRAM $M\approx 100$KB 时"up to 9× fewer"——论文 verbatim)。
建模时把 attention 算子的 HBM bytes 替换为 $4Nd$(读 Q/K/V + 写 O),FLOPs 保持 $2N^2 d$。这使算术强度 $\text{AI} = N/2$,长序列下从内存受限区迁移至算力受限区。
性能验证:Flash Attention v2[15] 在 A100 达 50-73% MFU(v1 仅 25-40%),Flash Attention v3[16] 在 H100 达 75%(740 TFLOPs/s)。这些数字直接反推回 perf model 时,要把 attention 的 $\eta_C$ 改成 0.5-0.75 这一档,而不是 GenZ 的全局 0.40。
SystemC AT 在 Compute 域的实现
SystemC TLM-2.0 定义 LT(Loosely-Timed)和 AT(Approximately-Timed)两种编码风格。AT 模式用 nb_transport_fw / nb_transport_bw 非阻塞接口 + tlm_generic_payload + sc_time 时序注解实现四相握手;进程与 SystemC 调度器逐事件锁步,不能用 temporal decoupling,精度高于 LT,速度低于 LT。
典型 compute unit 建模模式(NNSim、AccTLMSim、FLECSim-SoC 等学术工具呈现的共同结构)[17][18]:
SC_MODULE(ComputeUnit) {
tlm_utils::simple_target_socket<ComputeUnit> socket;
sc_clock clk;
void compute_thread(); // SC_THREAD
void nb_transport_fw(...); // 注册回调
SC_CTOR(ComputeUnit) {
socket.register_nb_transport_fw(...);
SC_THREAD(compute_thread);
}
};
计算主逻辑放在 SC_THREAD 里,用 wait(compute_cycles * clk_period) 注入解析式时延——不逐 PE 逐周期仿真,而是公式给出 tile 的总执行时间,然后阻塞推进时间。PE 阵列整体抽象为单一模块,侧重捕捉 DRAM 带宽饱和和 bus 事务流。多时钟域通过各模块绑定独立 sc_clock + sc_event 跨域传递实现。
速度与精度报告:NNSim 报告 3,000-13,000× vs RTL 的仿真加速;DNN LT-CA 模型 MAPE 3.12%;TLM vs CABA 通用约 50×。AT 模式由于逐事件同步,实际加速比低于纯 LT,通常在几十倍量级。
业界 SystemC AT 工具:Synopsys Platform Architect Ultra 与 Cadence XTSC 明确支持 SystemC TLM-2.0 AI 芯片建模,但 compute unit 内部实现不公开,仅有营销级别描述。NVIDIA 无公开 SystemC AT perf model 资料。国内自研 AI 芯片(寒武纪、壁仞、燧原、华为昇腾)均无公开 perf model 技术细节——这是可预期的行业现象,自研芯片的 perf model 往往属内部 IP。
关键盲区:AT 四相握手在 compute 域的使用案例稀少——学术论文多用 LT 或 cycle-accurate,因为计算单元内部不需要非阻塞事务流。AT 的优势场景主要在 interconnect / bus 侧而非 compute 侧。在 compute 域构建 SystemC AT 模型时,常见做法是 compute unit 用 LT 风格(单个 SC_THREAD 阻塞 wait 解析时延),只在跨模块边界(compute ↔ memory ↔ NoC)用 AT 四相握手——这种混合精度比纯 AT 更实用。
各档之间的标定依赖
各档不是孤立点,而是通过标定依赖互喂养的有向图。理解这条依赖比记住单个工具更重要——它决定了 G5 建模在生态里的位置。
边的含义:箭头表示"上游产出可被下游消费作为参数"。具体到 compute 域:
- LLM-Viewer 的裸峰值是 GenZ / Calculon 的退化版本
- GenZ 的实测 η 喂给 Calculon 这类带并行策略的工具
- LLMCompass 的 mapper 搜索结果可作为 GenZ η 的更准来源
- Vidur / vTrain 的 profile 表与 analytical η 平行可选,均能喂给 ASTRA-sim 的 compute backend
- cycle-approx 反向喂养:SCALE-Sim / GPGPU-Sim / SystemC AT 跑出来的 kernel 级 cycle 数,经回归后变成 analytical 档的 η 或 trace-replay 档的查表条目
对 G5 建模的含义:它不是要替代 ASTRA-sim 或 Vidur,而是给它们提供更准的 compute 域标定输入。设计 G5 建模的 compute 模块时,输出格式必须可被上层算子级 DES 消费——分层协作的具体含义就是这条标定边。
误差来源分层
仿真结果与真实测量对不上时,根因分两类,处理方式不同[19]:
- 模型误差:公式选错。比如用 roofline 的 $\max(\text{计算},\text{访存})$ 对一个访存不规则的 scatter/gather 算子建模,roofline 假设访存连续可流水,实际不是。这类误差加再多标定数据也修不好,只能换公式。识别信号:误差随输入形状的变化有系统性规律,不是噪声。
- 标定误差:公式结构对,参数估偏。最典型的是 η:datasheet 峰值乘以 η 预测算子时长,η 取 1.0 与取 0.6 的预测差距达 67%。用少量实测样本回归 η 即可修复。识别信号:误差在不同输入形状上稳定偏同一个方向(系统性高估或低估)。
具体的标定流程、对标三要素(口径 / 配置 / 稳态)、误差归因方法见后续 08 标定 / 验证 / DSE 篇。
升降档判据
回答"该升档还是降档"的三条 cost-precision 准则:
- 目的导向:回答"哪个并行策略更快"用 analytical 够;"PE 配比改了怎样"必须升到 cycle-approx。精度需求由问题决定,不由能跑多准决定。
- 关键路径精细,其余粗放:在 cycle-approx 仿真里,不是所有单元都同档。compute pipeline 走 cycle-approx,DRAM 控制器走 queue-based,NoC 走 flit 级——混合精度比统一精度有效得多。SystemC AT 在 compute 域用 LT 风格 + AT 边界握手就是这个思路的具体落地。
- 标定数据决定上限:再细的模型也只能精确到标定数据允许的程度。datasheet 给的峰值有 ±10% 不确定性,模型再准也压不过这条线——除非自己测。
Takeaway
| 知识点 | 核心结论 |
|---|---|
| analytical 档 | 关键差异是 η 处理:裸峰值 / 固定 η / mapper 搜索三档,精度从"仅相对"到 ±2-5% |
| trace-replay 档 | 真机查表,精度上限高(Vidur < 9%、vTrain MAPE 8.37%),但必须能跑到目标硬件 |
| event-driven 档 | 单算子时长仍依赖 analytical / trace,增量价值在算子间时序而非时长本身 |
| cycle-approx 档 | 能 capture tile / wave 量化、kernel fusion、Flash Attention、SIMD 启动税等细节 |
| PE 阵列两流派 | 脉动(SCALE-Sim,公式解析)vs SIMT(GPGPU-Sim,涌现),范式不可互换 |
| SystemC AT 在 compute 域 | 常用 LT 风格 + AT 边界握手的混合精度,优势场景在 interconnect 而非 compute |
| 标定依赖 | cycle-approx 反向喂养 analytical 与 trace-replay 的参数,G5 建模在生态中是上游标定者 |
开放问题
- 稀疏算子(MoE expert routing、attention mask)在 analytical 档的处理:常见做法是用密集算力乘稀疏率,但 expert imbalance / mask 不规则下系统性低估的边界条件尚无系统调研——见 10 MoE 建模篇
- AT 风格在 compute 域的"杀手级用例"始终未出现:学术上 LT 已够,工业上 cycle-accurate 兜底——AT 是否应该退出 compute 域?
参考资料
- Yuan et al., LLM Inference Unveiled: Survey and Roofline Model Insights, 2024. https://arxiv.org/abs/2402.16363
- Bambhaniya et al., GenZ: LLM Inference Platform Analysis, 2024. https://arxiv.org/abs/2406.01698
- Isaev et al., Calculon: a Methodology and Tool for High-Level Co-Design of Systems and LLMs, SC 2023. https://dl.acm.org/doi/10.1145/3581784.3607102
- ±10% A100 Selene 验证数据由后续工作总结,见 https://arxiv.org/abs/2410.00273
- Zhang et al., LLMCompass: A Hardware Evaluation Framework for LLM Inference, 2023. https://arxiv.org/abs/2312.03134
- Agrawal et al., Vidur: A Large-Scale Simulation Framework for LLM Inference, MLSys 2024. https://arxiv.org/abs/2405.05465
- Bang et al., vTrain: A Simulation Framework for Evaluating Cost-effective and Compute-optimal LLM Training, MICRO 2024. https://arxiv.org/abs/2312.12391
- Rashidi et al., ASTRA-sim 2.0: Modeling Hierarchical Networks and Disaggregated Systems for Large-model Training at Scale, ISPASS 2023. https://arxiv.org/abs/2303.14006
- Samajdar et al., SCALE-Sim: Systolic CNN Accelerator Simulator, 2018. https://arxiv.org/abs/1811.02883
- Samajdar et al., SCALE-Sim v3, 2025. https://arxiv.org/html/2504.15377v1
- Bakhoda et al., Analyzing CUDA Workloads Using a Detailed GPU Simulator, ISPASS 2009. https://ieeexplore.ieee.org/document/4919648
- Khairy et al., Accel-Sim: An Extensible Simulation Framework for Validated GPU Modeling, ISCA 2020. https://dl.acm.org/doi/10.1109/ISCA45697.2020.00047
- NVIDIA, Deep Learning Performance Guide — Matrix Multiplication. https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html
- Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness, NeurIPS 2022. https://arxiv.org/abs/2205.14135
- Dao, FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning, 2023. https://arxiv.org/abs/2307.08691
- Shah et al., FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision, 2024. https://arxiv.org/abs/2407.08608
- Lee et al., NNSim: A Fast and Accurate SystemC/TLM Simulator for Deep Convolutional Neural Network Accelerators, IEEE VLSI-DAT 2019. https://ieeexplore.ieee.org/document/8741950/
- AccTLMSim: Accelerator-based TLM Simulation Framework, 2020. https://arxiv.org/abs/2007.14897
- 详见 08 标定 / 验证 / DSE 篇(待写)
延伸阅读
- 8.1 总览 — 精度阶梯全局参照与升降档判据
- 8.3 Memory 资源域 — Memory 资源域,与 compute 共同构成 roofline 两条边
- 5.2 激活与 FFN — FFN 算子的 FLOPs 与字节数推导
- 4.1 总览 — Attention 各变体的算力结构