Stadium relaunch: full 127-page deep-dive report -- per-cell, per-ISA,

every factor interaction, and a raw-data appendix

Expanded the campaign-mechanism validation report from a condensed
6-page summary into the full depth Captain Bob asked for: analyze all 9
cells as a conglomerate Latin square, then dive into each cell's own
data, then cover every within-ISA and cross-factor interaction
explicitly rather than averaging it away.

Report structure (127 pages, compiled clean, no undefined references):
- Front matter: context, methodology, the SWAP-MTX bug narrative
  (console-interleaving fix + the Fisher-Yates correctness bug and its
  fix, both already committed separately)
- Layer 1: aggregate 3x3 Latin square (heatmap, invariant-metrics table)
- Per-Cell Deep Dive (9 sections): cfg-level distribution, summary
  table, and a rep-order execution-trajectory chart per cell -- the
  trajectory charts are what actually visualize the order-dependence
  finding rather than just stating it
- Per-ISA Deep Dive (3 sections): within-architecture seed comparison
  (violin plots, Kruskal-Wallis, per-factor main effects)
- Factor Interactions (6 sections, every pairwise combination of the 4
  L8 binary factors): both infer_dec_q and early_exit interaction plots
  faceted by architecture, plus the three-way
  factor x factor x architecture significance test
- Per-Factor Response (4 sections): linear response by architecture,
  with an explicit note that a true quadratic term isn't identifiable
  from this 2-level factorial design
- Appendix: full run_id-ordered raw data, all 4,320 rows across all 9
  cells, as the primary-source backing for every statistic above

Generated programmatically (analyse_stadium_relaunch_fixed.R for the
aggregate layer, generate_stadium_deepdive.R for the per-cell/per-ISA/
interaction/appendix layers) rather than hand-authored, since content at
this scale needs to be data-driven to stay honest.

Also includes analyse_stadium_relaunch.R, the earlier script built
against the pre-fix (buggy-shuffle) dataset -- superseded but kept for
the record, matching how the underlying data commits were handled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-20 13:10:01 -04:00
co-authored by Claude Sonnet 5
parent dbe4b671a1
commit cf5b08fb65
140 changed files with 18891 additions and 0 deletions
@@ -0,0 +1,14 @@
Analysis of Variance Table
Response: infer_dec_q
Df Sum Sq Mean Sq F value Pr(>F)
ent_f 1 1829 1829.10 1.3689 0.2421
cv_f 1 5 5.42 0.0041 0.9492
tmp_f 1 260 259.60 0.1943 0.6594
stb_f 1 605 605.25 0.4530 0.5010
arch 2 0 0.00 0.0000 1.0000
ent_f:arch 2 0 0.00 0.0000 1.0000
cv_f:arch 2 0 0.00 0.0000 1.0000
tmp_f:arch 2 0 0.00 0.0000 1.0000
stb_f:arch 2 0 0.00 0.0000 1.0000
Residuals 4305 5752465 1336.23
@@ -0,0 +1,10 @@
"arch","seed","n_rows","n_cfg","n_run_id","mean_infer_dec_q","sd_infer_dec_q","early_exit_rate","l8_mode_const","win_div_const","fit_q_const"
"amd64","12345",480,16,480,56.8541666666667,29.2966182458014,0.9875,TRUE,TRUE,TRUE
"amd64","67890",480,16,480,28.0854166666667,38.3427977824838,0.989583333333333,TRUE,TRUE,TRUE
"amd64","13579",480,16,480,44.5,35.4835961394778,0.991666666666667,TRUE,TRUE,TRUE
"aarch64","12345",480,16,480,56.8541666666667,29.2966182458014,0.9875,TRUE,TRUE,TRUE
"aarch64","67890",480,16,480,28.0854166666667,38.3427977824838,0.989583333333333,TRUE,TRUE,TRUE
"aarch64","13579",480,16,480,44.5,35.4835961394778,0.991666666666667,TRUE,TRUE,TRUE
"riscv64","12345",480,16,480,56.8541666666667,29.2966182458014,0.9875,TRUE,TRUE,TRUE
"riscv64","67890",480,16,480,28.0854166666667,38.3427977824838,0.989583333333333,TRUE,TRUE,TRUE
"riscv64","13579",480,16,480,44.5,35.4835961394778,0.991666666666667,TRUE,TRUE,TRUE
1 arch seed n_rows n_cfg n_run_id mean_infer_dec_q sd_infer_dec_q early_exit_rate l8_mode_const win_div_const fit_q_const
2 amd64 12345 480 16 480 56.8541666666667 29.2966182458014 0.9875 TRUE TRUE TRUE
3 amd64 67890 480 16 480 28.0854166666667 38.3427977824838 0.989583333333333 TRUE TRUE TRUE
4 amd64 13579 480 16 480 44.5 35.4835961394778 0.991666666666667 TRUE TRUE TRUE
5 aarch64 12345 480 16 480 56.8541666666667 29.2966182458014 0.9875 TRUE TRUE TRUE
6 aarch64 67890 480 16 480 28.0854166666667 38.3427977824838 0.989583333333333 TRUE TRUE TRUE
7 aarch64 13579 480 16 480 44.5 35.4835961394778 0.991666666666667 TRUE TRUE TRUE
8 riscv64 12345 480 16 480 56.8541666666667 29.2966182458014 0.9875 TRUE TRUE TRUE
9 riscv64 67890 480 16 480 28.0854166666667 38.3427977824838 0.989583333333333 TRUE TRUE TRUE
10 riscv64 13579 480 16 480 44.5 35.4835961394778 0.991666666666667 TRUE TRUE TRUE
@@ -0,0 +1,4 @@
"arch","H","df","p"
"amd64",50.7569110985713,2,9.51210850642286e-12
"aarch64",50.7569110985713,2,9.51210850642286e-12
"riscv64",50.7569110985713,2,9.51210850642286e-12
1 arch H df p
2 amd64 50.7569110985713 2 9.51210850642286e-12
3 aarch64 50.7569110985713 2 9.51210850642286e-12
4 riscv64 50.7569110985713 2 9.51210850642286e-12
@@ -0,0 +1,33 @@
Call:
glm(formula = early_exit ~ (ent_f + cv_f + tmp_f + stb_f) * arch,
family = binomial(), data = all_data)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 4.118e+00 5.411e-01 7.612 2.71e-14 ***
ent_flo 4.105e-01 5.302e-01 0.774 0.439
cv_flo 7.011e-01 5.505e-01 1.273 0.203
tmp_flo 4.105e-01 5.302e-01 0.774 0.439
stb_flo -4.105e-01 5.302e-01 -0.774 0.439
archaarch64 -7.403e-15 7.652e-01 0.000 1.000
archriscv64 -7.626e-15 7.652e-01 0.000 1.000
ent_flo:archaarch64 1.672e-14 7.498e-01 0.000 1.000
ent_flo:archriscv64 1.472e-14 7.498e-01 0.000 1.000
cv_flo:archaarch64 6.210e-15 7.786e-01 0.000 1.000
cv_flo:archriscv64 7.805e-15 7.786e-01 0.000 1.000
tmp_flo:archaarch64 3.743e-15 7.498e-01 0.000 1.000
tmp_flo:archriscv64 5.025e-15 7.498e-01 0.000 1.000
stb_flo:archaarch64 -1.461e-15 7.498e-01 0.000 1.000
stb_flo:archriscv64 1.453e-16 7.498e-01 0.000 1.000
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 500.32 on 4319 degrees of freedom
Residual deviance: 489.67 on 4305 degrees of freedom
AIC: 519.67
Number of Fisher Scoring iterations: 7