On this page
Dates
Created
Updated
Record idEX-20260823-fast-m6-reveal-sampling-port-be23e203

No explanation has been written for this record yet.

Technical recordThe registered protocolEX-20260823-fast-m6-reveal-sampling-port-be23e203
Hypothesis
Engineering port, no new science: implement factored reveal sampling (M>1, matching the native FactoredSearch semantics used by the C0 arms: N disc strata x M reveal samples, work accounting, cache behaviour) inside the fast memo engine family (approaches/lifetime-objective fast-search/fast-engine/fast-leaf, proven bit-identical to the reference at M=1 in finding-13/audit-06 and re-verified at d3s7 by RS-20260823T225753Z-0fbd48c3's re-gates: 240 decisions, 0 mismatches). The port is accepted only if it is trace-equivalent to the native factored search: identical chosen columns, identical work counts, identical completed depths and cache statistics semantics, across the full equivalence gate below. Expected speedup ~10-40x per move at d3 N7M6 (native measured 1.754-6.83 CPU-s/move; fast M=1 d3s7 measured 54.6 ms/move in continuation duty, ~4 ms/move in play duty); the realised figure is measured and reported with the machine profile. Per docs/benchmarks.md, any deviation in actions, random events, or work semantics reclassifies the port as a new algorithmic candidate and it is then not accepted under this record.
Arms
ArmNameEntry pointManifest
Candidatefast-engine factored reveal samplingnone recorded–
Comparatornative FactoredSearch (C0 configuration)approaches/lifetime-objective/reveal-sampling/search.cpp–
Classification
engineering
Information boundary
seed-free
Benchmark tier
CHECK
Lifecycle
completed
Primary metric
trace equivalence vs the native factored search: chosen column, work, completed depth on every probe decision
Secondary metrics
  • decisions compared per configuration grid point
  • realised CPU-s/move fast vs native at d3 N7M6 (play duty and continuation duty)
  • thread determinism and mirror invariance
  • memo on/off bit-identity
  • configuration grid covered: depth 3 and 4; N in 5,7; M in 1,2,6
Statistical unit
not-applicable
Uncertainty method
exact comparison; zero mismatches required
Data role
no-gameplay
Seed leases
none recorded
Whole-origin split
no
Reuse disclosure
Zero leased seeds. Equivalence gates run on already-open probe/smoke seeds (0xa5278000-0xa52784ff, 0xa51d8000-0xa51d800f) and on the retained C0 per-game artifacts (already-read data); the timing figure uses the same probes. No cohort's data status changes.
Pass criteria
  1. Equivalence: >= 500 live decisions per grid point over the configuration grid (d3/d4 x N5/N7 x M1/M2/M6) on probe seeds and on >= 3 full replayed C0 games, with 0 column mismatches, 0 work-count mismatches and 0 completed-depth mismatches vs the native factored search.
  2. M=1 regression: the port at M=1 remains bit-identical to the existing fast search (no regression of finding-13/audit-06 guarantees).
  3. Determinism: byte-identical outputs across two runs and across thread counts; mirror invariance of decisions.
  4. npm test and make test pass; default random-reveal behaviour byte-identical (latent-mode contract untouched).
On pass
Record valid + pass (engineering, CHECK tier) with the measured speedup and machine profile; register the P-SOL-3 successor (rung-2 upgrade to fast-M6 with R2=48 and the corpus re-baselined to fast-M6) as a new protocol version before any leased seed is opened.
On fail
Record valid + fail as an engineering result; the native search remains the only M>1 implementation; P-SOL stays blocked and the scale-out route becomes the only reopening path for cheap-continuation labels.
Gate fixed before controlled data
yes
Resources
Wall seconds14400
CPU threads26
Max host bytes17179869184
Max GPU bytes–
GPU devices–
Stop conditions
  1. Stop on any equivalence mismatch that survives a bug-fix iteration on the SAME probe set; probe seeds are diagnostic and reusable for engineering equivalence, disclosed.
  2. Stop at 4 h wall for the gate runs; implementation time is not capped by this record.
  3. No leased seed may be opened under this record.
Expected artifacts
  • runs/RUN-20260823T215500Z-sol/fastm6/gates.log
  • runs/RUN-20260823T215500Z-sol/fastm6/equivalence.json (per grid point: decisions, mismatches, timings)
  • runs/RUN-20260823T215500Z-sol/fastm6/timing.json with machine profile reference
Amendments
none recorded
Technical recordResults recorded against this protocol1 record
valid runoutcome: passsupported-as-testedtier: mechanics-onlyRS-20260824T010000Z-8f3e9b4f

E-FAST-M6 passes: factored reveal sampling (N disc strata x M reveal samples, native scenario indexing s = r*N + d over T = N*M) is ported into the fast memo engine as drop7::fastr::FastFactoredSearch and is trace-equivalent to the native FactoredSearch. Grid gate: 6,300 live probe decisions (525 per point over d3/d4 x N5/N7 x M1/M2/M6) with 0 column, 0 work-count and 0 completed-depth mismatches, including 549 work-limited decisions on the two budget-capped d4-M6 points where both engines degrade to completed depth 3 identically. All 3 retained C0 games replay to byte-for-value final identity with the fast engine driving (335 decisions, 0 mismatches). M=1 regression: 2,100 decisions x {memo-on, memo-off} bit-identical to the untouched fast::FastSearch on all six metric fields. Determinism byte-identical across repeated runs and {26,7,1} threads; mirror invariance exact with symmetric boards excluded (finding-13 4C; one disclosed gate-harness iteration); the one-entry leaf memo stays enabled under M>1 (board-memcmp keying cannot alias across reveal samples) with memo-on/off trace identity across the grid. Continuation duty: 8 CRN continuations (2 C0 roots, K=4, H=40) byte-identical to native. Realised speedup at d3 N7M6 is 5.5-5.8x (play duty 2.140 -> 0.385 s/move; continuation duty 0.990 -> 0.177 s/move; grid 4.38-5.87x across points), measured under the gate's own 26-thread load - well below the 10-40x hoped for in the hypothesis, because that figure divided native M6 seconds by fast M1 seconds and ignored the ~27x work ratio. P-SOL continuation labels at native D3 N7M6 semantics now cost ~0.18 s/move instead of ~1-3.4 s/move.

What it had to pass
  • ✓Equivalence: >= 500 live decisions per grid point over d3/d4 x N5/N7 x M1/M2/M6 on probe seeds and >= 3 full replayed C0 games, 0 column/work/completed-depth mismatches vs the native factored search — observed: 525 decisions per point (6,300 total), 0/0/0 mismatches; per-point native and fast trace hashes identical; 3 C0 replays with 0 mismatches and all finals byte-for-value identical to runs/RUN-A525-reveal/d3-n7-m6.json
  • ✓M=1 regression: the port at M=1 remains bit-identical to the existing fast search — observed: 2,100 decisions x memo-on and memo-off vs fast::FastSearch: 0 mismatches on action, completed_depth, nodes, work, cache_hits, cache_entries
  • ✓Determinism: byte-identical outputs across two runs and across thread counts; mirror invariance of decisions — observed: subset artifact byte-identical across {repeat at 26, 7, 1} threads; mirror invariance 0 mismatches on 114 asymmetric-board decisions (18 mirror-symmetric boards excluded per finding-13 4C; iteration 1's harness compared symmetric boards and is disclosed in gates.log)
  • ✓npm test and make test pass; default random-reveal behaviour byte-identical (latent-mode contract untouched) — observed: npm test pass; make test pass including TypeScript/native parity (256 seeds, 6,852 moves, exact); the change is additive (new approach directory only) and touches no engine source
Technical recordRecorded metricsRS-20260824T010000Z-8f3e9b4f
gridDecisions
6,300
gridMismatches
column
0
work
0
completedDepth
0
gridPointsAtLeast500Decisions
12/12 (525 each)
c0Replay
games
3
decisions
335
mismatches
0
finalsIdentical
3/3 (320871/95, 381355/110, 463094/130)
m1Regression
decisions
2,100
comparators
fast::FastSearch vs port memo-on and memo-off
metricFieldMismatches
0
determinism
subset output byte-identical across {repeat, 26, 7, 1} threads (sha256 645a2bb8977f4e86ad95c048964186061970183179ae615159dde8cccb0aed97)
memoUnderM6
enabled; memo-on/off trace identity on all 12 grid points and 2,100 M=1 decisions; no aliasing possible (full-board memcmp key below the work increment)
continuationDuty
continuations
8
outcomeMismatches
0
nativeCpuSecondsPerMove
0.9904
fastCpuSecondsPerMove
0.1767
speedup
5.6000
playDuty
nativeCpuSecondsPerMove
2.1397
fastCpuSecondsPerMove
0.3847
speedup
5.5600
gridSpeedupRange
4.38-5.87x (per-point table in timing.json)
testSuites
npm test pass; make test pass (parity 256 seeds / 6,852 moves exact)
Limitations
  • The two d4 M=6 grid points run under disclosed budget-capped work bounds (51,084,852 and 100,000,000) rather than their infeasible worst-case bounds; this deliberately exercises the work-limit and LRU-eviction paths, but full-depth d4-M6 completion is not itself gated (the C0 configuration d3 N7M6 uses its exact retained bounds).
  • Timing was measured with CLOCK_THREAD_CPUTIME_ID while the gate itself loaded 26 threads; idle-host per-move times will be lower for both engines, and the speedup ratio (4.4-5.9x) is the robust figure, not the absolute times.
  • The realised speedup is ~5.5-5.8x at d3 N7M6, not the 10-40x the hypothesis projected from an M1-vs-M6 comparison; the P-SOL-3 successor's budget must be re-planned from the measured 0.177 s/move continuation rate.
  • Total CPU seconds are measured for stage E and rate-derived for the resumed stages (run record measurementNotes).
  • Self-reported; the run includes one disclosed external task kill (resumed between stages) and one disclosed gate-harness iteration on stage D.

Open the result record

Agent contextHow to extend this record

To add a reader-facing explanation, write web/content/research/EX-20260823-fast-m6-reveal-sampling-port-be23e203.mdx; it renders above this record on the next request. The registered protocol itself is in the technical record above.

Record file: research/experiments/EX-20260823-fast-m6-reveal-sampling-port-be23e203.json, validated against research/schemas/experiment-v1.schema.json. Protocol hash: 60f3a42c7ecbd223c1b4627b8a7cc7d6b125cd9329420c3060e1184f84c49347.

Registered by Claude Code / claude-fable-5.