Skip to content

D-RFT-1 follow-up: compose reads the DR256 register (Distinct = Page::roles, Bag = bit product on the support) - #1685

Merged
AdaWorldAPI merged 4 commits into
mainfrom
ccr-0455e606-rft1-tile
Oct 21, 2026
Merged

AdaWorldAPI merged 4 commits into
mainfrom
ccr-0455e606-rft1-tile

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

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.

  • Distinct is 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.
  • 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. Coordinates outside the support are zero by construction.
  • Members borrows the page, and the presence plane is optional, so the 8 KiB copy is gone. Carriers counts 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.

arm time allocations per run
A — composition over the register 12.4 µs (was 310 µs) 6 (the answer lanes)
C+ — support by union, then AND + popcount 14 µs 0
G — dense int8 tile product, ndarray::simd::gemm_u8_i8 (AMX host), bits unpacked to bytes 57.5 µs 9
C — every coordinate 147–151 µs 0
B — tuple baseline, lab only 159 µs 10

On 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.rs now has 11 tests.

  • The random-fixture test also checks that the two Distinct routes (Page::roles, and the union under a full presence plane) agree page by page.
  • New: 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:

  • support ignoring Page::roles;
  • presence plane ignored;
  • Bag skipping a supported role;
  • NULL-key support read from the raw row.

Manifests

ndarray gains the runtime-dispatch feature, so ndarray::simd::gemm_u8_i8 is available to arm G.

Board: the D-RFT-1 entry has an update section; the STATUS_BOARD row is updated.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3c36adfb-4daa-412b-bd16-89d92736a3dc
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Owner Author

@codex review


Generated by Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: ae7aa11a2c

ℹ️ 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".

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T23:39:08.822169Z d9a0175 Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 21, 2026 23:17
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
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
@AdaWorldAPI
AdaWorldAPI force-pushed the ccr-0455e606-rft1-tile branch from ae7aa11 to d9a0175 Compare October 21, 2026 23:38

Copy link
Copy Markdown
Owner Author

@codex review


Generated by Claude Code

@AdaWorldAPI
AdaWorldAPI merged commit 3b723df into main Oct 21, 2026
11 of 12 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: d9a0175f08

ℹ️ 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".

Copy link
Copy Markdown
Owner Author

linux-build-v4 (sapphirerapids) failed on d9a0175, but not because of this PR. It exited at sudo apt update (exit 100) before cargo ran, because the runner image's packages.microsoft.com/ubuntu/24.04/prod source returned 403 Forbidden and is reported as "no longer signed". That is a runner-image apt source, not something in this diff. No fix exists in-tree yet. I'll re-run the job once when the rest of the run finishes; GitHub refuses a job re-run while sibling jobs are still in progress.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants