Files
kernbench2/src/kernbench/benches/1H_milestone_output/gemm/gemm_sweep.json
T
ywkang e8b7f4f064 paper(gemm): per-PE HBM BW + TFLOPS evaluation plots; unify peak to 8 TFLOP/s
Two new evaluation plots for §3 GEMM, both using the composite window
as the denominator (the up-front tl.load of A in load_ref is therefore
excluded — only HBM traffic and compute inside the composite count):

- gemm_hbm_bw_util.png: per-PE HBM bandwidth utilization against the
  256 GB/s per-PE ceiling. Answers "is this workload memory-bound on
  this configuration?" — small/single-tile shapes sit at 22–46%
  (pipeline-fill-limited), large or output-write-dominated shapes
  saturate (≥85%).

- gemm_per_pe_tflops.png: per-PE GEMM throughput against the 8 TFLOP/s
  engine peak. The deep-K K=3072 load_ref case lands at
  7.18 TFLOP/s (~90% of peak) — the configuration's clean win.
  ref_ref at the same shape drops to 3.83 TFLOP/s because the second
  operand doubles HBM pressure and the kernel hits the BW ceiling.
  The variant gap on this chart is the operational cost of NOT
  pre-staging the activation.

Both charts compare two operand-staging variants on every shape:
load_ref ("activation pre-staged", weight-only HBM streaming) and
ref_ref (both A and W streamed from HBM). load_load is omitted —
with both operands pre-staged the composite carries no HBM traffic
and the BW metric collapses to 0.

Analytic / measured peak unified to the single hardware spec
(8.0 TFLOP/s = 8000 flops/ns). T_STAGE is now derived as
tile_flops / peak (= 16.384 ns for the 32×64×32 tile) rather than
the previous hardcoded 16 ns, so MAC efficiency and per-PE TFLOPS%
share the same denominator and never disagree. Side effect: max
analytic-vs-measured gap tightens from 2.2 ppt to 1.4 ppt across
the sweep.

§3 Results restructured: lead with the two new evaluation plots
(BW saturation, achieved throughput), then the MAC-utilization
analytic-vs-measured chart serves as the validation step, then the
per-stage engine wall-clock as the supporting diagnostic. §3
Analysis updated to use the load_ref / ref_ref contrast as the
hardware-software boundary line that motivates the GQA kernel of §5.

§2.4 Accuracy claim updated to match: GEMM analytic-vs-measured
agreement is now "within 1.4 ppt across every swept shape", from
~7.7% at single-tile up to ~90% at K=3072. Subtitle/title vertical
stacking glitch in the matplotlib charts fixed in passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-17 10:24:42 -07:00

1636 lines
39 KiB
JSON

