Repository navigation
D-RFT-1 follow-up: compose reads the DR256 register (Distinct = Page::roles, Bag = bit product on the support) - #1685
Conversation
|
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 Generated by Claude Code |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
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. |
Distinct is the page's resolved role set (Page::roles); Bag is one AND + popcount per supported role over the page's membership row and the register's carrier rows (Qr::role_slots), through ndarray::simd. The 2 600 r2il replays per page are gone, and so is the presence-plane copy: Members borrows the page and takes an optional presence plane (with_valid) for NULL keys. 600 users, 3 pages, release, median of 101: 12.4 us (was 310 us), below C+ (14 us) because the support is read, not unioned. The dense int8 tile product (ndarray::simd::gemm_u8_i8, AMX host) is measured as arm G at 57.5 us: unpacking bits to bytes costs more than the bit product. PostgreSQL 16.14 parity unchanged (bag 1421, distinct 1374). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…o a role Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Members::valid is now optional (None = every key present, equal to the member rows), so the cost breakdown reads the presence row through valid_row. Header note: since this PR compose no longer runs the replays the file decomposes; its own programs still measure that plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
ae7aa11 to
d9a0175
Compare
|
@codex review Generated by Claude Code |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Generated by Claude Code |
What
#1681 recomputed what the DR256 register already holds, through about 2 600 r2il replays per page. This PR makes the composition read the register instead.
Page::roles, the role set the page already resolved. Nothing is computed. Under a presence plane (Members::with_valid, for NULL keys) it is the union of the present slots' role words.Qr::role_slots), throughndarray::simd. Coordinates outside the support are zero by construction.Membersborrows the page, and the presence plane is optional, so the 8 KiB copy is gone.Carrierscounts the right fan once per bind.The refusals are unchanged: XOR, seal mismatch, stale binding, a page from an earlier binding, and bag overflow.
Measured
examples/rft1_bench.rs, release, median of 101 runs, 600 users / 3 pages. All arms agree on (bag, distinct) before timing.ndarray::simd::gemm_u8_i8(AMX host), bits unpacked to bytesOn this host the dense tile product is slower than the bit product, because unpacking 0/1 bits to bytes costs more than the composition itself.
PostgreSQL 16.14 parity is unchanged: the lane is equal over 600 × 64, bag 1421 =
count(*), distinct 1374 =count(DISTINCT).Tests
tests/compose.rsnow has 11 tests.Page::roles, and the union under a full presence plane) agree page by page.null_key_drops_the_role_only_it_reaches. The earlier NULL fixture could not see a support error, because the nulled key reached the same role as the other key.Disables, all red:
Page::roles;Manifests
ndarraygains theruntime-dispatchfeature, sondarray::simd::gemm_u8_i8is available to arm G.Board: the D-RFT-1 entry has an update section; the STATUS_BOARD row is updated.
Generated by Claude Code