Repository navigation
Allocate more kernel outputs through the session allocator - #10622
robert3005 wants to merge 1 commit into
Conversation
The filter of bit-packed, sequence and run-end arrays, run-end decoding and constant byte views allocated their output buffers from the global allocator. Allocate them through the allocator of the execution context instead, so a session can choose where decoded buffers come from. Signed-off-by: Robert Kruszewski <robert@spiraldb.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merging this PR will degrade performance by 10.71%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | threshold_neon[8] |
1.5 µs | 2.5 µs | -39.66% |
| ❌ | WallTime | filter_neon[8] |
871 ns | 1,214 ns | -28.25% |
| ❌ | WallTime | threshold_neon[64] |
2.7 µs | 3.8 µs | -27.71% |
| ❌ | WallTime | threshold_neon[80] |
3.7 µs | 4.6 µs | -19.29% |
| ❌ | WallTime | filter_neon[64] |
1.7 µs | 2.1 µs | -15.85% |
| ❌ | WallTime | filter_neon[80] |
2.5 µs | 2.9 µs | -13.96% |
| ❌ | WallTime | bitpack_blocked_compress_avx2 |
6.7 µs | 7.6 µs | -11.32% |
| ❌ | WallTime | starts_with_avx512[64, VarBin] |
52.9 µs | 59.6 µs | -11.25% |
| ❌ | Simulation | take[routing/grouped_chunks/primitive/nonnull/chunks=32/indices=1000] |
385 µs | 428.9 µs | -10.24% |
| ❌ | Simulation | decompress[u8, (1000, 256)] |
28.1 µs | 31.2 µs | -10.06% |
| ⚡ | Simulation | chunked_opt_bool_canonical_into[(1000, 10)] |
65.4 µs | 55.5 µs | +17.81% |
| ⚡ ℹ️ | Simulation | test_repeated_scan_scalar_at[int_str] |
481.3 µs | 409.8 µs | +17.44% |
| ⚡ | WallTime | threshold_avx2[80] |
3 µs | 2.6 µs | +14.54% |
| ⚡ | WallTime | starts_with_avx2[64, VarBin] |
60.4 µs | 54.4 µs | +11.18% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing rk/kernel-allocator (200cb9f) with develop (61ff28d)
Footnotes
-
12 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
The filter of bit-packed, sequence and run-end arrays, run-end decoding
and constant byte views allocated their output buffers from the global
allocator. Allocate them through the allocator of the execution context
instead, so a session can choose where decoded buffers come from.