Skip to content

GPU: pack FSST metadata into one upload - #9437

Draft
joseph-isaacs wants to merge 1 commit into
joe/gpu-fsst-no-metadata-callbacksfrom
joe/gpu-pack-fsst-metadata
Draft

GPU: pack FSST metadata into one upload#9437
joseph-isaacs wants to merge 1 commit into
joe/gpu-fsst-no-metadata-callbacksfrom
joe/gpu-pack-fsst-metadata

Conversation

@joseph-isaacs

@joseph-isaacs joseph-isaacs commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Stacked only on #9430 (which itself depends on #9426). This draft contains one reviewable GPU correctness or performance concern.

What

  • Pack the 255 FSST symbols and lengths into one C-compatible table.
  • Allocate and upload one device buffer instead of two per FSST decode.
  • Keep the measured cached-global-memory lookup strategy.

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-features

The combined implementation also passed Rust/CUDA formatting, 164 focused dynamic-dispatch tests, and 28 focused constant-array tests.

@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-default-launch-no-events branch from 179b26e to 67bb478 Compare August 17, 2026 09:17
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-pack-fsst-metadata branch from b99c8fd to 31a2b52 Compare August 17, 2026 09:18
@joseph-isaacs
joseph-isaacs changed the base branch from joe/gpu-default-launch-no-events to joe/gpu-fsst-no-metadata-callbacks August 17, 2026 09:20
@codspeed-hq

codspeed-hq Bot commented Aug 17, 2026

Copy link
Copy Markdown

Merging this PR will regress 1 benchmark

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 1 improved benchmark
❌ 1 regressed benchmark
✅ 2041 untouched benchmarks
⏩ 46 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

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)

Open in CodSpeed

Footnotes

  1. 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.

@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-fsst-no-metadata-callbacks branch from 6158005 to 473cce7 Compare August 17, 2026 12:39
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-pack-fsst-metadata branch from 31a2b52 to 62619ac Compare August 17, 2026 12:46
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-fsst-no-metadata-callbacks branch from 473cce7 to 6cb8843 Compare August 17, 2026 18:24
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-pack-fsst-metadata branch from 62619ac to b7bf156 Compare August 17, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant