跳转到主要内容

Inference Optimization Lab · V0.10

推理性能优化交互实验室

用单变量实验观察 per-rank 显存、计算、访存与通信压力怎样迁移;变化可继续追到知识文章,也可分享为纯前端场景。

回到推理学习路线
当前判断

主要瓶颈

访存压力领先

这是版本化 capability 下的理论压力排序,不是实测延迟或 P95。

理论账本 含启发式估算 校准缺失

DP=1;当前单副本 rank map 为 1 ranks,TP 节点内,EP 节点内。

02

压力与显存账本

per-rank · 单副本
计算
29%

300 TFLOP/s(BF16)版本化 capability 下界。

访存
71%

2 TB/s HBM capability 下界。

通信
不适用

TP=1 且无 EP,不需要跨 rank collective。

Prefill / Decode 分相

每一相独立判断,不把两条关键路径混在一起
PREFILL 计算压力领先
理论
计算 99%
访存 1%
通信 不适用

关键资源理论下界 6.82 s

仿真参考 不可用 缺失

校准耗时 不可用 缺失

DECODE 访存压力领先
理论
计算 4%
访存 96%
通信 不适用

关键资源理论下界 19.13 s

仿真参考 不可用 缺失

校准耗时 不可用 缺失

显存拆分

理论/估算分列,不补假 0
Weights 61.1 GiB 理论

BF16 payload + scale 元数据;Dense/共享参数按 TP、Expert 参数按 EP 切分。

GQA 64 层 9.00 GiB 理论

按逐层区间与输入 head 配置合计完整 KV;prefix hit 不自动释放活动页。

Activation 1.25 GiB 估算

按最多 2048 token chunk 与 8× hidden 工作集估算。

已建模合计 71.3 GiB 估算

仅合计已建模项;不含 allocator 碎片、CUDA graph、workspace 与通信 buffer。

仿真峰值 不可用 缺失

尚未导入仿真结果;实验室估算不会自动升级为仿真值。

校准峰值 不可用 缺失

未导入 benchmark/trace 样本,校准结果保持缺失。

Capability 余量 8.66 GiB 估算

已建模项占用低于 80 GiB capability;未计项仍可能导致 OOM。

03

逐层执行账本

把全模型 active parameters 与参数驱动 FLOPs 按层区间分摊;用于解释工作落在哪些层,不是逐算子 trace。

1–64 · GQA 31.20B active P 2044.7 TFLOPs D 255.6 TFLOPs 估算

04

冻结 A,观察 B 为什么变化

先把当前参数设为 A,再继续调参;只比较同一套 Blog 公式下的账本变化,不调用外部系统。

尚未设置 A 基线

设置后,页面会即时显示 B 相对 A 的理论/估算变化。

跨参数教学路径 一次只改一个变量,完成后把 B 接成下一步的 A

先看并发工作集怎样吃掉容量,再区分精度字节,最后观察长输入对 Prefill 的压力。

  1. 01 容量斜率 只改 Batch,确认 KV 与 Activation 对并发工作集的敏感性。
  2. 02 字节配方 接受上一步场景后只改精度,区分权重与 KV 的压缩边界。
  3. 03 Prefill 压力 再次冻结场景后只改 ISL,观察上下文驻留和 Prefill 工作。

尚未开始;每一步都会重新冻结基线并锁定非目标输入。

单变量引导 锁住其他输入,只观察一个参数

只调整 Batch,观察 KV、Activation 与吞吐友好型工作集如何同步增长。

尚未开始;也可以继续使用普通 A/B 对照。

推荐实验档位
开始单变量实验后,这里会给出 2–3 个有意义的目标值。
等待冻结基线
账本 A B Δ 证据
设置 A 基线后显示对照。
继续理解变化
导出证据摘要

复制 A/B 变化、账本 Δ、建议、证据边界、场景 URL 与代码版本;不包含外部系统身份。

当前没有可导出的 A/B 变化。

05

外部证据只做离线参考

Blog 与产品仿真独立运行;页面不调用产品 API,也不导入产品代码。用户可主动粘贴通用结果作参考。

L0 交互实验室

公式账本与参数敏感性

L1 仿真系统

算子成本与执行图

L2 Benchmark / Trace

同场景校准证据

L3 线上观测

P95 与调度效应,当前不建模

仿真状态 缺失 缺失

尚未导入仿真结果;实验室估算不会自动升级为仿真值。

尚未导入来源

06

导入校准证据

引擎导出先经版本化 adapter 转换;模型、rank map、backend 与工作负载完全匹配后,样本才进入校准列。

校准状态 缺失 缺失

未导入 benchmark/trace 样本,校准结果保持缺失。

尚未导入来源

07

MoE 通信 payload 与分相延迟曲线

同时展示 payload 和所选拓扑/backend 的教学级延迟估算;不是实测 collective 时间。

Dense 模型不适用;切换 MoE 预设后显示估算曲线。

08

下一步改什么

每条建议同时保留预期影响与不能据此断言的内容。

01

先评估 FP8 或 W4 权重量化

预期影响权重驻留与每步权重读取的理论字节下降。

证据边界必须核对实际 kernel、scale、回退精度与质量;这是模型方向,不是实测收益;不能据此断言真实 P95、TPOT 或吞吐提升。

02

在容量允许的前提下增大 Batch

预期影响同一份权重读取服务更多 token,decode 算术强度通常上升。

证据边界会增加 KV 与激活显存,并可能恶化排队尾延迟;需要同 SLO 实测。

03

容量不足时再考虑增加 TP

预期影响降低单 rank 权重与 KV 容量压力。

