Repository navigation
D-RU-6 lab: graph_walking over co-addressed RMAP tiles vs walk_mask - #1647
Conversation
…MAP tiles walk_tile.rs evaluates crepe's graph_walking program (Walk(x,z,len) for len in 0..=50, NoWalk) over 256-slot RMAP foci and 256x256 Boolean tiles, against walk_mask (#1637, #1642) as the measured baseline. - Reuses rmap::{Focus, Witness, Refusal, tile_addr}, a mask-risc Ternlog program per coordinate for the tile product, tile_gemm::BitMat as an independent kernel oracle, and walk_mask's oracles and fixtures (the baseline file is compiled in as a module; walk_mask.rs only gains pub(crate) on the items reused, no behaviour change). - Phases timed apart: attestation, witness validation, identity resolution and focus binding, projection, recursion, count-only, decoding. Value-derived reads reported by origin. - More than 256 nodes: paged across foci, cross-page edges counted; more foci than allowed, or a scope that misses reached ids, is refused. - Refusals tested: stale witness (focus, facts, seal), incomplete focus, a wrong path length (counts equal, oracle differs), a program with MaskOp::Gather. - Chain fixture needs >= 200 iterations; a zero-length ring terminates. Lab only. Not an ADMISSION B demonstration: the binding uses a probe-local witness, not the attested sorted key the ruling names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…nt; CI step - walk_tile.rs: count-only end-to-end and resident memory (count-only and with decode, both engines, fresh child process per cell; PathMap's jemalloc rules out a counting allocator); a sparse three-focus fixture replaces edges(520) so the debug-build oracles stay fast in CI. - CI runs cargo test --example walk_tile. - Board: entry D-RU-6-LAB-1 with the measurements, disable runs and the ADMISSION B classification; D-RU-6 row stays Queued/Lab with the benchmark requirement (refs D-RMAP-2 §5b, #1642); plan §8 carries the same requirement. Measured: tuple sets equal ascent, crepe and walk_mask; execution reads no value-addressed position; the binding witness is probe-local, so ADMISSION B is not demonstrated. Count-only the tile path is 1.0-9.3x slower, end to end 1.1-2.0x slower; count-only resident memory is 6.4x smaller at 1024 nodes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ce4997a6dd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The only conflict was .claude/board/entries/README.md, a generated file: taken from main and regenerated with entries_index.py --write. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
An id in the scope that no edge names became a node and got Walk(id,id,0) and NoWalk pairs the program and both oracles omit. The codebook is now the edge endpoints, intersected with the scope. Test: a_scope_id_in_no_edge_is_not_a_node. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Operator-authorized lab probe for D-RU-6 (
d-relalg-unified-v1.md§8, §10, §14 U6). Lab only. No production path changes, and this PR is not an ADMISSION B demonstration. D-RU-6 stays Queued/Lab. Please don't merge on green CI alone.What it is
crates/crepe-plan-probe/examples/walk_tile.rsis a separate example. It evaluates crepe'sgraph_walkingprogram (Walk(x,z,len)forlen in 0..=50,NoWalk, set semantics, least fixpoint) over 256-slot RMAP foci and 256×256 Boolean tiles.walk_mask(#1637, #1642) runs beside it as the measured baseline.Reuse, not a new engine:
mork-pathmap-probe::rmap::{Focus, Witness, Refusal, tile_addr};Ternlogprogram for the tile product;tile_gemm::BitMat::composeas an independent kernel oracle;walk_mask's oracles, fixtures and executor.walk_mask.rsis compiled in as a module, and its only change ispub(crate)on the items reused; it has no behaviour change and its 8 tests still pass.How it runs:
y,C |= broadcast(row y of A) & spread(bit y of each row of B). Every address is a loop coordinate.MaskOp::Gatherare all refused.Tests: 23 (8 of them are the baseline's)
BitMat::compose.CI gains
cargo test --example walk_tile. The benchmark itself is not run in CI.Disable runs (all red, each reverted)
admitletsGatherthroughy ^ 1Measured (release, 4 vCPU, load < 1.3, medians of 7)
Time split for the tile path. Tile count-only covers every phase except decoding. At edges(1024) the phases are, in ms:
Binding costs about 4.7% of the count-only time; recursion costs 94%.
Memory. Resident growth was measured as VmHWM in a fresh process per cell. In-process heap counting is impossible here because PathMap enables jemalloc as the global allocator. At edges(1024), count-only resident growth is 14.2 MiB for walk_mask and 2.2 MiB for tiles. Only non-empty tiles exist: 1.28 MiB, against 19.1 MiB of dense planes. Decoding erases the difference: 50.7 vs 44.9 MiB.
Value-derived reads at edges(1024): walk_mask execution makes 419,230. The tile path makes 0 in execution, 83,846 codebook lookups in preparation, and 4.04M codebook decodes in decoding.
Verdict. Co-addressed execution removes the value-derived reads but does not keep the mask approach's speed. It is 1.0–9.3× slower count-only and 1.1–2.0× slower end to end. End to end looks closer only because tuple decoding dominates both engines. The loss is reported as measured: no measured cost was optimized away.
ADMISSION B classification
rmap::Witnessdigest, not the attested sorted key the ruling names. Not demonstrated.Board
D-RU-6-LAB-1(entries/2026-10-21-d-ru-6-tile-walk-probe.md).normalize, its rewrite catalogue, mork-pathmap-probe sources. File ownership is claimed on EXO-50.Open
Generated by Claude Code