GPU: remove FSST metadata upload callbacks - #9430
Draft
joseph-isaacs wants to merge 1 commit into
Draft
Conversation
joseph-isaacs
force-pushed
the
joe/gpu-nullable-runend
branch
from
August 17, 2026 09:12
dcf6e61 to
f9fa31f
Compare
joseph-isaacs
force-pushed
the
joe/gpu-fsst-no-metadata-callbacks
branch
from
August 17, 2026 09:12
a441e7b to
6158005
Compare
Merging this PR will improve performance by 10.18%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | take[core/shuffled/primitive/nonnull/chunks=1024/indices=10000] |
14.2 ms | 12.9 ms | +10.18% |
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 joe/gpu-fsst-no-metadata-callbacks (6cb8843) with joe/gpu-fsst-device-output (b215956)
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. ↩
joseph-isaacs
changed the base branch from
joe/gpu-nullable-runend
to
joe/gpu-fsst-device-output
August 17, 2026 09:19
joseph-isaacs
force-pushed
the
joe/gpu-fsst-device-output
branch
from
August 17, 2026 12:35
a74f5d4 to
f099b79
Compare
joseph-isaacs
force-pushed
the
joe/gpu-fsst-no-metadata-callbacks
branch
from
August 17, 2026 12:39
6158005 to
473cce7
Compare
joseph-isaacs
force-pushed
the
joe/gpu-fsst-device-output
branch
from
August 17, 2026 18:20
f099b79 to
b215956
Compare
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
joseph-isaacs
force-pushed
the
joe/gpu-fsst-no-metadata-callbacks
branch
from
August 17, 2026 18:24
473cce7 to
6cb8843
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked only on #9426. This draft contains one reviewable GPU correctness or performance concern.
What
Why this is needed
The performance goal is real: the generic async upload future installs a host callback and waits for all preceding stream work just to keep tiny upload sources alive. The FSST symbol and length tables are ordinary pageable vectors, so they do not need that callback-heavy lifetime path.
However, this draft is not merge-ready as written. It also changes the validity-buffer upload to
ensure_on_device_sync. Vortex's “sync” helper currently calls cudarc's streammemcpy_htod, which usescuMemcpyHtoDAsync; cudarc documents that the source must not move until completion. A validity source may be pinned, so dropping it immediately can be unsafe. Keep validity on the awaited lifetime-safe path, or use a truly synchronous driver copy, and restrict the callback removal to proven-pageable metadata.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.