GPU: pack FSST metadata into one upload - #9437
Conversation
179b26e to
67bb478
Compare
b99c8fd to
31a2b52
Compare
Merging this PR will regress 1 benchmark
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | words_gather_scalar[65536] |
8.2 µs | 9.4 µs | -12.16% |
| ⚡ | Simulation | decompress[u64, (10000, 4)] |
402.6 µs | 310.6 µs | +29.62% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing joe/gpu-pack-fsst-metadata (b7bf156) with joe/gpu-fsst-no-metadata-callbacks (6cb8843)
Footnotes
-
46 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. ↩
6158005 to
473cce7
Compare
31a2b52 to
62619ac
Compare
473cce7 to
6cb8843
Compare
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
62619ac to
b7bf156
Compare
Stacked only on #9430 (which itself depends on #9426). This draft contains one reviewable GPU correctness or performance concern.
What
Why this is needed
This is a small incremental FSST cleanup, not the full metadata solution. Symbols and lengths are always consumed together, so packing them saves one allocation and one H2D API call per FSST decode. It does not remove the remaining per-decode metadata upload or implement the requested scan-scoped table cache.
Recommendation: fold this into the corrected #9430 or defer it behind scan-scoped FSST metadata reuse; the standalone benefit is modest.
Validation
Checked independently against this PR's current base:
cargo check -p vortex-cuda --all-featuresThe combined implementation also passed Rust/CUDA formatting, 164 focused dynamic-dispatch tests, and 28 focused constant-array tests.