aboutsummaryrefslogtreecommitdiffstats
path: root/research
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-08 15:16:39 +0100
committereunhhu <[email protected]>2026-10-08 15:16:39 +0100
commit7770574b327238213c07fccc813b575277231c61 (patch)
tree9343c511d318cbe76dec626ea9baf52aab538411 /research
parent02925df6da43b6f737671c1957739102cdb49b71 (diff)
downloadpure-7770574b327238213c07fccc813b575277231c61.tar.gz
pure-7770574b327238213c07fccc813b575277231c61.zip
Research 134: batch plans' stage 1 measured (b10 = a6fabf0 against b9, interleaved): knapsack's per-batch cost 0.90 to 0.68 us and knapsack 11.48 to 10.34 ms, short of 025's bars (0.60 us, 10.3 ms): 025 counted the pass's per-instruction head as lookups; sum0 2,330 to 1,822 instructions a batch (bar 1,550); matmul 40.0 to 38.2 ms with the same instructions and BFS 24.04 to 24.31 with 0.2% fewer (placement); sum0's 8.69 to 6.13 ms mostly the compiler now vectorizing the reductions' first loop; the executor alone the same instructions; what is left a batch is the pass's Val handling (stage 2); 041 runs.sh pairs, pairs and counts data
Diffstat (limited to 'research')
-rw-r--r--research/experiments/041-batches/2026-10-08-batch-costs.jsonl6
-rw-r--r--research/experiments/041-batches/2026-10-08-counts.jsonl10
-rw-r--r--research/experiments/041-batches/2026-10-08-pairs.jsonl120
-rwxr-xr-xresearch/experiments/041-batches/runs.sh17
4 files changed, 152 insertions, 1 deletions
diff --git a/research/experiments/041-batches/2026-10-08-batch-costs.jsonl b/research/experiments/041-batches/2026-10-08-batch-costs.jsonl
index b3eba50..49332e9 100644
--- a/research/experiments/041-batches/2026-10-08-batch-costs.jsonl
+++ b/research/experiments/041-batches/2026-10-08-batch-costs.jsonl
@@ -83,3 +83,9 @@
{"work": "knapsack", "line": "module-batch.c:1715", "ms_1024": 0.042, "ms_256": 0.103}
{"note":"time.c sum0 n=200000 (4M rounds), 21 rounds median, b9 BATCH 1024 then 256","module":"sum0.pmod","n":200000,"ms":8.633,"work":44000019,"out":4000000}
{"note":"time.c sum0 n=200000 (4M rounds), 21 rounds median, b9 BATCH 1024 then 256","module":"sum0.pmod","n":200000,"ms":12.544,"work":44000019,"out":4000000}
+{"note":"icount over time.c's 3 rounds (n 51200: 3,000 and 12,000 batches), b9 = 735ba81 and b10 = 140cc46 (design 025 stage 1), BATCH 1024 and 256","version":"b9","module":"sum0","instructions":[47885467,68855349],"cycles":[16221217,23496974]}
+{"version":"b9","module":"ops0","instructions":[66412005,85341885],"cycles":[30351488,36805399]}
+{"version":"b10","module":"sum0","instructions":[34047758,50448573],"cycles":[11650551,17023859]}
+{"version":"b10","module":"ops0","instructions":[52772240,67691004],"cycles":[25970653,30661478]}
+{"note":"time.c sum0 n=200000, 21 rounds median, twice each","version":"b9","ms":[8.690,8.689],"ms_256":[12.545,12.552]}
+{"version":"b10","ms":[6.133,6.136],"ms_256":[9.069,9.070]}
diff --git a/research/experiments/041-batches/2026-10-08-counts.jsonl b/research/experiments/041-batches/2026-10-08-counts.jsonl
index abd3cdc..546030b 100644
--- a/research/experiments/041-batches/2026-10-08-counts.jsonl
+++ b/research/experiments/041-batches/2026-10-08-counts.jsonl
@@ -26,3 +26,13 @@
{"version":"b9","way":"rounds","work":"bfs","instructions":4711633461,"cycles":2071776932}
{"version":"b9","way":"batches","work":"words","instructions":3977119553,"cycles":1807496057}
{"version":"b9","way":"rounds","work":"words","instructions":3934435031,"cycles":1790741535}
+{"version":"b10","way":"batches","work":"bfs","instructions":3366842980,"cycles":1652810363}
+{"version":"b10","way":"rounds","work":"bfs","instructions":4711632737,"cycles":2152941471}
+{"version":"b10","way":"batches","work":"knapsack","instructions":377446216,"cycles":119812731}
+{"version":"b10","way":"rounds","work":"knapsack","instructions":21688103096,"cycles":7553046280}
+{"version":"b10","way":"batches","work":"matmul","instructions":967871186,"cycles":329990340}
+{"version":"b10","way":"rounds","work":"matmul","instructions":21436715982,"cycles":6620761799}
+{"version":"b10","way":"batches","work":"roots","instructions":165861326,"cycles":113397325}
+{"version":"b10","way":"rounds","work":"roots","instructions":2755945365,"cycles":989112526}
+{"version":"b10","way":"batches","work":"join","instructions":1868533943,"cycles":1049050190}
+{"version":"b10","way":"rounds","work":"join","instructions":7669661641,"cycles":3314577656}
diff --git a/research/experiments/041-batches/2026-10-08-pairs.jsonl b/research/experiments/041-batches/2026-10-08-pairs.jsonl
new file mode 100644
index 0000000..1d16abf
--- /dev/null
+++ b/research/experiments/041-batches/2026-10-08-pairs.jsonl
@@ -0,0 +1,120 @@
+{"version":"b9","way":"batches","turn":1,"work":"roots","pure_median_ms":8.980,"c_median_ms":6.869,"ratio":1.307,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"knapsack","pure_median_ms":11.394,"c_median_ms":6.228,"ratio":1.829,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"sort","pure_median_ms":57.568,"c_median_ms":26.864,"ratio":2.143,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"join","pure_median_ms":116.419,"c_median_ms":30.414,"ratio":3.828,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"words","pure_median_ms":214.520,"c_median_ms":38.595,"ratio":5.558,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"matmul","pure_median_ms":40.297,"c_median_ms":7.797,"ratio":5.168,"agree":true}
+{"version":"b9","way":"batches","turn":1,"work":"bfs","pure_median_ms":24.040,"c_median_ms":10.044,"ratio":2.394,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"roots","pure_median_ms":8.807,"c_median_ms":6.864,"ratio":1.283,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"knapsack","pure_median_ms":10.333,"c_median_ms":6.227,"ratio":1.659,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"sort","pure_median_ms":57.052,"c_median_ms":26.991,"ratio":2.114,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"join","pure_median_ms":117.635,"c_median_ms":31.922,"ratio":3.685,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"words","pure_median_ms":219.952,"c_median_ms":38.134,"ratio":5.768,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"matmul","pure_median_ms":38.223,"c_median_ms":7.648,"ratio":4.998,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"bfs","pure_median_ms":24.013,"c_median_ms":10.000,"ratio":2.401,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"roots","pure_median_ms":8.968,"c_median_ms":6.864,"ratio":1.306,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"knapsack","pure_median_ms":11.492,"c_median_ms":6.241,"ratio":1.841,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"sort","pure_median_ms":57.300,"c_median_ms":26.909,"ratio":2.129,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"join","pure_median_ms":119.748,"c_median_ms":31.512,"ratio":3.800,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"words","pure_median_ms":217.985,"c_median_ms":38.971,"ratio":5.594,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"matmul","pure_median_ms":39.961,"c_median_ms":7.564,"ratio":5.283,"agree":true}
+{"version":"b9","way":"batches","turn":2,"work":"bfs","pure_median_ms":24.185,"c_median_ms":9.994,"ratio":2.420,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"roots","pure_median_ms":8.806,"c_median_ms":6.860,"ratio":1.284,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"knapsack","pure_median_ms":10.353,"c_median_ms":6.234,"ratio":1.661,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"sort","pure_median_ms":57.228,"c_median_ms":26.991,"ratio":2.120,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"join","pure_median_ms":118.019,"c_median_ms":30.951,"ratio":3.813,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"words","pure_median_ms":218.773,"c_median_ms":38.899,"ratio":5.624,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"matmul","pure_median_ms":38.100,"c_median_ms":7.532,"ratio":5.059,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"bfs","pure_median_ms":25.120,"c_median_ms":9.977,"ratio":2.518,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"roots","pure_median_ms":8.974,"c_median_ms":6.865,"ratio":1.307,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"knapsack","pure_median_ms":11.506,"c_median_ms":6.232,"ratio":1.846,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"sort","pure_median_ms":57.332,"c_median_ms":26.889,"ratio":2.132,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"join","pure_median_ms":117.531,"c_median_ms":28.974,"ratio":4.056,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"words","pure_median_ms":215.820,"c_median_ms":38.800,"ratio":5.562,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"matmul","pure_median_ms":40.006,"c_median_ms":7.569,"ratio":5.286,"agree":true}
+{"version":"b9","way":"batches","turn":3,"work":"bfs","pure_median_ms":23.877,"c_median_ms":9.995,"ratio":2.389,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"roots","pure_median_ms":8.814,"c_median_ms":6.866,"ratio":1.284,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"knapsack","pure_median_ms":10.335,"c_median_ms":6.298,"ratio":1.641,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"sort","pure_median_ms":56.946,"c_median_ms":27.016,"ratio":2.108,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"join","pure_median_ms":116.656,"c_median_ms":30.993,"ratio":3.764,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"words","pure_median_ms":217.339,"c_median_ms":38.694,"ratio":5.617,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"matmul","pure_median_ms":38.145,"c_median_ms":7.531,"ratio":5.065,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"bfs","pure_median_ms":24.079,"c_median_ms":10.207,"ratio":2.359,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"roots","pure_median_ms":8.966,"c_median_ms":6.866,"ratio":1.306,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"knapsack","pure_median_ms":11.481,"c_median_ms":6.282,"ratio":1.828,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"sort","pure_median_ms":57.021,"c_median_ms":26.909,"ratio":2.119,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"join","pure_median_ms":116.953,"c_median_ms":30.935,"ratio":3.781,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"words","pure_median_ms":214.897,"c_median_ms":38.408,"ratio":5.595,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"matmul","pure_median_ms":39.965,"c_median_ms":7.549,"ratio":5.294,"agree":true}
+{"version":"b9","way":"batches","turn":4,"work":"bfs","pure_median_ms":23.998,"c_median_ms":10.048,"ratio":2.388,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"roots","pure_median_ms":8.817,"c_median_ms":6.863,"ratio":1.285,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"knapsack","pure_median_ms":10.351,"c_median_ms":6.228,"ratio":1.662,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"sort","pure_median_ms":56.635,"c_median_ms":26.988,"ratio":2.098,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"join","pure_median_ms":116.859,"c_median_ms":32.928,"ratio":3.549,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"words","pure_median_ms":218.361,"c_median_ms":38.490,"ratio":5.673,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"matmul","pure_median_ms":38.201,"c_median_ms":7.556,"ratio":5.056,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"bfs","pure_median_ms":24.158,"c_median_ms":10.084,"ratio":2.396,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"roots","pure_median_ms":8.966,"c_median_ms":6.865,"ratio":1.306,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"knapsack","pure_median_ms":11.425,"c_median_ms":6.233,"ratio":1.833,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"sort","pure_median_ms":56.915,"c_median_ms":26.897,"ratio":2.116,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"join","pure_median_ms":116.403,"c_median_ms":32.129,"ratio":3.623,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"words","pure_median_ms":216.542,"c_median_ms":38.769,"ratio":5.585,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"matmul","pure_median_ms":40.014,"c_median_ms":7.525,"ratio":5.318,"agree":true}
+{"version":"b9","way":"batches","turn":5,"work":"bfs","pure_median_ms":24.262,"c_median_ms":9.986,"ratio":2.430,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"roots","pure_median_ms":8.805,"c_median_ms":6.862,"ratio":1.283,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"knapsack","pure_median_ms":10.360,"c_median_ms":6.237,"ratio":1.661,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"sort","pure_median_ms":56.372,"c_median_ms":26.977,"ratio":2.090,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"join","pure_median_ms":119.324,"c_median_ms":31.176,"ratio":3.827,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"words","pure_median_ms":220.252,"c_median_ms":38.583,"ratio":5.709,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"matmul","pure_median_ms":38.180,"c_median_ms":7.518,"ratio":5.078,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"bfs","pure_median_ms":24.372,"c_median_ms":9.977,"ratio":2.443,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"roots","pure_median_ms":8.817,"c_median_ms":6.862,"ratio":1.285,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"knapsack","pure_median_ms":10.376,"c_median_ms":6.229,"ratio":1.666,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"join","pure_median_ms":116.358,"c_median_ms":31.481,"ratio":3.696,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"matmul","pure_median_ms":38.211,"c_median_ms":7.512,"ratio":5.087,"agree":true}
+{"version":"b10","way":"batches","turn":1,"work":"bfs","pure_median_ms":24.461,"c_median_ms":9.892,"ratio":2.473,"agree":true}
+{"version":"b10-256","way":"batches","turn":1,"work":"roots","pure_median_ms":10.451,"c_median_ms":6.864,"ratio":1.523,"agree":true}
+{"version":"b10-256","way":"batches","turn":1,"work":"knapsack","pure_median_ms":20.236,"c_median_ms":6.235,"ratio":3.246,"agree":true}
+{"version":"b10-256","way":"batches","turn":1,"work":"join","pure_median_ms":118.859,"c_median_ms":34.245,"ratio":3.471,"agree":true}
+{"version":"b10-256","way":"batches","turn":1,"work":"matmul","pure_median_ms":38.290,"c_median_ms":7.574,"ratio":5.055,"agree":true}
+{"version":"b10-256","way":"batches","turn":1,"work":"bfs","pure_median_ms":25.834,"c_median_ms":9.914,"ratio":2.606,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"roots","pure_median_ms":8.819,"c_median_ms":6.872,"ratio":1.283,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"knapsack","pure_median_ms":10.330,"c_median_ms":6.225,"ratio":1.659,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"join","pure_median_ms":118.732,"c_median_ms":31.807,"ratio":3.733,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"matmul","pure_median_ms":38.275,"c_median_ms":7.565,"ratio":5.059,"agree":true}
+{"version":"b10","way":"batches","turn":2,"work":"bfs","pure_median_ms":24.444,"c_median_ms":9.979,"ratio":2.450,"agree":true}
+{"version":"b10-256","way":"batches","turn":2,"work":"roots","pure_median_ms":10.449,"c_median_ms":6.863,"ratio":1.523,"agree":true}
+{"version":"b10-256","way":"batches","turn":2,"work":"knapsack","pure_median_ms":20.235,"c_median_ms":6.229,"ratio":3.248,"agree":true}
+{"version":"b10-256","way":"batches","turn":2,"work":"join","pure_median_ms":119.501,"c_median_ms":32.403,"ratio":3.688,"agree":true}
+{"version":"b10-256","way":"batches","turn":2,"work":"matmul","pure_median_ms":38.186,"c_median_ms":7.613,"ratio":5.016,"agree":true}
+{"version":"b10-256","way":"batches","turn":2,"work":"bfs","pure_median_ms":25.919,"c_median_ms":10.025,"ratio":2.586,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"roots","pure_median_ms":9.207,"c_median_ms":6.954,"ratio":1.324,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"knapsack","pure_median_ms":10.327,"c_median_ms":6.236,"ratio":1.656,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"join","pure_median_ms":115.733,"c_median_ms":30.953,"ratio":3.739,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"matmul","pure_median_ms":38.172,"c_median_ms":7.569,"ratio":5.043,"agree":true}
+{"version":"b10","way":"batches","turn":3,"work":"bfs","pure_median_ms":24.941,"c_median_ms":9.942,"ratio":2.509,"agree":true}
+{"version":"b10-256","way":"batches","turn":3,"work":"roots","pure_median_ms":10.446,"c_median_ms":6.861,"ratio":1.522,"agree":true}
+{"version":"b10-256","way":"batches","turn":3,"work":"knapsack","pure_median_ms":20.243,"c_median_ms":6.231,"ratio":3.249,"agree":true}
+{"version":"b10-256","way":"batches","turn":3,"work":"join","pure_median_ms":118.431,"c_median_ms":30.618,"ratio":3.868,"agree":true}
+{"version":"b10-256","way":"batches","turn":3,"work":"matmul","pure_median_ms":38.266,"c_median_ms":7.710,"ratio":4.963,"agree":true}
+{"version":"b10-256","way":"batches","turn":3,"work":"bfs","pure_median_ms":25.650,"c_median_ms":9.951,"ratio":2.578,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"roots","pure_median_ms":8.815,"c_median_ms":6.860,"ratio":1.285,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"knapsack","pure_median_ms":10.336,"c_median_ms":6.226,"ratio":1.660,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"join","pure_median_ms":116.960,"c_median_ms":30.961,"ratio":3.778,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"matmul","pure_median_ms":38.255,"c_median_ms":7.588,"ratio":5.042,"agree":true}
+{"version":"b10","way":"batches","turn":4,"work":"bfs","pure_median_ms":24.069,"c_median_ms":10.014,"ratio":2.404,"agree":true}
+{"version":"b10-256","way":"batches","turn":4,"work":"roots","pure_median_ms":10.456,"c_median_ms":6.865,"ratio":1.523,"agree":true}
+{"version":"b10-256","way":"batches","turn":4,"work":"knapsack","pure_median_ms":20.335,"c_median_ms":6.230,"ratio":3.264,"agree":true}
+{"version":"b10-256","way":"batches","turn":4,"work":"join","pure_median_ms":118.782,"c_median_ms":32.616,"ratio":3.642,"agree":true}
+{"version":"b10-256","way":"batches","turn":4,"work":"matmul","pure_median_ms":38.260,"c_median_ms":7.581,"ratio":5.047,"agree":true}
+{"version":"b10-256","way":"batches","turn":4,"work":"bfs","pure_median_ms":25.665,"c_median_ms":9.941,"ratio":2.582,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"roots","pure_median_ms":8.803,"c_median_ms":6.864,"ratio":1.283,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"knapsack","pure_median_ms":10.344,"c_median_ms":6.238,"ratio":1.658,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"join","pure_median_ms":117.119,"c_median_ms":34.635,"ratio":3.382,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"matmul","pure_median_ms":38.172,"c_median_ms":7.580,"ratio":5.036,"agree":true}
+{"version":"b10","way":"batches","turn":5,"work":"bfs","pure_median_ms":24.251,"c_median_ms":9.960,"ratio":2.435,"agree":true}
+{"version":"b10-256","way":"batches","turn":5,"work":"roots","pure_median_ms":10.443,"c_median_ms":6.873,"ratio":1.519,"agree":true}
+{"version":"b10-256","way":"batches","turn":5,"work":"knapsack","pure_median_ms":20.293,"c_median_ms":6.237,"ratio":3.254,"agree":true}
+{"version":"b10-256","way":"batches","turn":5,"work":"join","pure_median_ms":118.650,"c_median_ms":31.727,"ratio":3.740,"agree":true}
+{"version":"b10-256","way":"batches","turn":5,"work":"matmul","pure_median_ms":38.295,"c_median_ms":7.578,"ratio":5.053,"agree":true}
+{"version":"b10-256","way":"batches","turn":5,"work":"bfs","pure_median_ms":25.631,"c_median_ms":10.087,"ratio":2.541,"agree":true}
diff --git a/research/experiments/041-batches/runs.sh b/research/experiments/041-batches/runs.sh
index 876f249..4da74fb 100755
--- a/research/experiments/041-batches/runs.sh
+++ b/research/experiments/041-batches/runs.sh
@@ -10,6 +10,11 @@
# runs.sh counts NAME [WORK ...] user-mode instructions and cycles
# of suite-run's 3 rounds, each of
# the two executor ways (icount.c)
+# runs.sh pairs A B ROUNDS TIMES [WORK ...] the batches way of A then B,
+# TIMES turns (interleaved: the
+# medians of A's and B's turns)
+# (A build of another lane count: CPPFLAGS=-DPURE_BATCH_LANES=256 with
+# 040's runs.sh build.)
set -e
here=research/experiments/041-batches
builds=$HOME/.cache/pure-040
@@ -41,7 +46,17 @@ counts)
| sed "s/^{/{\"version\":\"$name\",\"way\":\"$way\",\"work\":\"$work\",/" >> "$here/$day-counts.jsonl"
done
done ;;
-*) echo "runs.sh suite NAME ROUNDS [WORK ...] | counts NAME [WORK ...]" >&2
+pairs)
+ other=$1 rounds=$2 times=$3
+ shift 3
+ for turn in $(seq "$times"); do
+ for version in "$name" "$other"; do
+ quiet
+ PURE_JIT=0 python3 research/guard.py --most 3072 -- "$builds/$version/suite-run" "$builds/$version" "$rounds" "$@" \
+ | grep median | sed "s/^{/{\"version\":\"$version\",\"way\":\"batches\",\"turn\":$turn,/" >> "$here/$day-pairs.jsonl"
+ done
+ done ;;
+*) echo "runs.sh suite NAME ROUNDS [WORK ...] | counts NAME [WORK ...] | pairs A B ROUNDS TIMES [WORK ...]" >&2
exit 2 ;;
esac
# 2026-10-08-lanes.jsonl (research 132): b9's code with BATCH 1024, 512 and