Skip to content

GPU benchmark: add reusable decompression profiling metrics - #9432

Draft
joseph-isaacs wants to merge 1 commit into
developfrom
joe/gpu-decompression-profiling
Draft

GPU benchmark: add reusable decompression profiling metrics#9432
joseph-isaacs wants to merge 1 commit into
developfrom
joe/gpu-decompression-profiling

Conversation

@joseph-isaacs

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

Copy link
Copy Markdown
Contributor

Based directly on develop; it has no dependency on the Parquet benchmark PR.

What

  • Add opt-in VORTEX_GPU_PROFILE=wall|gpu diagnostics to the existing GPU Vortex benchmark.
  • Emit one JSON record with file/layout sizes, row/batch/dispatch counts, open/scan/read/dispatch/final-sync wall times, and timings grouped by encoding tree.
  • In gpu mode, bracket field dispatches with CUDA events and report device-stream time.
  • Preserve the original decode loop as an early-return fast path when profiling is disabled.

Why this is needed

This is measurement infrastructure, not a speedup. It lets us separate host planning/dispatch, I/O/backpressure, final synchronization, and actual device execution without editing and rebuilding the benchmark for each investigation. Keeping the unprofiled path intact also prevents the measurement tooling from changing normal benchmark results.

Validation

  • cargo +nightly fmt --all
  • cargo check -p compress-bench --features cuda,unstable_encodings
  • git diff --check

@codspeed-hq

codspeed-hq Bot commented Aug 17, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 11.88%

⚠️ 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 regressed benchmarks
✅ 1998 untouched benchmarks
⏩ 89 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.65%
WallTime words_gather_dispatch[1024] 8 ns 9 ns -11.11%

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-decompression-profiling (b6cf956) with develop (b825c4f)

Open in CodSpeed

Footnotes

  1. 89 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-single-stream-fast-path branch from 6bcb083 to 599f86e Compare August 17, 2026 09:13
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-decompression-profiling branch from cbfb3e5 to b5ac292 Compare August 17, 2026 09:14
@joseph-isaacs
joseph-isaacs changed the base branch from joe/gpu-single-stream-fast-path to joe/gpu-fsst-device-output August 17, 2026 09:19
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-fsst-device-output branch from a74f5d4 to f099b79 Compare August 17, 2026 12:35
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-decompression-profiling branch from b5ac292 to 27d1096 Compare August 17, 2026 12:58
@joseph-isaacs
joseph-isaacs changed the base branch from joe/gpu-fsst-device-output to develop August 17, 2026 12:58
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
@joseph-isaacs
joseph-isaacs force-pushed the joe/gpu-decompression-profiling branch from 27d1096 to b6cf956 Compare August 17, 2026 18:18
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