证据边界TP 改变通信与 kernel shape,单卡账本不能证明端到端更快。

公式、假设与限制 为什么这样算,以及这些结果不能说明什么

最小数据契约

模型结构包含参数量、层数、hidden、head 与 MoE 信息;逐层架构合同用无重叠、无缺口的层区间覆盖整个模型。工作负载包含 Batch、ISL/OSL、精度、TP/DP/EP 与 KV hit。单个 DP 副本必须提供长度为 TP×EP(Dense 为 TP)的 rank-to-node 与 rank-to-rail 表;硬件、拓扑与映射 fingerprint 都进入校准身份。

显存公式

Weights/rank = dense_or_shared_params / TP + expert_params / EP MHA/GQA KV = matching_layers × elements_per_token × tokens × Batch × bytes / TP MLA cache ≈ MLA_layers × (latent_dim + rope_dim) × tokens × bytes / TP GDN state ≈ GDN_layers × hidden × (state_width + conv_width) × Batch × bytes / TP CSA/HCA cache ≈ Σlayer [window + ceil((tokens-window)/compress_ratio)] × entry_dim × Batch × bytes / TP Activation ≈ Batch × min(new_ISL, 2048) × hidden × 8 × activation_bytes / TP

各层区间分别计算后相加;MHA/GQA 是输入合同下的理论账本,MLA/GDN、CSA/HCA 和 Activation 使用显式结构参数,因此属于估算。DeepSeek-V4-Pro 的 CSA/HCA 只采用官方 config 中前 61 个主干层比例;末尾 MTP block 不计入主干层,Indexer cache 也尚未计入。总量不含 allocator 碎片、CUDA graph、kernel workspace 与通信 buffer。

压力公式

Prefill 非 Attention 工作近似按 1-h 缩放,causal attention 面积近似按 1-h² 缩放;decode 不应用 KV hit。两相的 FLOPs、权重/状态流量分别除以 capability;通信再按 placement 选择节点内或跨节点带宽,并应用所选 backend 的教学级移动倍率、效率和固定延迟。

MoE active FLOPs 暂以 max(TP, EP) 缩放。TP 与 EP group 从显式 rank map 中抽取;跨节点有效带宽按 group 实际使用的 rail 数乘以 profile 的单 rail 带宽。没有建模 rail 拥塞、NIC 亲和性或 overlap,backend 系数仍是可重复教学夹具。

A/B 对照合同

Δ = B − A Δ% = (B − A) / A

A 与 B 都由同一个 Blog 计算函数重算,并主动移除外部仿真与校准值。A 为 0、任一侧缺失或输入非法时,相对变化保持不可比较;多参数同时变化时只陈述“这组输入差异对应这组账本变化”,不做单参数因果归因。

V0.10 教学路径把多个单变量实验串起来:每一步先审计变化清单,通过后才把 B 冻结成下一步 A。证据摘要与下载文件使用同一正文和非密码学内容指纹;分享 URL 只引用当前 Blog 场景和 capability/profile 版本,不编码 A/B、外部证据或产品身份。V0.7/V0.9 旧链接必须先预览并确认,页面不会静默套用。

逐层执行合同

segment_active_params = model_active_params × segment_layers / total_layers segment_FLOPs = 2 × segment_active_params × phase_tokens

该账本保持与全模型参数驱动 FLOPs 守恒,只回答工作按层数落在哪些区间。它没有 Attention、MLA、GDN 或 MoE 逐算子参数表,因此属于估算,不能当作 kernel trace。

实验室、仿真与实测的关系

实验室是独立的 L0 教学分析层:用透明公式快速比较参数方向。产品仿真是另一个独立的 L1 工程系统;两者不共享运行时代码,Blog 不调用其 API,也不要求两边数据互通。Benchmark/Trace 是 L2 校准层;线上 P95、队列、动态 batching、allocator 与 P/D 竞争属于 L3 观测层,当前页面不建模。

inference-lab-simulation-request/v0.5 是 Blog 自身的通用离线场景快照,不对应产品 API。inference-lab-simulation-result/v0.5 只接受用户主动粘贴的通用参考值;即使来源标记为 empirical、silicon 或 hybrid,也不能替代同场景实测校准。

校准合同

页面与 CLI adapter 接受 inference-lab-engine-export/v0.4,保留 engine name/version/run ID 后转换为 inference-lab-calibration/v0.4。模型、逐层架构、硬件、拓扑、world size、rank map、分相 backend、精度与工作负载必须完全一致。空模板不会被当作校准值。

明确不能断言

  • 不能把理论压力份额当成 trace 时间占比、GPU 利用率或损失归因。
  • 不能把理论字节下降宣传成真实 TTFT、TPOT、吞吐或 P95 收益。
  • 不能把教学 backend 系数或跨节点估算称为特定框架、机器或网络的真实 collective 延迟。
  • 不能把多 rail 带宽相加结果当作已验证的 NIC 利用率;真实 rail 冲突与 overlap 需要 trace 或 benchmark。
  • 不能把按层数均分的 active parameters 当作真实逐层参数量或逐算子 FLOPs。
  • 不能把“仿真请求可交接”当作仿真已经执行,也不能把单次仿真结果标成线上 P95。
  • 不能把仿真系统内部 empirical/silicon 校准等同于当前部署、当前 workload 的 benchmark 校准。
  • 不能由 checkpoint 精度标签推断实际 kernel、scale、回退精度或质量通过。
  • 校准结果缺失时保持“缺失”,不显示为 0;Dense 的 EP 保持“不可比较”。

知识来源