Skip to content

Commit 03cb988

Browse files
robert3005claude
andcommitted
bench(layout): merge more zones per iteration
Doubles the zones merged per iteration and halves the large filter, keeping the slowest case where it was while giving the two cheap cases twice the work to measure. Rows per zone only change how densely the filters are populated, which a bitwise OR merge is indifferent to. Signed-off-by: Robert Kruszewski <[email protected]> Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01YCjt1pTdVXr8dHar9ALtTY
1 parent b5546b8 commit 03cb988

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

‎vortex-layout/benches/aggregate_partial_merge.rs‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,16 @@ fn main() {
4646

4747
static SESSION: LazyLock<VortexSession> = LazyLock::new(vortex_array::array_session);
4848

49-
/// Zones merged per iteration. Kept small so the slowest case stays well under a millisecond.
50-
const ZONE_COUNT: usize = 8;
51-
/// Rows per zone. Accumulation is setup, not part of what is timed here.
52-
const ZONE_LEN: usize = 1024;
53-
/// [Default, cache-unfriendly] block counts, i.e. 8KiB and 64KiB of bloom partial per zone.
54-
/// The large case is sized to stay under a millisecond once CodSpeed's instrumentation
55-
/// overhead is applied, while still pushing the merge's working set out of L1.
56-
const BLOCK_COUNTS: &[u32] = &[256, 2048];
49+
/// Zones merged per iteration.
50+
const ZONE_COUNT: usize = 16;
51+
/// Rows per zone. Only affects how densely the filters are populated: merging is a bitwise OR
52+
/// over the whole partial, so its cost does not depend on the values, and accumulating them is
53+
/// setup rather than part of the measurement.
54+
const ZONE_LEN: usize = 4096;
55+
/// [Default, larger] block counts, i.e. 8KiB and 32KiB of bloom partial per zone.
56+
/// Merge cost scales with `ZONE_COUNT * blocks`, and the product is what has to stay under a
57+
/// millisecond once CodSpeed's instrumentation overhead is applied.
58+
const BLOCK_COUNTS: &[u32] = &[256, 1024];
5759

5860
fn input_dtype() -> DType {
5961
DType::Primitive(PType::I64, Nullability::NonNullable)

0 commit comments

Comments
 (0)