paper: §2 polish + §5 fresh all-reduce data + kernbench probe table
§2 platform:
- Add a "memory-centric AHBM" sentence to the device-and-execution
intro: each PE is paired with dedicated HBM bandwidth and on-PE
TCM, so the performance question is about feeding compute from
locally-attached memory + moving the unavoidable inter-PE traffic
efficiently. Makes the AHBM character of the platform visible
before §2.3 starts unpacking the latency model.
- Promote "Congestion and contention modeling" from \paragraph to
\subsubsection: this is the platform's core differentiator over a
peak-BW roofline, so it deserves its own heading.
- Rename "Control-plane (issue) cost model" to "Command dispatch
overhead model" -- describes what it actually charges (the PE_CPU
paying a fixed + per-byte cost to push a command to one of the
accelerator engines) without the more abstract "control-plane"
framing.
- Add a third Accuracy cross-check from kernbench probe: a
PE→HBM DMA-distance sweep that confirms monotonic hop progression,
bandwidth saturation matching the per-edge model, and the built-in
invariants (D2H >= H2D, cross-CUBE best < worst). New
Table~\ref{tab:probe-pe-dma} reports per-traversal latency and
utilisation at 32KiB / 1MiB across five hop classes.
- Captured probe output as figures/probe_pe_dma_summary.txt for
reproducibility.
§5 PE_IPCQ / all-reduce:
- Re-ran milestone-1h-ccl on current sim_engine (post-ADR-0064 Rev2
and the IPCQ slot-wrap Phase-2 race fix). Updated the topology-
comparison table and the buffer-kind caption to the fresh raw
latencies. Headline ratios are preserved:
torus vs mesh saving at 96 KB/PE: 24.8% (was 24.8%) -> ~25%
torus vs ring saving at 96 KB/PE: 19.3% (was 19.3%) -> ~19%
TCM vs HBM saving at 64 KB/PE: 13.4% (was 13.9%) -> ~13%
TCM vs SRAM saving at 64 KB/PE: 37.2% (was 38.3%) -> ~37%
The Executive Summary's "up to ~14%" / "up to ~38%" framing stays
consistent with these post values.
Artifacts refreshed in src/kernbench/benches/1H_milestone_output/:
- ccl/summary.csv + per-topology PNGs + buffer-kind CSV/PNG
- ccl/comparison_mesh_vs_ring_vs_2DTorus_vs_theoretical_vs_fsim.png
- gemm/* (re-run yields identical pe_window structure; PNGs
refreshed)
Paper figures synced to the fresh artifacts:
- figures/allreduce_comparison.png
- figures/allreduce_buffer_kind.png
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -1,13 +1,13 @@
|
||||
buffer_kind,sip_topology,n_sips,n_elem,bytes_per_pe,latency_ns
|
||||
hbm,torus_2d,6,128,256,2120.040000000012
|
||||
hbm,torus_2d,6,1024,2048,2717.2783333333473
|
||||
hbm,torus_2d,6,8192,16384,7315.184999999989
|
||||
hbm,torus_2d,6,32768,65536,23081.26500000037
|
||||
sram,torus_2d,6,128,256,2060.040000000012
|
||||
sram,torus_2d,6,1024,2048,2909.2783333333473
|
||||
sram,torus_2d,6,8192,16384,9523.184999999869
|
||||
sram,torus_2d,6,32768,65536,32201.265000000385
|
||||
tcm,torus_2d,6,128,256,1964.040000000012
|
||||
tcm,torus_2d,6,1024,2048,2477.2783333333473
|
||||
tcm,torus_2d,6,8192,16384,6403.185000000109
|
||||
tcm,torus_2d,6,32768,65536,19865.265000000378
|
||||
buffer_kind,sip_topology,n_sips,n_elem,bytes_per_pe,latency_ns
|
||||
hbm,torus_2d,6,128,256,3113.040000000012
|
||||
hbm,torus_2d,6,1024,2048,3710.2783333333527
|
||||
hbm,torus_2d,6,8192,16384,8308.184999999929
|
||||
hbm,torus_2d,6,32768,65536,24074.26500000037
|
||||
sram,torus_2d,6,128,256,3053.040000000012
|
||||
sram,torus_2d,6,1024,2048,3902.2783333333573
|
||||
sram,torus_2d,6,8192,16384,10516.18499999987
|
||||
sram,torus_2d,6,32768,65536,33194.265000000385
|
||||
tcm,torus_2d,6,128,256,2957.040000000012
|
||||
tcm,torus_2d,6,1024,2048,3470.2783333333527
|
||||
tcm,torus_2d,6,8192,16384,7396.18499999999
|
||||
tcm,torus_2d,6,32768,65536,20858.265000000378
|
||||
|
||||
|
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
@@ -1,37 +1,37 @@
|
||||
algorithm,sip_topology,n_sips,n_elem,bytes_per_pe,bytes_per_sip,latency_ns
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,8,16,256,2666.552500000015
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,32,64,1024,2747.7400000000152
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,64,128,2048,2855.990000000018
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,128,256,4096,3072.490000000019
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,512,1024,16384,3337.1133333333582
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,1024,2048,32768,3708.0333333333692
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,2048,4096,65536,4449.873333333393
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,4096,8192,131072,5933.020000000124
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,8192,16384,262144,8900.379999999863
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,16384,32768,524288,14835.099999999224
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,32768,65536,1048576,26704.540000000765
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,49152,98304,1572864,38573.97999999701
|
||||
lrab_hierarchical_allreduce,ring_1d,6,8,16,256,2365.255833333347
|
||||
lrab_hierarchical_allreduce,ring_1d,6,32,64,1024,2436.9433333333473
|
||||
lrab_hierarchical_allreduce,ring_1d,6,64,128,2048,2532.526666666683
|
||||
lrab_hierarchical_allreduce,ring_1d,6,128,256,4096,2723.693333333349
|
||||
lrab_hierarchical_allreduce,ring_1d,6,512,1024,16384,3048.635000000021
|
||||
lrab_hierarchical_allreduce,ring_1d,6,1024,2048,32768,3393.4016666666957
|
||||
lrab_hierarchical_allreduce,ring_1d,6,2048,4096,65536,4082.401666666714
|
||||
lrab_hierarchical_allreduce,ring_1d,6,4096,8192,131072,5458.80166666677
|
||||
lrab_hierarchical_allreduce,ring_1d,6,8192,16384,262144,8216.934999999943
|
||||
lrab_hierarchical_allreduce,ring_1d,6,16384,32768,524288,13733.201666665835
|
||||
lrab_hierarchical_allreduce,ring_1d,6,32768,65536,1048576,24765.73500000064
|
||||
lrab_hierarchical_allreduce,ring_1d,6,49152,98304,1572864,35798.268333331536
|
||||
lrab_hierarchical_allreduce,torus_2d,6,8,16,256,1700.6025000000095
|
||||
lrab_hierarchical_allreduce,torus_2d,6,32,64,1024,1753.2900000000102
|
||||
lrab_hierarchical_allreduce,torus_2d,6,64,128,2048,1823.540000000012
|
||||
lrab_hierarchical_allreduce,torus_2d,6,128,256,4096,1964.040000000012
|
||||
lrab_hierarchical_allreduce,torus_2d,6,512,1024,16384,2196.8183333333463
|
||||
lrab_hierarchical_allreduce,torus_2d,6,1024,2048,32768,2477.2783333333473
|
||||
lrab_hierarchical_allreduce,torus_2d,6,2048,4096,65536,3038.1983333333583
|
||||
lrab_hierarchical_allreduce,torus_2d,6,4096,8192,131072,4159.5050000000665
|
||||
lrab_hierarchical_allreduce,torus_2d,6,8192,16384,262144,6403.185000000109
|
||||
lrab_hierarchical_allreduce,torus_2d,6,16384,32768,524288,10890.5449999995
|
||||
lrab_hierarchical_allreduce,torus_2d,6,32768,65536,1048576,19865.265000000378
|
||||
lrab_hierarchical_allreduce,torus_2d,6,49152,98304,1572864,28839.98500000059
|
||||
algorithm,sip_topology,n_sips,n_elem,bytes_per_pe,bytes_per_sip,latency_ns
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,8,16,256,3782.5525000000202
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,32,64,1024,3863.7400000000207
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,64,128,2048,3971.9900000000216
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,128,256,4096,4188.4900000000225
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,512,1024,16384,4453.113333333365
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,1024,2048,32768,4824.033333333375
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,2048,4096,65536,5565.873333333401
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,4096,8192,131072,7049.020000000062
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,8192,16384,262144,10016.379999999745
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,16384,32768,524288,15951.099999999256
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,32768,65536,1048576,27820.540000000765
|
||||
lrab_hierarchical_allreduce,mesh_2d_no_wrap,6,49152,98304,1572864,39689.97999999693
|
||||
lrab_hierarchical_allreduce,ring_1d,6,8,16,256,3524.2558333333504
|
||||
lrab_hierarchical_allreduce,ring_1d,6,32,64,1024,3595.943333333351
|
||||
lrab_hierarchical_allreduce,ring_1d,6,64,128,2048,3691.5266666666857
|
||||
lrab_hierarchical_allreduce,ring_1d,6,128,256,4096,3882.6933333333527
|
||||
lrab_hierarchical_allreduce,ring_1d,6,512,1024,16384,4207.101666666693
|
||||
lrab_hierarchical_allreduce,ring_1d,6,1024,2048,32768,4550.801666666699
|
||||
lrab_hierarchical_allreduce,ring_1d,6,2048,4096,65536,5240.335000000055
|
||||
lrab_hierarchical_allreduce,ring_1d,6,4096,8192,131072,6617.801666666763
|
||||
lrab_hierarchical_allreduce,ring_1d,6,8192,16384,262144,9375.934999999827
|
||||
lrab_hierarchical_allreduce,ring_1d,6,16384,32768,524288,14892.201666666035
|
||||
lrab_hierarchical_allreduce,ring_1d,6,32768,65536,1048576,25924.735000000648
|
||||
lrab_hierarchical_allreduce,ring_1d,6,49152,98304,1572864,36957.268333330976
|
||||
lrab_hierarchical_allreduce,torus_2d,6,8,16,256,2693.6025000000113
|
||||
lrab_hierarchical_allreduce,torus_2d,6,32,64,1024,2746.290000000012
|
||||
lrab_hierarchical_allreduce,torus_2d,6,64,128,2048,2816.5400000000127
|
||||
lrab_hierarchical_allreduce,torus_2d,6,128,256,4096,2957.040000000012
|
||||
lrab_hierarchical_allreduce,torus_2d,6,512,1024,16384,3189.81833333335
|
||||
lrab_hierarchical_allreduce,torus_2d,6,1024,2048,32768,3470.2783333333527
|
||||
lrab_hierarchical_allreduce,torus_2d,6,2048,4096,65536,4031.1983333333665
|
||||
lrab_hierarchical_allreduce,torus_2d,6,4096,8192,131072,5152.5050000000665
|
||||
lrab_hierarchical_allreduce,torus_2d,6,8192,16384,262144,7396.18499999999
|
||||
lrab_hierarchical_allreduce,torus_2d,6,16384,32768,524288,11883.544999999496
|
||||
lrab_hierarchical_allreduce,torus_2d,6,32768,65536,1048576,20858.265000000378
|
||||
lrab_hierarchical_allreduce,torus_2d,6,49152,98304,1572864,29832.98500000003
|
||||
|
||||
|
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
@@ -33,7 +33,7 @@
|
||||
"bytes_hbm": 6144,
|
||||
"arith_intensity": 10.666666666666666,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 1.64,
|
||||
"sim_wall_clock_s": 0.297,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -100,7 +100,7 @@
|
||||
"bytes_hbm": 6144,
|
||||
"arith_intensity": 10.666666666666666,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 0.696,
|
||||
"sim_wall_clock_s": 0.239,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -167,7 +167,7 @@
|
||||
"bytes_hbm": 6144,
|
||||
"arith_intensity": 10.666666666666666,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 0.605,
|
||||
"sim_wall_clock_s": 0.243,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -234,7 +234,7 @@
|
||||
"bytes_hbm": 10240,
|
||||
"arith_intensity": 12.8,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 0.599,
|
||||
"sim_wall_clock_s": 0.427,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -301,7 +301,7 @@
|
||||
"bytes_hbm": 10240,
|
||||
"arith_intensity": 12.8,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 0.622,
|
||||
"sim_wall_clock_s": 0.336,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -368,7 +368,7 @@
|
||||
"bytes_hbm": 10240,
|
||||
"arith_intensity": 12.8,
|
||||
"tile_count_expected": 1,
|
||||
"sim_wall_clock_s": 0.63,
|
||||
"sim_wall_clock_s": 0.237,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -435,7 +435,7 @@
|
||||
"bytes_hbm": 18432,
|
||||
"arith_intensity": 14.222222222222221,
|
||||
"tile_count_expected": 2,
|
||||
"sim_wall_clock_s": 0.618,
|
||||
"sim_wall_clock_s": 0.322,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -502,7 +502,7 @@
|
||||
"bytes_hbm": 18432,
|
||||
"arith_intensity": 14.222222222222221,
|
||||
"tile_count_expected": 2,
|
||||
"sim_wall_clock_s": 0.642,
|
||||
"sim_wall_clock_s": 0.247,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -569,7 +569,7 @@
|
||||
"bytes_hbm": 18432,
|
||||
"arith_intensity": 14.222222222222221,
|
||||
"tile_count_expected": 2,
|
||||
"sim_wall_clock_s": 0.769,
|
||||
"sim_wall_clock_s": 0.247,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -636,7 +636,7 @@
|
||||
"bytes_hbm": 49152,
|
||||
"arith_intensity": 21.333333333333332,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.649,
|
||||
"sim_wall_clock_s": 0.359,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -703,7 +703,7 @@
|
||||
"bytes_hbm": 49152,
|
||||
"arith_intensity": 21.333333333333332,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.639,
|
||||
"sim_wall_clock_s": 0.368,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -770,7 +770,7 @@
|
||||
"bytes_hbm": 49152,
|
||||
"arith_intensity": 21.333333333333332,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.684,
|
||||
"sim_wall_clock_s": 0.241,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -837,7 +837,7 @@
|
||||
"bytes_hbm": 395264,
|
||||
"arith_intensity": 15.917098445595855,
|
||||
"tile_count_expected": 48,
|
||||
"sim_wall_clock_s": 0.623,
|
||||
"sim_wall_clock_s": 0.318,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -904,7 +904,7 @@
|
||||
"bytes_hbm": 395264,
|
||||
"arith_intensity": 15.917098445595855,
|
||||
"tile_count_expected": 48,
|
||||
"sim_wall_clock_s": 0.763,
|
||||
"sim_wall_clock_s": 0.295,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -971,7 +971,7 @@
|
||||
"bytes_hbm": 395264,
|
||||
"arith_intensity": 15.917098445595855,
|
||||
"tile_count_expected": 48,
|
||||
"sim_wall_clock_s": 0.647,
|
||||
"sim_wall_clock_s": 0.321,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1038,7 +1038,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.637,
|
||||
"sim_wall_clock_s": 0.219,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1105,7 +1105,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.678,
|
||||
"sim_wall_clock_s": 0.337,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1172,7 +1172,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 8,
|
||||
"sim_wall_clock_s": 0.66,
|
||||
"sim_wall_clock_s": 0.356,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1239,7 +1239,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 16,
|
||||
"sim_wall_clock_s": 0.658,
|
||||
"sim_wall_clock_s": 0.372,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1306,7 +1306,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 16,
|
||||
"sim_wall_clock_s": 0.646,
|
||||
"sim_wall_clock_s": 0.245,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1373,7 +1373,7 @@
|
||||
"bytes_hbm": 36864,
|
||||
"arith_intensity": 7.111111111111111,
|
||||
"tile_count_expected": 16,
|
||||
"sim_wall_clock_s": 0.673,
|
||||
"sim_wall_clock_s": 0.243,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1440,7 +1440,7 @@
|
||||
"bytes_hbm": 1572864,
|
||||
"arith_intensity": 170.66666666666666,
|
||||
"tile_count_expected": 2048,
|
||||
"sim_wall_clock_s": 0.727,
|
||||
"sim_wall_clock_s": 0.357,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1507,7 +1507,7 @@
|
||||
"bytes_hbm": 1572864,
|
||||
"arith_intensity": 170.66666666666666,
|
||||
"tile_count_expected": 2048,
|
||||
"sim_wall_clock_s": 0.707,
|
||||
"sim_wall_clock_s": 0.364,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
@@ -1574,7 +1574,7 @@
|
||||
"bytes_hbm": 1572864,
|
||||
"arith_intensity": 170.66666666666666,
|
||||
"tile_count_expected": 2048,
|
||||
"sim_wall_clock_s": 0.828,
|
||||
"sim_wall_clock_s": 0.239,
|
||||
"engines": {
|
||||
"pe_dma": {
|
||||
"occupancy_ns": 16594.192,
|
||||
|
||||