Repository navigation
D-CMR-2b probe: no win on whole extents; short runs pay per-run executor cost - #1656
Conversation
Lab example only; ir.rs and exec.rs are unchanged. pred_scratch_probe compares today's tiled execute_extent (scratch reused, and scratch allocated per call) with a fold that compares into chunks and counts them in one mask_ternlog_popcount, with fresh and with reused chunks. Every configuration is checked against a bit-serial oracle and arm A first; timing is interleaved per rep with a null arm. Result: at most ~5% at one tile on the best shape, 0–4% from 1M rows, inside the null's spread; slower where no pass is saved. Phase 2 (a Pred lowering) is not supported. Board: entry, STATUS and plan rows for D-CMR-2b, LATEST_STATE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013z2e1YXkm6o6HNrDn5BPWA
|
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: b39cbac1f7
ℹ️ 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".
…r's run-shaped workload Codex review of #1656: benchmarks belong in lance-graph-benches (AGENTS.md), and set_lower calls execute_extent once per run over short, unaligned extents, which whole-extent timing does not cover. The probe now also times K unaligned runs of 200, 3,000 and 40,000 rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013z2e1YXkm6o6HNrDn5BPWA
…ed result Adds arm Ac (Program::compile once + execute_compiled per run) to separate execute_extent's per-call recognition cost from the tile work, and fixes the three clippy lints the moved example carried. Measured over 3 runs: no win for the fold on whole extents or 40k-row runs; on set_lower's 200-row runs per-run execute_extent is 2.5-4x slower than the fold, and compiling once cuts it by only 5-18 %. Remedy not decided. Entry, STATUS, plan and LATEST_STATE updated to the new path and result. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013z2e1YXkm6o6HNrDn5BPWA
This is phase 1 of D-CMR-2b, a lab measurement only.
ir.rs,exec.rsand the rest of the library are unchanged.Background.
fused_ternlogdeclinesPred, so a residual comparison runs on the tiled path through scratch. That scratch is already caller-owned and one tile wide (slots × 256words), allocated once and never sized to the population. So the question was not heap memory. It was whether per-op tile write-back and the separateAndand count passes cost anything measurable.Probe:
crates/lance-graph-benches/examples/pred_scratch_probe.rs. Run it withcargo run --release -p lance-graph-benches --example pred_scratch_probe. It lives in the benches crate, so mask-risc gains nondarraydev-dependency.i32lanes:0..n, with n = 16k, 1M or 4M.set_lower's shape. Over 1M rows, K runs of 200, 3,000 or 40,000 rows at odd starts, together about a quarter of the rows.execute_extentper extent, with reused scratch.Scratch::for_programcalled once per call.execute_compiledper extent.mask_ternlog_popcount.Result, from 3 runs. Each range covers the three selectivities across all three runs.
Reading.
Predlowering arm for whole extents is not supported.execute_extentcosts about 170–520 ns a run, and the fold is 2.5–4× faster. Compiling once cuts A by only 5–18 %.Board: entry
entries/2026-10-21-d-cmr-2b-scratch-probe.md; D-CMR-2b rows in STATUS and in the plan; LATEST_STATE. Contract inventory is unchanged.Coordination: claimed on EXO-50 as
session_013z2e1YXkm6o6HNrDn5BPWA/023. Dependencies were confirmed there: ndarray atorigin/master37a3b59, and mask-risc's 47 tests pass against it.🤖 Generated with Claude Code
https://claude.ai/code/session_013z2e1YXkm6o6HNrDn5BPWA