Skip to content

Commit cb9906d

Browse files
committed
D-RMAP-DIR-1 round 2: results, plan §9, board
Plan §9: completeness tests and disable runs, the working-set sweep against L1/L2, composite vs conjunction, per-phase preparation accounting and the amortization table, revised F verdict. Board: entry for round 2, STATUS_BOARD row, regenerated entries index. Bench: W8 rebind time no longer includes building the witness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
1 parent 79e802c commit cb9906d

5 files changed

Lines changed: 194 additions & 9 deletions

File tree

‎.claude/board/STATUS_BOARD.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ These PRs merged with no board rows. Every row below is a PROPOSAL (documents an
5454
| D-RPR-3 | MeTTa-facing parity of a chain's answers | BLOCKED on D-ASM-4 (not authorized) | — |
5555
| D-MPS-8 | native join over a versioned relationship table: R and S laid out by `y` slot, leapfrog intersection as one mask-risc `And`, per-side generations and reseal, per-thought filter planes (`mork-pathmap-schnellverschluss-v1.md` §7b; `crates/mork-pathmap-probe/src/join.rs`) | MEASURED, probe only; not admitted (D-RMAP-1 BIND membrane review) | 8 join tests + native arms in the differential suite vs the oracle; 7 guards disable-verified; cyclic bodies open |
5656
| D-RMAP-2 | context-declaration reuse and GraphBLAS/BF16 tile probe (`d-rmap-2-context-tile-algebra-probe-v1.md`) | LAB ONLY, not admitted to production; PARTIAL: §5a MEASURED on the polyfill tier and on the AMX tile tier (§5a-AMX); `VDPBF16PS`-only tier and GraphBLAS arm not run | arms 1–5 in the plan; 297× (D-GTM-0j) is not evidence |
57-
| D-RMAP-DIR-1 | dir-sim membership: A (View) vs D (crepe oracle) vs B (bidirectional CSR) vs B+ (compiled closure rows + roles by ordinal) vs F (256-slot focus over B+) (`d-rmap-dir-1-membership-closure-focus-v1.md`; `crates/dir-rmap-probe`, CI `dir-rmap-probe.yml`) | MEASURED, lab only; nothing admitted, no production file changed | 5 tests: every arm = A = D on every user/group/chain; 7 guards disable-verified red, 1 shown redundant; B removes A's per-call full scan (W2 ~4,000×), B+ adds 2–3× (groups) and 12–15× (roles), F ≤ 2× only for ≤ 64 focus groups after ~1,000 reuses, none near 256 |
57+
| D-RMAP-DIR-1 | dir-sim membership: A (View) vs D (crepe oracle) vs B (bidirectional CSR) vs B+ (compiled closure rows + roles by ordinal) vs F (256-slot focus over B+) (`d-rmap-dir-1-membership-closure-focus-v1.md`; `crates/dir-rmap-probe`, CI `dir-rmap-probe.yml`) | MEASURED, lab only; nothing admitted, no production file changed | 5 tests: every arm = A = D on every user/group/chain; 7 guards disable-verified red, 1 shown redundant; B removes A's per-call full scan (W2 ~4,000×), B+ adds 2–3× (groups) and 12–15× (roles), F ≤ 2× only for ≤ 64 focus groups after ~1,000 reuses, none near 256. **Round 2 (§9):** 11 tests; F per chain, refuses incomplete answers; projection through down rows moves F's break-even to 2–100 reuses; F 2–5× warm / ~2× cold while the question masks fit L1, its gain growing with group count (2.9× at 1.5k groups → 5.5× at 11k); slower than B+ once ~4,300 conjunction masks exceed L1; rebuilding per question never pays; not promoted |
5858
| D-RMAP-DIR-2 | B built in `Snapshot::build` from the lanes; B+ closure as a lazily compiled, version-witnessed cache behind the existing `View` methods; F not proposed | PROPOSED; not authorized; waits on `ISS-ADMISSION-PREP-BINDING` (hot path reads rows at a user's direct-group values) | dir-sim tests + D-RMAP-DIR-1 oracle as the equivalence gate |
5959
| D-SRAM-0 | inventory Soufflé AST/ast2ram/RAM passes against D-ASM/D-RA/D-TGA owners | Queued | evidence per mapped pass; no code imported |
6060
| D-SRAM-1 | bound AST → RAM-like schedule for pure conjunctive selection | Queued | same answers and read sets on hand-built fixtures; unsupported ops typed-refused |
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# D-RMAP-DIR-1 round 2: when 256-slot focus geometry beats compiled closure (2026-10-20)
2+
3+
**Status:** MEASURED, lab only; nothing promoted. **Basis:** `crates/dir-rmap-probe` (`tests/equivalence.rs` 11/11; `examples/bench.rs`, 4 runs at 8,000 users plus 1 at 65,000). Plan `d-rmap-dir-1-membership-closure-focus-v1.md` §9.
4+
5+
- **Completeness:**
6+
- F binds one chain and projects the full B+ closure through down rows, so paths through unfocused groups are represented (tested on two-hop cases for every chain);
7+
- it refuses >256 groups, duplicates, a stale B+ or focus, and unfocused groups;
8+
- the witness now compares the `Snapshot` by pointer, so two stores both starting at `VersionId(0)` refuse each other;
9+
- 8 guards disable-verified red.
10+
- **Preparation:**
11+
- down-row projection costs 1.6–2.7 µs at 64 groups, against 72–82 µs for round 1's per-slot test, and that moves F's break-even from ~1,000 reuses to 2–100;
12+
- eager per-user rows cost 84–95 µs and 32 B per user; lazy rows fill at ~16 ns per user;
13+
- every arm's hot path makes 0 allocations.
14+
- **Working set:**
15+
- B+'s closure passing L2 cost it only 5–17 % (warm vs hot); it slows with row width (218 → 436 ns from 1.5k to 11k groups);
16+
- F stays at 74–79 ns, a 2.9× → 5.5× advantage;
17+
- cold: F ~2×, F+users ~4×.
18+
- **Question shape decides:**
19+
- composite membership (one bit): F 1.7–2.9× at every focus size;
20+
- conjunctions: 2.4–5.4× up to ~650 questions, but at 256 groups (~4,300 conjunctions, 135 KiB of masks, more than L1d) F's mask form is 1.5–1.7× *slower* than B+.
21+
- **Rebuilding a focus per question never pays;** question-aware B+ (needed words only) never helps.
22+
23+
OPEN: real directories' question-to-group ratio; other CPUs (small L3); the gather admission (`ISS-ADMISSION-PREP-BINDING`); D-RMAP-DIR-2 not authorized.

‎.claude/board/entries/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
2525
opposite directions; the stranding this convention prevents shows up in
2626
exactly one of them, never both.
2727

28-
390 entries, 2026-08-06 .. 2026-10-20.
28+
391 entries, 2026-08-06 .. 2026-10-20.
2929

3030
| date | entry id | finding | file |
3131
|---|---|---|---|
@@ -39,6 +39,7 @@ exactly one of them, never both.
3939
| 2026-10-20 | `D-TGA-SLOT-AXIS` | thoughts are 64 slots, and the slot number is CE64's witness pointer | [2026-10-20-d-tga-slot-axis-witness-pointer.md](2026-10-20-d-tga-slot-axis-witness-pointer.md) |
4040
| 2026-10-20 | `D-RPR` | | [2026-10-20-d-rpr-consolidation-1624.md](2026-10-20-d-rpr-consolidation-1624.md) |
4141
| 2026-10-20 | `D-RPR-1` | | [2026-10-20-d-rpr-1-handoff-lab-demo.md](2026-10-20-d-rpr-1-handoff-lab-demo.md) |
42+
| 2026-10-20 | `D-RMAP-DIR-1` | | [2026-10-20-d-rmap-dir-1-round-2-focus-geometry.md](2026-10-20-d-rmap-dir-1-round-2-focus-geometry.md) |
4243
| 2026-10-20 | `D-RMAP-DIR-1` | | [2026-10-20-d-rmap-dir-1-membership-closure-focus.md](2026-10-20-d-rmap-dir-1-membership-closure-focus.md) |
4344
| 2026-10-20 | `D-RMAP-2` | | [2026-10-20-d-rmap-2-tile-gemm-cell.md](2026-10-20-d-rmap-2-tile-gemm-cell.md) |
4445
| 2026-10-20 | `D-RMAP-2-AMX` | | [2026-10-20-d-rmap-2-amx-tier.md](2026-10-20-d-rmap-2-amx-tier.md) |

0 commit comments

Comments
 (0)