GPU benchmark: add a single-stream execution fast path - #9431
GPU benchmark: add a single-stream execution fast path#9431joseph-isaacs wants to merge 1 commit into
Conversation
a441e7b to
6158005
Compare
6bcb083 to
599f86e
Compare
Merging this PR will degrade performance by 1.74%
|
| 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)
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. ↩
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
599f86e to
b0da89a
Compare
Independent of the other follow-up PRs; based directly on #9147. This draft contains one reviewable GPU correctness or performance concern.
What
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_encodingsThe combined implementation also passed Rust/CUDA formatting, 164 focused dynamic-dispatch tests, and 28 focused constant-array tests.