Add BlockedFoR encoding backed by BitPackedV2 - #9678
Conversation
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Merging this PR will degrade performance by 0.22%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | compress_fsst[(500, 64, 8)] |
481.1 µs | 537.8 µs | -10.56% |
| ⚡ | WallTime | mul_u32_nonnull_avx512 |
6.3 µs | 5.7 µs | +11.32% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ji/blocked-for-v2-stack (ada4bbf) with develop (ba90f3d)3
Footnotes
-
106 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. ↩
-
4 benchmarks were run, but are now archived. If they were deleted in another branch, consider rebasing to remove them from the report. Instead if they were added back, click here to restore them. ↩
-
No successful run was found on
ji/bitpacked-v2-patches(f4d3659) during the generation of this report, sodevelop(ba90f3d) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
Summary
BitPackedV2Stack
This PR is intentionally based on
ji/bitpacked-v2-patches. Its delta contains no PatchesV2 or FloatQuantV2 implementation changes.Validation
cargo +nightly fmt --all -- --checkcargo check -p vortex-btrblockscargo check -p vortex-btrblocks --features unstable_encodingscargo check -p vortex-bench --features unstable_encodingscargo test -p vortex-btrblocks --features unstable_encodings test_blocked_forcargo clippy -p vortex-btrblocks -p vortex-bench --all-targets --features unstable_encodings -- -D warningsThe focused test verifies that the residual child selected by BlockedFoR is actually
BitPackedV2.Compression note
In the controlled TPC-H SF10 ablation on the earlier combined branch, BlockedFoR produced 2,416,147,124 bytes versus 2,415,156,692 bytes with global FoR: +990,432 bytes (+0.041%). This draft therefore does not claim an SF10 compression saving; it is separated so its workload trade-offs can be reviewed and benchmarked independently.