01 · 延迟台账(310P3 实测 + 本报告派生量)
数据全部搬自
PLAN.md与docs/(未跑任何新实验)。标 本报告计算 的是我从这些数字算出来的派生量,附算式。
结论先行
- Cube 化(!1135)带来 1.35x~6.32x 的加速,峰值 6.32x 出现在
1×16×128×128×128(7.273ms → 1.151ms);6 shape 加速比几何平均 4.29x、算术平均 4.77x、区间 [1.35x, 6.32x](PLAN.md §Step A+B 结论 L97-104+ 本报告计算)。 - Cube 化的收益在 a9c66ddb(分支第一个 commit,8/13)一天内全部兑现:同一 shape
1×16×128×128×128上 a9c66ddb=1.151ms、终态 d0906c3e=1.132ms(09-14 同日对照)、向量化基线 00e39ab5=7.273ms → a9c66ddb 已拿到总收益的 99.69%,后续 5 个 commit 只贡献 0.019ms(PLAN.md §中间 commit 实测矩阵 L132-137、PLAN.md L81+ 本报告计算,算式见 §5)。5 个大 shape 的兑现率 98.17%~99.95%。 - 「泛化重构零性能损失(六 shape 差 <1.5%)」这条文档结论在其自身表格上不完全成立:按
PLAN.md L132-137逐 shape 重算,a9c66ddb→725cf45d 有 3 个 shape 超过 1.5%(1×8×64×64×64−7.78%、1×1×128×128×256−7.80%、1×16×128×128×128−1.65%)。但亚毫秒 shape 的绝对差只有 66~73µs,与"同一构建跨天自漂移"同量级(§8)→ 方向性结论(重构不掉性能)成立,文档给的 1.5% 阈值与自身数据不符。4 个 ≥1.13ms 的 shape 最大偏差 1.65%,3 个 ≥4.3ms 的 shape 全部 ≤1.10%。 - 两个修复(!1158+!1174)零性能开销成立:048d0427 vs d0906c3e 同日(09-08)逐 shape 差值中,唯一变慢的是
2×8×512+0.41% 和1×16×1024+0.13%,其余为变快;表面上的 −8.43%(t2048)经跨天对照判定为 d0906c3e 当日离群值(§7)。 - 端到端延迟与流水线数据自洽:msprof 单 kernel ~955µs vs 同 shape 端到端 1.151ms = 83.0%,8 核并行没有串行化(
docs/PR-1135-d0906c3e/11-流水线剖析msprof实战.md §1.3+ 本报告计算)。 - RGDR(!1140)从未产出任何延迟数据——它的 perf 用例被 deselect(
PLAN.md L14),因此本报告不纳入跨算子性能比较。
1. 主表:6 shape × 3 版本
| # | shape (B×H×T×Dk×Dv) | 00e39ab5 (!1108) ms | d0906c3e (!1135) ms | 048d0427 (!1158+!1174) ms | 加速比 (!1135,docs 标注) | 加速比 (048d0427,本报告计算) |
|---|---|---|---|---|---|---|
| S1 | 1×8×64×64×64 | 1.256 | 0.928 | 0.858 | 1.35x | 1.4639 → 1.46x |
| S2 | 1×16×128×128×128 | 7.273 | 1.151 | 1.141 | 6.3x | 6.3742 → 6.37x |
| S3 | 1×1×128×128×256 | 3.639 | 0.831 | 0.819 | 4.4x | 4.4432 → 4.44x |
| S4 | 2×8×512×128×128 | 25.193 | 4.355 | 4.373 | 5.8x | 5.7610 → 5.76x |
| S5 | 1×16×1024×128×128 | 49.291 | 8.746 | 8.757 | 5.6x | 5.6288 → 5.63x |
| S6 | 1×16×2048×128×128 | 97.311 | 18.954 | 17.357 | 5.1x | 5.6064 → 5.61x |
出处(三处互相独立、数值完全一致):
- 00e39ab5 列:
PLAN.md §Step A+B 结论 L77-88;docs/PR-406-00e39ab5/00-PR总览与实验复现.md §4.5(两处同值,后者多一列"测试内置基线/偏差")。 - d0906c3e 列与加速比列:
PLAN.md L95-104;docs/PR-1135-d0906c3e/02-实验复现.md §4 L83-90;docs/PR-1135-d0906c3e/00-PR总览与实验复现.md §2 L45-52;README.md §关键实测数据 L82-89。 - 048d0427 列:
PLAN.md L111(只给数字串 0.858/1.141/0.819/4.373/8.757/17.357);docs/PR-1174-048d0427/02-实验复现.md §5 L80-87(带 shape 对齐的表);README.md L82-89第 5 列。 - 最后一列加速比 = 00e39ab5 ÷ 048d0427,本报告计算,docs 未给该口径。
补充(同一 shape 的 pytest 用例名,用于跨文档对齐):2×8×512×128×128 = test_performance_regression_310p[long_t512_batch2](docs/PR-1135-d0906c3e/02-实验复现.md §4 L92-101)、1×16×2048×128×128 = [long_t2048](同文 §6.5)。
2. 加速比核对:docs 标注值 vs 本报告重算
| shape | docs 标注 | 本报告计算 | 绝对偏差 | 判定 |
|---|---|---|---|---|
| S1 | 1.35x | 1.256÷0.928 = 1.3534 | +0.003 | 一致(舍入到 2 位) |
| S2 | 6.3x | 7.273÷1.151 = 6.3189 | +0.019 | 一致(docs 少写一位) |
| S3 | 4.4x | 3.639÷0.831 = 4.3791 | −0.021 | docs 向上舍入到 1 位 |
| S4 | 5.8x | 25.193÷4.355 = 5.7848 | −0.015 | docs 向上舍入 |
| S5 | 5.6x | 49.291÷8.746 = 5.6358 | +0.036 | docs 向下舍入 |
| S6 | 5.1x | 97.311÷18.954 = 5.1341 | +0.034 | docs 向下舍入 |
结论:docs 的 6 个加速比没有一处需要更正,最大偏差 0.036 倍,全部可由一位小数舍入解释(本报告计算)。
3. 峰值位置与加速比分布
- 峰值 6.32x 在 S2 = 1×16×128×128×128(
PLAN.md L100,本报告精确化到 6.3189)。这个 shape 同时也是 msprof 流水线的代表 shape(docs/PR-1135-d0906c3e/11-流水线剖析msprof实战.md §1.1选它作被测 shape,注释写"Cube 化收益最大的那个")。 - 区间:[1.35x, 6.32x];6 shape 几何平均 = 4.2940x(本报告计算):
exp((ln1.3534+ln6.3189+ln4.3791+ln5.7848+ln5.6358+ln5.1341)/6) = exp(8.7437/6) = 4.294。 等价乘积式:(1.3534×6.3189×4.3791×5.7848×5.6358×5.1341)^(1/6) = 6268.2^(1/6) = 4.294。 - 算术平均 = 4.7677x(28.6062÷6),比几何平均高 0.47 倍——被 S1 这个 1.35x 的离群小 shape 拉开,所以对外报告应优先用几何平均或"区间 + 峰值"。
- 剔除 S1(唯一没吃到 Cube 收益的 shape)后的 5 shape 几何平均 = 5.4094x(本报告计算)→ "典型收益 ≈5.4x" 是比"6.3x"更不失真的说法。
- 048d0427 口径的几何平均 4.4280x(本报告计算,同一算式换分母),比 d0906c3e 口径高 0.13 倍,全部来自 S6 的跨天离群(§7)。
S1 为什么只有 1.35x:docs 未解释。可核对的事实是 S1 是 6 个 shape 里唯一 Dk=Dv=64(≤kSmallCubeDk=64,src/d0906c3e/op_host/chunk_gated_delta_rule_tiling.cpp:43)、且 T=64 只有 1 个 chunk 的 shape——工作量最接近 kernel launch + 装载的固定成本地板。此归因为本报告推断,非文档结论。
4. 2026-09-14 中间 commit 矩阵(!1135 演进史,4 列 × 6 shape)
| shape | a9c66ddb 初版 | 725cf45d 泛化 | 69300ffc 四桶 | d0906c3e 终态(当日对照) |
|---|---|---|---|---|
| 正确性(P/F/S) | 13P/0F/13S | 2P/11F/13S | 12P/1F/13S | 12P/1F/13S |
| S1 1×8×64×64×64 | 0.938 | 0.865 | 0.878 | 0.869 |
| S2 1×16×128×128×128 | 1.151 | 1.132 | 1.149 | 1.132 |
| S3 1×1×128×128×256 | 0.846 | 0.780 | 0.849 | 0.794 |
| S4 2×8×512×128×128 | 4.376 | 4.333 | 4.350 | 4.340 |
| S5 1×16×1024×128×128 | 8.799 | 8.702 | 8.753 | 8.737 |
| S6 1×16×2048×128×128 | 17.441 | 17.339 | 17.386 | ~17.4 |
两处口径差异(不做取舍,并列):① S6 终态值 PLAN 写 ~17.4、演进史写 (17.3~17.4)——都是一个区间而非 3 位小数,本报告所有涉及该格的计算按 17.4 取值,误差 ≤0.06%;② PLAN L131 的 a9c66ddb 正确性写 13P/0F/13S,演进史 §9.1 写 13 passed 13 skipped 0 failed,一致。
5. 「Cube 收益一天内全部兑现」的算术依据
算式(同一 shape S2,三个数来自不同表):
总收益 = 00e39ab5 − d0906c3e(09-14) = 7.273 − 1.132 = 6.141 ms
a9c66ddb 已兑现 = 00e39ab5 − a9c66ddb = 7.273 − 1.151 = 6.122 ms
兑现率 = 6.122 / 6.141 = 99.69% 残留 = 0.019 ms = 0.31%
加速比 = a9c66ddb 6.3189x vs 终态 6.4249x (本报告计算)- 三个输入分别来自:
PLAN.md L82(7.273)、PLAN.md L133(a9c66ddb 1.151 / d0906c3e 1.132)。 - 更强的一条:09-08 当日 d0906c3e 的 S2 实测就是 1.151ms(
PLAN.md L100),与 09-14 的 a9c66ddb 同一个数 → 在这个 shape 上后续 5 个 commit 的净性能贡献为 0.000ms(本报告计算)。 - 6 shape 兑现率全表(本报告计算,用 a9c66ddb 与 d0906c3e 的 09-14 同日对照,基线取 09-08):
| shape | 总收益 ms | a9c66ddb 已兑现 ms | 兑现率 | 残留 ms |
|---|---|---|---|---|
| S1 | 0.387 | 0.318 | 82.17% | −0.069 |
| S2 | 6.141 | 6.122 | 99.69% | −0.019 |
| S3 | 2.845 | 2.793 | 98.17% | −0.052 |
| S4 | 20.853 | 20.817 | 99.83% | −0.036 |
| S5 | 40.554 | 40.492 | 99.85% | −0.062 |
| S6 | 79.911 | 79.870 | 99.95% | −0.041 |
5 个大 shape 兑现率 98.17%~99.95%,均值 99.50%(本报告计算)→ 演进史 §9.2 的"Cube 化的收益一天内就全部兑现,后续 5 个 commit 没有再贡献任何性能(它们的贡献是正确性/泛化/合规)"在算术上站得住;S1 的 82% 是亚毫秒噪声(§8),不是反例。
6. 泛化重构前后的逐 shape 差值百分比(本报告计算)
PLAN.md §中间 commit 实测矩阵 结论 1 与 docs/PR-1135-d0906c3e/10-Commit演进史.md §9.2 都写"六 shape 差 <1.5%"。逐 shape 重算(分母 = 前一列,符号 = 后一版本相对变化):
| shape | a9c→725cf45d(泛化重构本身) | a9c→69300ffc | a9c→d0906c3e(全链) | 绝对差 ms(a9c→725) |
|---|---|---|---|---|
| S1 1×8×64 | −7.78% | −6.40% | −7.36% | −0.073 |
| S2 1×16×128 | −1.65% | −0.17% | −1.65% | −0.019 |
| S3 1×1×128×256 | −7.80% | +0.35% | −6.15% | −0.066 |
| S4 2×8×512 | −0.98% | −0.59% | −0.82% | −0.043 |
| S5 1×16×1024 | −1.10% | −0.52% | −0.70% | −0.097 |
| S6 1×16×2048 | −0.58% | −0.32% | −0.24% | −0.102 |
配对全矩阵的最大偏差(本报告计算,6 个配对 × 6 shape):
| 配对 | max|Δ| | 超过 1.5% 的 shape 数 |
|---|---|---|
| a9c → 725cf45d | 7.80% | 3 |
| a9c → 69300ffc | 6.40% | 1 |
| a9c → d0906c3e | 7.36% | 3 |
| 725cf45d → 69300ffc | 8.85% | 3 |
| 725cf45d → d0906c3e | 1.79% | 1 |
| 69300ffc → d0906c3e | 6.48% | 1 |
没有任何一个配对满足"六 shape 全部 <1.5%";最接近的是 725cf45d→d0906c3e(5/6 达标,最大 1.79%)。同时:
- 只看 4 个 ≥1.13ms 的 shape(S2/S4/S5/S6):a9c→725 最大 1.65%、a9c→d0906c3e 最大 1.65%;
- 只看 3 个 ≥4.3ms 的 shape(S4/S5/S6):所有配对最大 1.10% → 完全落在"<1.5%"内;
- 超标的两格全部是亚毫秒 shape(S1/S3),绝对差 52~73µs,与 §8 的跨天自漂移(同 build 6.36%/4.45%,绝对差 59~37µs)同量级同方向。
本报告判定:文档"<1.5%"是按大 shape 写的、按六 shape 报的——结论(编译期常量折叠使重构零性能损失,机理见 docs/PR-1135-d0906c3e/10-Commit演进史.md §9.2:SelectCubeDk 是纯 host 逻辑,device 侧逐指令等价)成立,阈值数字需要更正为"≥1.13ms 的 shape ≤1.65%,≥4.3ms 的 shape ≤1.10%,亚毫秒 shape 差 60~75µs 属噪声地板"。
7. 修复是否零开销(048d0427 vs d0906c3e)
同日口径(两次测量都在 2026-09-08,PLAN.md L97-104 + L111 + docs/PR-1174-048d0427/02-实验复现.md §5):
| shape | d0906c3e ms | 048d0427 ms | 差值 ms | 差值 % | 方向 |
|---|---|---|---|---|---|
| S1 | 0.928 | 0.858 | −0.070 | −7.54% | 变快 |
| S2 | 1.151 | 1.141 | −0.010 | −0.87% | 变快 |
| S3 | 0.831 | 0.819 | −0.012 | −1.44% | 变快 |
| S4 | 4.355 | 4.373 | +0.018 | +0.41% | 变慢 |
| S5 | 8.746 | 8.757 | +0.011 | +0.13% | 变慢 |
| S6 | 18.954 | 17.357 | −1.597 | −8.43% | 变快 |
最坏单 shape 退化 = +0.41%(S4),绝对 18µs(本报告计算)→ docs/PR-1174-048d0427/00-PR总览与实验复现.md §2 的"性能(6 shape)……持平"与 PLAN.md L111 的"与 d0906c3e 相同(修复零性能开销)"成立。但两处措辞需要限定:
PLAN.md L111说"相同",而表里 S6 差 1.597ms(−8.43%)——不是"相同",是"不退步"。两处 docs(PR-1174/00 §2、PR-1174/02 §5)用的是"持平",措辞更准。这是 PLAN 与 docs 的表述差异,并列记录,不取舍。- S6 的 −8.43% 不是修复带来的收益:09-14 重跑 d0906c3e 本身,S6 = ~17.4ms,与 048d0427 的 17.357 只差 −0.25%(本报告计算)→ 09-08 的 18.954 是该构建的离群值(同一次实验里 d0906c3e 在 S4/S6 都出现过间歇崩溃,
PLAN.md:104)。 - 用 09-14 的 d0906c3e 对照列重算 048d0427 的差值(跨天口径,本报告计算):−1.27% / +0.80% / +3.15%(S3) / +0.76% / +0.23% / −0.25% → 最坏退化上界放宽到 +3.15%,仍在亚毫秒 shape 的噪声地板内。
- 代价的物理量级有锚:!1174 的改动是 kernel.h 新增 1 个封装 + 8 处替换、净 +11 行(
docs/PR-1174-048d0427/00-PR总览与实验复现.md头部),本仓库快照核对:CopyL0CToUb在src/048d0427/op_kernel/chunk_gated_delta_rule.h中出现 9 次(1 处定义 :116 + 8 处调用 :511/:1183/:1298/:1734/:1823/:1909/:2058/:2271),d0906c3e 快照中出现 0 次——与文档"8 处"完全一致(本报告本地 grep 核对)。
8. 测量噪声地板(同一构建、不同日期)
d0906c3e 在 09-08 与 09-14 各测一次(PLAN.md L97-104 vs L129-137 末列,本报告计算):
| shape | 09-08 ms | 09-14 ms | Δ% | Δms |
|---|---|---|---|---|
| S1 | 0.928 | 0.869 | −6.36% | −0.059 |
| S2 | 1.151 | 1.132 | −1.65% | −0.019 |
| S3 | 0.831 | 0.794 | −4.45% | −0.037 |
| S4 | 4.355 | 4.340 | −0.34% | −0.015 |
| S5 | 8.746 | 8.737 | −0.10% | −0.009 |
| S6 | 18.954 | 17.4 | −8.20% | −1.554 |
这就是本台账的解释上限:同一个二进制的相对偏差可达 6.4%(S1)/ 8.2%(S6),绝对偏差在 ≤1ms 的 shape 上是 37~59µs、在 S6 上是 1.55ms。所以:
- 任何 <1% 的单 shape 差异(S4/S5 级别)不能当作性能变化解读;
- 亚毫秒 shape 的 <8% 差异不能当作回归/收益解读;
- 只有"跨 shape 一致的方向 + 大 shape 的量级"(例如 Cube 化的 5~6 倍)才是可下结论的信号。