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,75 @@
<?xml version='1.0' encoding='UTF-8' ?>
<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='504.00pt' height='360.00pt' viewBox='0 0 504.00 360.00'>
<g class='svglite'>
<defs>
<style type='text/css'><![CDATA[
.svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
fill: none;
stroke: #000000;
stroke-linecap: round;
stroke-linejoin: round;
stroke-miterlimit: 10.00;
}
.svglite text {
white-space: pre;
}
.svglite g.glyphgroup path {
fill: inherit;
stroke: none;
}
]]></style>
</defs>
<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
<defs>
<clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHwzNjAuMDA='>
<rect x='0.00' y='0.00' width='504.00' height='360.00' />
</clipPath>
</defs>
<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHwzNjAuMDA=)'>
<rect x='0.00' y='0.00' width='504.00' height='360.00' style='stroke-width: 0.97; stroke: none; fill: #FFFFFF;' />
</g>
<defs>
<clipPath id='cpNDAuOTR8NDk5LjAyfDE0LjgzfDMwMC42Ng=='>
<rect x='40.94' y='14.83' width='458.08' height='285.83' />
</clipPath>
</defs>
<g clip-path='url(#cpNDAuOTR8NDk5LjAyfDE0LjgzfDMwMC42Ng==)'>
<polyline points='40.94,255.06 499.02,255.06 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='40.94,181.69 499.02,181.69 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='40.94,108.32 499.02,108.32 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='40.94,34.96 499.02,34.96 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='61.76,300.66 61.76,14.83 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<polyline points='478.20,300.66 478.20,14.83 ' style='stroke-width: 0.97; stroke: #E5E5E5; stroke-linecap: butt;' />
<circle cx='61.76' cy='27.82' r='3.52' style='stroke-width: 0.64; stroke: #E07B39; fill: #E07B39;' />
<circle cx='478.20' cy='287.67' r='3.52' style='stroke-width: 0.64; stroke: #E07B39; fill: #E07B39;' />
<circle cx='61.76' cy='27.82' r='3.52' style='stroke-width: 0.64; stroke: #4A90D9; fill: #4A90D9;' />
<circle cx='478.20' cy='287.67' r='3.52' style='stroke-width: 0.64; stroke: #4A90D9; fill: #4A90D9;' />
<circle cx='61.76' cy='27.82' r='3.52' style='stroke-width: 0.64; stroke: #50C878; fill: #50C878;' />
<circle cx='478.20' cy='287.67' r='3.52' style='stroke-width: 0.64; stroke: #50C878; fill: #50C878;' />
<polyline points='61.76,27.82 478.20,287.67 ' style='stroke-width: 1.71; stroke: #E07B39; stroke-linecap: butt;' />
<polyline points='61.76,27.82 478.20,287.67 ' style='stroke-width: 1.71; stroke: #4A90D9; stroke-linecap: butt;' />
<polyline points='61.76,27.82 478.20,287.67 ' style='stroke-width: 1.71; stroke: #50C878; stroke-linecap: butt;' />
</g>
<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHwzNjAuMDA=)'>
<text x='36.46' y='257.81' text-anchor='end' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='20.03px' lengthAdjust='spacingAndGlyphs'>43.12</text>
<text x='36.46' y='184.44' text-anchor='end' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='20.03px' lengthAdjust='spacingAndGlyphs'>43.14</text>
<text x='36.46' y='111.07' text-anchor='end' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='20.03px' lengthAdjust='spacingAndGlyphs'>43.16</text>
<text x='36.46' y='37.71' text-anchor='end' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='20.03px' lengthAdjust='spacingAndGlyphs'>43.18</text>
<text x='61.76' y='310.64' text-anchor='middle' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='6.23px' lengthAdjust='spacingAndGlyphs'>lo</text>
<text x='478.20' y='310.64' text-anchor='middle' style='font-size: 8.00px;fill: #4D4D4D; font-family: "Liberation Sans";' textLength='6.23px' lengthAdjust='spacingAndGlyphs'>hi</text>
<text x='269.98' y='321.68' text-anchor='middle' style='font-size: 10.00px; font-family: "Liberation Sans";' textLength='96.55px' lengthAdjust='spacingAndGlyphs'>coefficient of variation</text>
<text transform='translate(11.86,157.75) rotate(-90)' text-anchor='middle' style='font-size: 10.00px; font-family: "Liberation Sans";' textLength='80.06px' lengthAdjust='spacingAndGlyphs'>mean infer_dec_q</text>
<text x='190.58' y='347.81' style='font-size: 10.00px; font-family: "Liberation Sans";' textLength='16.12px' lengthAdjust='spacingAndGlyphs'>ISA</text>
<circle cx='217.35' cy='344.37' r='3.52' style='stroke-width: 0.64; stroke: #E07B39; fill: #E07B39;' />
<line x1='212.82' y1='344.37' x2='221.89' y2='344.37' style='stroke-width: 1.71; stroke: #E07B39; stroke-linecap: butt;' />
<circle cx='263.14' cy='344.37' r='3.52' style='stroke-width: 0.64; stroke: #4A90D9; fill: #4A90D9;' />
<line x1='258.60' y1='344.37' x2='267.67' y2='344.37' style='stroke-width: 1.71; stroke: #4A90D9; stroke-linecap: butt;' />
<circle cx='313.38' cy='344.37' r='3.52' style='stroke-width: 0.64; stroke: #50C878; fill: #50C878;' />
<line x1='308.84' y1='344.37' x2='317.91' y2='344.37' style='stroke-width: 1.71; stroke: #50C878; stroke-linecap: butt;' />
<text x='228.00' y='347.12' style='font-size: 8.00px; font-family: "Liberation Sans";' textLength='24.48px' lengthAdjust='spacingAndGlyphs'>amd64</text>
<text x='273.79' y='347.12' style='font-size: 8.00px; font-family: "Liberation Sans";' textLength='28.94px' lengthAdjust='spacingAndGlyphs'>aarch64</text>
<text x='324.03' y='347.12' style='font-size: 8.00px; font-family: "Liberation Sans";' textLength='25.36px' lengthAdjust='spacingAndGlyphs'>riscv64</text>
<text x='269.98' y='13.69' text-anchor='middle' style='font-size: 11.00px; font-weight: bold; font-family: "Liberation Sans";' textLength='316.16px' lengthAdjust='spacingAndGlyphs'>infer_dec_q response to coefficient of variation (normalized)</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB