Add UncompressedSizeInBytes pushdown for many encodings#7953
Conversation
f5e00a5 to
3821439
Compare
Merging this PR will improve performance by 16.74%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
350.3 µs | 300.1 µs | +16.74% |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing adamg/all-uncompressed-size-fns (3241f4f) with develop (a88e6b1)
|
@claude review this PR |
|
Claude finished @AdamGS's task in 7m 26s —— View job PR Review: Add UncompressedSizeInBytes pushdown for all encodingsTodo List
This is a solid and well-scoped PR. The architecture is clean: a 🔴 Code Duplication in FSST and Zstd KernelsBoth // In fsst/compute/uncompressed_size.rs AND zstd/compute/uncompressed_size.rs:
fn checked_len_mul(len: usize, width: usize, name: &str) -> VortexResult<u64> { ... }
fn validity_uncompressed_size_in_bytes(validity: Mask) -> VortexResult<u64> { ... }These are 🟡 Missing FSST Uncompressed Size TestZstd has 🟡 Zstd
|
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
b800eb0 to
ea71fd0
Compare
Summary
This PR introduces pushdown of
UncompressedSizeInBytesfor a bunch of encodings, much of it is using a shared kernel for fixed-sized types that is applicable in a ton of places.