Skip to content

GPU benchmark: add a single-stream execution fast path - #9431

Draft
joseph-isaacs wants to merge 1 commit into
developfrom
joe/gpu-single-stream-fast-path
Draft

GPU benchmark: add a single-stream execution fast path#9431
joseph-isaacs wants to merge 1 commit into
developfrom
joe/gpu-single-stream-fast-path

Conversation

@joseph-isaacs

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

Copy link
Copy Markdown
Contributor

Independent of the other follow-up PRs; based directly on #9147. This draft contains one reviewable GPU correctness or performance concern.

What

  • Execute independent field decodes directly in stream order for the benchmark.
  • Retain the general scheduling path outside this explicit fast path.

Why this is needed

This is benchmark-specific and removes a different event class from #9436. The GPU benchmark executes all work on one CUDA stream, where FIFO ordering already prevents use-before-produce. cudarc's per-buffer events are needed for cross-stream ownership, not for this single-stream session. The profile observed 2,731 stream/event waits, so using a one-stream context with cross-stream tracking disabled removes pure bookkeeping while leaving the general multi-stream session unchanged.

Validation

Checked independently against this PR's current base:

  • cargo check -p compress-bench --features cuda,unstable_encodings

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-fsst-no-metadata-callbacks branch from a441e7b to 6158005 Compare August 17, 2026 09:12
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-single-stream-fast-path branch from 6bcb083 to 599f86e Compare August 17, 2026 09:13
@joseph-isaacs
joseph-isaacs changed the base branch from joe/gpu-fsst-no-metadata-callbacks to claude/gpu-decompress-benchmarks-4mmn93 August 17, 2026 09:19
@codspeed-hq

codspeed-hq Bot commented Aug 17, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 1.74%

⚠️ 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.

⚡ 2 improved benchmarks
❌ 2 regressed benchmarks
✅ 2033 untouched benchmarks
⏩ 46 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation compact[(4096, 90)] 1.6 µs 1.9 µs -13.97%
Simulation compact[(16384, 90)] 1.8 µs 2 µs -13.01%
Simulation take[small_m/shuffled/primitive/nonnull/chunks=16384/indices=16] 1.2 ms 1 ms +12.47%
Simulation compress_fsst[(1000, 64, 8)] 1.1 ms 1 ms +10.75%

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-single-stream-fast-path (599f86e) with claude/gpu-decompress-benchmarks-4mmn93 (8e060ca)

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.

Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-single-stream-fast-path branch from 599f86e to b0da89a Compare August 17, 2026 12:39
@joseph-isaacs
joseph-isaacs changed the base branch from claude/gpu-decompress-benchmarks-4mmn93 to develop August 17, 2026 12:39
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