{
"tile_sizes": {
"M": 32,
"K": 64,
"N": 32
},
"engines": [
"pe_dma",
"pe_fetch_store",
"pe_gemm",
"pe_math"
],
"stages": [
"DMA_READ",
"DMA_WRITE",
"FETCH",
"STORE",
"GEMM",
"MATH"
],
"variants": [
"ref_ref",
"load_ref",
"load_load"
],
"rows": [
{
"M": 32,
"K": 32,
"N": 32,
"variant": "ref_ref",
"flops": 65536,
"bytes_hbm": 6144,
"arith_intensity": 10.666666666666666,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.112,
"engines": {
"pe_dma": {
"occupancy_ns": 79.0,
"wall_ns": 79.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 58.0,
"wall_ns": 58.0,
"record_count": 2
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 135.38400000000001,
"composite_window_ns": 135.38400000000001
},
{
"M": 32,
"K": 32,
"N": 32,
"variant": "load_ref",
"flops": 65536,
"bytes_hbm": 6144,
"arith_intensity": 10.666666666666666,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.108,
"engines": {
"pe_dma": {
"occupancy_ns": 71.0,
"wall_ns": 71.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 29.0,
"wall_ns": 29.0,
"record_count": 1
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 171.394,
"composite_window_ns": 106.38400000000001
},
{
"M": 32,
"K": 32,
"N": 32,
"variant": "load_load",
"flops": 65536,
"bytes_hbm": 6144,
"arith_intensity": 10.666666666666666,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.105,
"engines": {
"pe_dma": {
"occupancy_ns": 63.0,
"wall_ns": 63.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 183.394,
"composite_window_ns": 77.38400000000001
},
{
"M": 32,
"K": 64,
"N": 32,
"variant": "ref_ref",
"flops": 131072,
"bytes_hbm": 10240,
"arith_intensity": 12.8,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.169,
"engines": {
"pe_dma": {
"occupancy_ns": 79.0,
"wall_ns": 79.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 58.0,
"wall_ns": 58.0,
"record_count": 2
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 135.38400000000001,
"composite_window_ns": 135.38400000000001
},
{
"M": 32,
"K": 64,
"N": 32,
"variant": "load_ref",
"flops": 131072,
"bytes_hbm": 10240,
"arith_intensity": 12.8,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.163,
"engines": {
"pe_dma": {
"occupancy_ns": 79.0,
"wall_ns": 79.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 29.0,
"wall_ns": 29.0,
"record_count": 1
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 179.394,
"composite_window_ns": 106.38400000000001
},
{
"M": 32,
"K": 64,
"N": 32,
"variant": "load_load",
"flops": 131072,
"bytes_hbm": 10240,
"arith_intensity": 12.8,
"tile_count_expected": 1,
"sim_wall_clock_s": 0.104,
"engines": {
"pe_dma": {
"occupancy_ns": 79.0,
"wall_ns": 79.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 40.0,
"wall_ns": 40.0,
"record_count": 2
},
"pe_gemm": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 32.0,
"wall_ns": 32.0,
"record_count": 1
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 16.384000000000015,
"wall_ns": 16.384000000000015,
"record_count": 1
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 191.394,
"composite_window_ns": 77.38400000000001
},
{
"M": 32,
"K": 128,
"N": 32,
"variant": "ref_ref",
"flops": 262144,
"bytes_hbm": 18432,
"arith_intensity": 14.222222222222221,
"tile_count_expected": 2,
"sim_wall_clock_s": 0.162,
"engines": {
"pe_dma": {
"occupancy_ns": 158.995,
"wall_ns": 98.0,
"record_count": 5
},
"pe_fetch_store": {
"occupancy_ns": 72.0,
"wall_ns": 56.0,
"record_count": 3
},
"pe_gemm": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 137.995,
"wall_ns": 77.0,
"record_count": 4
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 64.0,
"wall_ns": 48.0,
"record_count": 2
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 154.76800000000003,
"composite_window_ns": 154.76800000000003
},
{
"M": 32,
"K": 128,
"N": 32,
"variant": "load_ref",
"flops": 262144,
"bytes_hbm": 18432,
"arith_intensity": 14.222222222222221,
"tile_count_expected": 2,
"sim_wall_clock_s": 0.183,
"engines": {
"pe_dma": {
"occupancy_ns": 139.995,
"wall_ns": 111.0,
"record_count": 4
},
"pe_fetch_store": {
"occupancy_ns": 72.0,
"wall_ns": 56.0,
"record_count": 3
},
"pe_gemm": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 73.995,
"wall_ns": 45.0,
"record_count": 2
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 64.0,
"wall_ns": 48.0,
"record_count": 2
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 211.77800000000002,
"composite_window_ns": 122.76800000000003
},
{
"M": 32,
"K": 128,
"N": 32,
"variant": "load_load",
"flops": 262144,
"bytes_hbm": 18432,
"arith_intensity": 14.222222222222221,
"tile_count_expected": 2,
"sim_wall_clock_s": 0.106,
"engines": {
"pe_dma": {
"occupancy_ns": 112.0,
"wall_ns": 107.0,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 87.995,
"wall_ns": 56.0,
"record_count": 3
},
"pe_gemm": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 79.995,
"wall_ns": 48.0,
"record_count": 2
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 33.152000000000044,
"wall_ns": 32.76800000000003,
"record_count": 2
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 223.77800000000002,
"composite_window_ns": 93.76800000000003
},
{
"M": 32,
"K": 128,
"N": 128,
"variant": "ref_ref",
"flops": 1048576,
"bytes_hbm": 49152,
"arith_intensity": 21.333333333333332,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.177,
"engines": {
"pe_dma": {
"occupancy_ns": 1798.8600000000001,
"wall_ns": 339.0,
"record_count": 20
},
"pe_fetch_store": {
"occupancy_ns": 341.3119999999999,
"wall_ns": 160.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 1703.8600000000001,
"wall_ns": 269.0,
"record_count": 16
},
"DMA_WRITE": {
"occupancy_ns": 95.0,
"wall_ns": 94.0,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 272.0,
"wall_ns": 152.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 69.3119999999999,
"wall_ns": 69.3119999999999,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 354.384,
"composite_window_ns": 354.384
},
{
"M": 32,
"K": 128,
"N": 128,
"variant": "load_ref",
"flops": 1048576,
"bytes_hbm": 49152,
"arith_intensity": 21.333333333333332,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.22,
"engines": {
"pe_dma": {
"occupancy_ns": 819.8600000000001,
"wall_ns": 256.0,
"record_count": 13
},
"pe_fetch_store": {
"occupancy_ns": 341.3119999999999,
"wall_ns": 160.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 679.8600000000001,
"wall_ns": 141.0,
"record_count": 8
},
"DMA_WRITE": {
"occupancy_ns": 95.0,
"wall_ns": 94.0,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 272.0,
"wall_ns": 152.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 69.3119999999999,
"wall_ns": 69.3119999999999,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 315.394,
"composite_window_ns": 226.38400000000001
},
{
"M": 32,
"K": 128,
"N": 128,
"variant": "load_load",
"flops": 1048576,
"bytes_hbm": 49152,
"arith_intensity": 21.333333333333332,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.112,
"engines": {
"pe_dma": {
"occupancy_ns": 283.0,
"wall_ns": 238.07200000000012,
"record_count": 6
},
"pe_fetch_store": {
"occupancy_ns": 839.252,
"wall_ns": 152.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 141.82400000000052,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 96.0,
"wall_ns": 56.072000000000116,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 703.8600000000001,
"wall_ns": 144.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 135.39199999999983,
"wall_ns": 87.23199999999997,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 141.82400000000052,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 418.0820000000001,
"composite_window_ns": 192.07200000000012
},
{
"M": 32,
"K": 3072,
"N": 32,
"variant": "ref_ref",
"flops": 6291456,
"bytes_hbm": 395264,
"arith_intensity": 15.917098445595855,
"tile_count_expected": 48,
"sim_wall_clock_s": 0.2,
"engines": {
"pe_dma": {
"occupancy_ns": 56319.35999999987,
"wall_ns": 1569.9999999999998,
"record_count": 97
},
"pe_fetch_store": {
"occupancy_ns": 1543.9999999999995,
"wall_ns": 791.9999999999998,
"record_count": 49
},
"pe_gemm": {
"occupancy_ns": 1219.5840000000169,
"wall_ns": 786.4320000000005,
"record_count": 48
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 56298.35999999987,
"wall_ns": 1548.9999999999998,
"record_count": 96
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 1535.9999999999995,
"wall_ns": 783.9999999999998,
"record_count": 48
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 1219.5840000000169,
"wall_ns": 786.4320000000005,
"record_count": 48
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 1644.4320000000005,
"composite_window_ns": 1644.4320000000005
},
{
"M": 32,
"K": 3072,
"N": 32,
"variant": "load_ref",
"flops": 6291456,
"bytes_hbm": 395264,
"arith_intensity": 15.917098445595855,
"tile_count_expected": 48,
"sim_wall_clock_s": 0.237,
"engines": {
"pe_dma": {
"occupancy_ns": 20236.359999999866,
"wall_ns": 1582.9999999999998,
"record_count": 50
},
"pe_fetch_store": {
"occupancy_ns": 1543.9999999999998,
"wall_ns": 791.9999999999998,
"record_count": 49
},
"pe_gemm": {
"occupancy_ns": 1219.584000000017,
"wall_ns": 786.4320000000007,
"record_count": 48
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 19434.359999999866,
"wall_ns": 780.9999999999998,
"record_count": 48
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 1535.9999999999998,
"wall_ns": 783.9999999999998,
"record_count": 48
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 1219.584000000017,
"wall_ns": 786.4320000000007,
"record_count": 48
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 1701.4420000000007,
"composite_window_ns": 876.4320000000005
},
{
"M": 32,
"K": 3072,
"N": 32,
"variant": "load_load",
"flops": 6291456,
"bytes_hbm": 395264,
"arith_intensity": 15.917098445595855,
"tile_count_expected": 48,
"sim_wall_clock_s": 0.208,
"engines": {
"pe_dma": {
"occupancy_ns": 2310.0,
"wall_ns": 1569.9999999999998,
"record_count": 3
},
"pe_fetch_store": {
"occupancy_ns": 19586.359999999877,
"wall_ns": 792.0,
"record_count": 49
},
"pe_gemm": {
"occupancy_ns": 1219.584000000017,
"wall_ns": 786.4320000000007,
"record_count": 48
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 21.0,
"wall_ns": 21.0,
"record_count": 1
},
"FETCH": {
"occupancy_ns": 19578.359999999877,
"wall_ns": 784.0,
"record_count": 48
},
"STORE": {
"occupancy_ns": 8.0,
"wall_ns": 8.0,
"record_count": 1
},
"GEMM": {
"occupancy_ns": 1219.584000000017,
"wall_ns": 786.4320000000007,
"record_count": 48
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 2440.442000000001,
"composite_window_ns": 847.4320000000007
},
{
"M": 8,
"K": 128,
"N": 128,
"variant": "ref_ref",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.089,
"engines": {
"pe_dma": {
"occupancy_ns": 1798.8600000000001,
"wall_ns": 339.0,
"record_count": 20
},
"pe_fetch_store": {
"occupancy_ns": 341.3119999999999,
"wall_ns": 160.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 1703.8600000000001,
"wall_ns": 269.0,
"record_count": 16
},
"DMA_WRITE": {
"occupancy_ns": 95.0,
"wall_ns": 94.0,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 272.0,
"wall_ns": 152.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 69.3119999999999,
"wall_ns": 69.3119999999999,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 354.384,
"composite_window_ns": 354.384
},
{
"M": 8,
"K": 128,
"N": 128,
"variant": "load_ref",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.155,
"engines": {
"pe_dma": {
"occupancy_ns": 795.8600000000001,
"wall_ns": 232.0,
"record_count": 13
},
"pe_fetch_store": {
"occupancy_ns": 341.3119999999999,
"wall_ns": 160.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 679.8600000000001,
"wall_ns": 141.0,
"record_count": 8
},
"DMA_WRITE": {
"occupancy_ns": 95.0,
"wall_ns": 94.0,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 272.0,
"wall_ns": 152.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 69.3119999999999,
"wall_ns": 69.3119999999999,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 135.29600000000028,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 291.394,
"composite_window_ns": 226.38400000000001
},
{
"M": 8,
"K": 128,
"N": 128,
"variant": "load_load",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 8,
"sim_wall_clock_s": 0.234,
"engines": {
"pe_dma": {
"occupancy_ns": 258.0,
"wall_ns": 218.07200000000012,
"record_count": 6
},
"pe_fetch_store": {
"occupancy_ns": 839.252,
"wall_ns": 152.0,
"record_count": 12
},
"pe_gemm": {
"occupancy_ns": 141.82400000000052,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 96.0,
"wall_ns": 56.072000000000116,
"record_count": 4
},
"FETCH": {
"occupancy_ns": 703.8600000000001,
"wall_ns": 144.0,
"record_count": 8
},
"STORE": {
"occupancy_ns": 135.39199999999983,
"wall_ns": 87.23199999999997,
"record_count": 4
},
"GEMM": {
"occupancy_ns": 141.82400000000052,
"wall_ns": 131.07200000000012,
"record_count": 8
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 418.0820000000001,
"composite_window_ns": 192.07200000000012
},
{
"M": 128,
"K": 8,
"N": 128,
"variant": "ref_ref",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 16,
"sim_wall_clock_s": 0.119,
"engines": {
"pe_dma": {
"occupancy_ns": 7854.6320000000005,
"wall_ns": 653.0,
"record_count": 48
},
"pe_fetch_store": {
"occupancy_ns": 1367.9359999999997,
"wall_ns": 328.384,
"record_count": 32
},
"pe_gemm": {
"occupancy_ns": 264.83200000000033,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 6479.400000000001,
"wall_ns": 525.0,
"record_count": 32
},
"DMA_WRITE": {
"occupancy_ns": 1375.232,
"wall_ns": 296.0,
"record_count": 16
},
"FETCH": {
"occupancy_ns": 804.0,
"wall_ns": 316.0,
"record_count": 16
},
"STORE": {
"occupancy_ns": 563.9359999999997,
"wall_ns": 280.0,
"record_count": 16
},
"GEMM": {
"occupancy_ns": 264.83200000000033,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 653.0,
"composite_window_ns": 653.0
},
{
"M": 128,
"K": 8,
"N": 128,
"variant": "load_ref",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 16,
"sim_wall_clock_s": 0.183,
"engines": {
"pe_dma": {
"occupancy_ns": 3779.6320000000005,
"wall_ns": 418.0,
"record_count": 33
},
"pe_fetch_store": {
"occupancy_ns": 1367.9359999999997,
"wall_ns": 328.384,
"record_count": 32
},
"pe_gemm": {
"occupancy_ns": 264.83200000000033,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 2383.4000000000005,
"wall_ns": 269.0,
"record_count": 16
},
"DMA_WRITE": {
"occupancy_ns": 1375.232,
"wall_ns": 296.0,
"record_count": 16
},
"FETCH": {
"occupancy_ns": 804.0,
"wall_ns": 316.0,
"record_count": 16
},
"STORE": {
"occupancy_ns": 563.9359999999997,
"wall_ns": 280.0,
"record_count": 16
},
"GEMM": {
"occupancy_ns": 264.83200000000033,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 462.01,
"composite_window_ns": 397.0
},
{
"M": 128,
"K": 8,
"N": 128,
"variant": "load_load",
"flops": 262144,
"bytes_hbm": 36864,
"arith_intensity": 7.111111111111111,
"tile_count_expected": 16,
"sim_wall_clock_s": 0.179,
"engines": {
"pe_dma": {
"occupancy_ns": 858.0,
"wall_ns": 183.0,
"record_count": 18
},
"pe_fetch_store": {
"occupancy_ns": 4395.175999999999,
"wall_ns": 324.0,
"record_count": 32
},
"pe_gemm": {
"occupancy_ns": 308.224000000002,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 816.0,
"wall_ns": 141.0,
"record_count": 16
},
"FETCH": {
"occupancy_ns": 2431.4000000000005,
"wall_ns": 272.0,
"record_count": 16
},
"STORE": {
"occupancy_ns": 1963.775999999998,
"wall_ns": 275.616,
"record_count": 16
},
"GEMM": {
"occupancy_ns": 308.224000000002,
"wall_ns": 262.14400000000023,
"record_count": 16
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 511.01,
"composite_window_ns": 405.0
},
{
"M": 512,
"K": 512,
"N": 512,
"variant": "ref_ref",
"flops": 268435456,
"bytes_hbm": 1572864,
"arith_intensity": 170.66666666666666,
"tile_count_expected": 2048,
"sim_wall_clock_s": 1.241,
"engines": {
"pe_dma": {
"occupancy_ns": 104867178.97599977,
"wall_ns": 67597.00000000001,
"record_count": 4352
},
"pe_fetch_store": {
"occupancy_ns": 1206911.5840000017,
"wall_ns": 33800.00000000001,
"record_count": 2304
},
"pe_gemm": {
"occupancy_ns": 36417.40799998986,
"wall_ns": 33554.43199999787,
"record_count": 2048
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 100695823.35999978,
"wall_ns": 65549.00000000001,
"record_count": 4096
},
"DMA_WRITE": {
"occupancy_ns": 4171355.616000002,
"wall_ns": 34616.00000000001,
"record_count": 256
},
"FETCH": {
"occupancy_ns": 1076760.0000000005,
"wall_ns": 33776.00000000001,
"record_count": 2048
},
"STORE": {
"occupancy_ns": 130151.58400000134,
"wall_ns": 31914.784000000276,
"record_count": 256
},
"GEMM": {
"occupancy_ns": 36417.40799998986,
"wall_ns": 33554.43199999787,
"record_count": 2048
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 67597.00000000001,
"composite_window_ns": 67597.00000000001
},
{
"M": 512,
"K": 512,
"N": 512,
"variant": "load_ref",
"flops": 268435456,
"bytes_hbm": 1572864,
"arith_intensity": 170.66666666666666,
"tile_count_expected": 2048,
"sim_wall_clock_s": 0.742,
"engines": {
"pe_dma": {
"occupancy_ns": 37760375.97599977,
"wall_ns": 36890.0,
"record_count": 2305
},
"pe_fetch_store": {
"occupancy_ns": 1206911.5840000017,
"wall_ns": 33800.0,
"record_count": 2304
},
"pe_gemm": {
"occupancy_ns": 36417.40799998891,
"wall_ns": 33554.43199999761,
"record_count": 2048
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 33586959.359999776,
"wall_ns": 32781.0,
"record_count": 2048
},
"DMA_WRITE": {
"occupancy_ns": 4171355.616000001,
"wall_ns": 34616.0,
"record_count": 256
},
"FETCH": {
"occupancy_ns": 1076760.0000000002,
"wall_ns": 33776.0,
"record_count": 2048
},
"STORE": {
"occupancy_ns": 130151.58400000146,
"wall_ns": 31914.784000000003,
"record_count": 256
},
"GEMM": {
"occupancy_ns": 36417.40799998891,
"wall_ns": 33554.43199999761,
"record_count": 2048
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 36934.01,
"composite_window_ns": 34829.0
},
{
"M": 512,
"K": 512,
"N": 512,
"variant": "load_load",
"flops": 268435456,
"bytes_hbm": 1572864,
"arith_intensity": 170.66666666666666,
"tile_count_expected": 2048,
"sim_wall_clock_s": 0.406,
"engines": {
"pe_dma": {
"occupancy_ns": 142065.0,
"wall_ns": 6170.0,
"record_count": 258
},
"pe_fetch_store": {
"occupancy_ns": 37794382.84800001,
"wall_ns": 33796.0,
"record_count": 2304
},
"pe_gemm": {
"occupancy_ns": 838467.5839981049,
"wall_ns": 33554.43199999738,
"record_count": 2048
},
"pe_math": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"stages": {
"DMA_READ": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
},
"DMA_WRITE": {
"occupancy_ns": 135936.0,
"wall_ns": 2061.0,
"record_count": 256
},
"FETCH": {
"occupancy_ns": 33593103.359999776,
"wall_ns": 32784.0,
"record_count": 2048
},
"STORE": {
"occupancy_ns": 4201279.488000238,
"wall_ns": 33632.928,
"record_count": 256
},
"GEMM": {
"occupancy_ns": 838467.5839981049,
"wall_ns": 33554.43199999738,
"record_count": 2048
},
"MATH": {
"occupancy_ns": 0,
"wall_ns": 0.0,
"record_count": 0
}
},
"pe_window_ns": 38990.01,
"composite_window_ns": 34837.0
}
]
}