b6315c3c90
Two strands bundled as the 1H-codesign-paper refresh unit: (A) This session — single-op cost-model reflection (depends on2d8271c): - §2 Table 2 (tab:hw): split "FIXED per command" into "FIXED per single-op command" (8 cycles) and "FIXED per composite command" (40 cycles); §2 dispatch-overhead prose updated to the two-class split. - §3.4 (sec:gemm-vs-async): rename paragraph headers + prose to async-full / async-tiled; "atomic" -> "single-op" throughout; reframe mechanism #3 from the old DMA-only fast-path to the single-op fast-path. Headline narrative now: even with EVERY single-op cmd (96 DMA + 48 dot + 47 add) charged the light 8-cycle FIXED, composite still wins ~2.8x at K=3072 purely on command-count structure (1 vs 192 commands) -- down from the pre-D8 ~6.3x, and explicitly NOT a modelling artifact. Numbers refreshed from the regenerated sweep: async-full 3.83->3.91, async-tiled 1.14->~2.53, under-tile corner 1.06->1.21, depth-2 vs depth-inf spread <1%. New figure wired in. - build/main.pdf rebuilt (tectonic); pdftotext-verified (no broken refs; Table 2 split, single-op terms, 2.8x/2.53/192-host-commands all present). (B) Prior-session paper work riding along uncommitted: §4 all-reduce deep-edit, §5 GQA, §6 discussion trims; milestone_1h_ccl.py plot label "FSIM" -> "H2 2025 SW queue baseline"; regenerated diagrams under docs/diagrams/** and gemm output PNGs under 1H_milestone_output/gemm/. (Composite-window gemm plots are unaffected by D8 — D8 only changes single-op dispatch FIXED, which the composite window excludes.) All TODO items for the D8 single-op extension are now complete and pushed across 3 commits (2d8271ccost-model+ADR+tests,821bbf2bench harness, this paper refresh). Full regression green (826 passed, 1 skipped). No remaining work. NOTE for review (carried from2d8271c): ADR-0065's "2x CPU-offload win" headline for GQA decode opt2 may want a refresh to the post-D8 ~1.87x. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
10 KiB
10 KiB
| 1 | hop | label | size_bytes | path | total_ns |
|---|---|---|---|---|---|
| 2 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 128 | ipcq | 42.88749999999891 |
| 3 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 128 | raw | 51.57999999999811 |
| 4 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 256 | ipcq | 46.13749999999891 |
| 5 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 256 | raw | 54.07999999999811 |
| 6 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 384 | ipcq | 47.88749999999891 |
| 7 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 384 | raw | 55.07999999999811 |
| 8 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 512 | ipcq | 49.63749999999891 |
| 9 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 512 | raw | 56.07999999999811 |
| 10 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 768 | ipcq | 53.13749999999891 |
| 11 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 768 | raw | 58.07999999999811 |
| 12 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 1024 | ipcq | 56.63749999999891 |
| 13 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 1024 | raw | 60.07999999999811 |
| 14 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 2048 | ipcq | 70.63749999999891 |
| 15 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 2048 | raw | 68.07999999999811 |
| 16 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 4096 | ipcq | 98.63750000000073 |
| 17 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 4096 | raw | 84.08000000000175 |
| 18 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 8192 | ipcq | 154.63750000000073 |
| 19 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 8192 | raw | 116.08000000000175 |
| 20 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 10240 | ipcq | 182.63750000000073 |
| 21 | latency_intracube_PE0_to_PE1_horizontal | Intra-cube PE-to-PE latency: PE0 → PE1 (horizontal) | 10240 | raw | 132.08000000000175 |
| 22 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 128 | ipcq | 56.49749999999585 |
| 23 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 128 | raw | 65.18999999999505 |
| 24 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 256 | ipcq | 61.24749999999585 |
| 25 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 256 | raw | 69.18999999999505 |
| 26 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 384 | ipcq | 62.99749999999585 |
| 27 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 384 | raw | 70.18999999999505 |
| 28 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 512 | ipcq | 64.74749999999585 |
| 29 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 512 | raw | 71.18999999999505 |
| 30 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 768 | ipcq | 68.24749999999585 |
| 31 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 768 | raw | 73.18999999999505 |
| 32 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 1024 | ipcq | 71.74749999999585 |
| 33 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 1024 | raw | 75.18999999999505 |
| 34 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 2048 | ipcq | 85.74749999999585 |
| 35 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 2048 | raw | 83.18999999999505 |
| 36 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 4096 | ipcq | 113.74750000000131 |
| 37 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 4096 | raw | 99.19000000000233 |
| 38 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 8192 | ipcq | 169.7475000000013 |
| 39 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 8192 | raw | 131.19000000000233 |
| 40 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 10240 | ipcq | 197.7475000000013 |
| 41 | latency_intracube_PE0_to_PE4_vertical | Intra-cube PE-to-PE latency: PE0 → PE4 (vertical) | 10240 | raw | 147.19000000000233 |
| 42 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 128 | ipcq | 99.15999999999804 |
| 43 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 128 | raw | 107.28999999999724 |
| 44 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 256 | ipcq | 106.65999999999804 |
| 45 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 256 | raw | 113.53999999999724 |
| 46 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 384 | ipcq | 108.90999999999804 |
| 47 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 384 | raw | 114.53999999999724 |
| 48 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 512 | ipcq | 111.15999999999804 |
| 49 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 512 | raw | 115.53999999999724 |
| 50 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 768 | ipcq | 115.65999999999804 |
| 51 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 768 | raw | 117.53999999999724 |
| 52 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 1024 | ipcq | 121.15999999999804 |
| 53 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 1024 | raw | 120.53999999999724 |
| 54 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 2048 | ipcq | 143.15999999999804 |
| 55 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 2048 | raw | 132.53999999999724 |
| 56 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 4096 | ipcq | 187.15999999999985 |
| 57 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 4096 | raw | 156.54000000000087 |
| 58 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 8192 | ipcq | 275.15999999999985 |
| 59 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 8192 | raw | 204.54000000000087 |
| 60 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 10240 | ipcq | 319.15999999999985 |
| 61 | latency_intercube_C0PE0_to_C1PE0_horizontal | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube1.PE0 (horizontal) | 10240 | raw | 228.54000000000087 |
| 62 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 128 | ipcq | 121.15999999999804 |
| 63 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 128 | raw | 129.28999999999724 |
| 64 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 256 | ipcq | 130.65999999999804 |
| 65 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 256 | raw | 137.53999999999724 |
| 66 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 384 | ipcq | 132.90999999999804 |
| 67 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 384 | raw | 138.53999999999724 |
| 68 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 512 | ipcq | 135.15999999999804 |
| 69 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 512 | raw | 139.53999999999724 |
| 70 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 768 | ipcq | 139.65999999999804 |
| 71 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 768 | raw | 141.53999999999724 |
| 72 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 1024 | ipcq | 145.15999999999804 |
| 73 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 1024 | raw | 144.53999999999724 |
| 74 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 2048 | ipcq | 167.15999999999804 |
| 75 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 2048 | raw | 156.53999999999724 |
| 76 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 4096 | ipcq | 211.15999999999985 |
| 77 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 4096 | raw | 180.54000000000087 |
| 78 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 8192 | ipcq | 299.15999999999985 |
| 79 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 8192 | raw | 228.54000000000087 |
| 80 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 10240 | ipcq | 343.15999999999985 |
| 81 | latency_intercube_C0PE0_to_C4PE0_vertical | Inter-cube PE-to-PE latency: Cube0.PE0 → Cube4.PE0 (vertical) | 10240 | raw | 252.54000000000087 |