Repository navigation
Conversation
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Merging this PR will improve performance by 79.16%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | take_fsl_random[128, 10] |
58.5 µs | 32.7 µs | +79.16% |
| Simulation | take_fsl_u32_random[256, 10] |
< 1 ns | < 1 ns | N/A | |
| Simulation | fixed_16_advancing_ptr_safe[100] |
< 1 ns | < 1 ns | N/A | |
| Simulation | preverify_advancing_ptr_unchecked[1000] |
< 1 ns | < 1 ns | N/A | |
| Simulation | preverify_advancing_ptr_unchecked[10000] |
< 1 ns | < 1 ns | N/A |
Tip
Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.
Comparing mk/bitpacked-stack-04-offset-child (06905e1) with mk/bitpacked-stack-03-width-child (9dc388a)
Footnotes
-
299 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. ↩
-
1 benchmark was run, but is now archived. If it was deleted in another branch, consider rebasing to remove it from the report. Instead if it was added back, click here to restore it. ↩
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: "Matt Katz" <mhkatz97@gmail.com> Signed-off-by: Matt Katz <mhkatz97@gmail.com>
6dc1734 to
9dc388a
Compare
ecd1bd3 to
06905e1
Compare
9dc388a to
505f31f
Compare
Make constructors accept the offsets child explicitly, so slices, casts, patch reconstruction, and other array transformations preserve the stored boundaries. Slices retain their original offset origin and share the backing buffer; addresses are computed relative to the first boundary.
Introduce
ChunkLayout, which borrows a materialized offsets buffer and derives each chunk's bit width from adjacent boundaries. It validates boundary ordering, 128-byte alignment of chunk sizes, supported widths, and the total packed span. Encoders may supply temporary widths to build the boundaries, but the persistent array contains only the offsets child.The scalar
bit_widthremains available to existing kernels. Arrays must still have materialized, uniform offsets consistent with that scalar. This prepares the array API for a later migration of CPU readers; v1 serialization continues to omit the offsets child. CUDA changes only adapt the constructor API.Validation: 395 FastLanes/BtrBlocks tests passed (1 skipped). Focused Clippy passed with all targets, all features, and warnings denied.