GPU benchmark: add low-overhead Nsight ranges - #9438
Conversation
Merging this PR will regress 1 benchmark
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | compress_fsst[(1000, 64, 8)] |
1 ms | 1.1 ms | -10.76% |
| ⚡ | Simulation | decompress[u64, (10000, 4)] |
402.6 µs | 310.6 µs | +29.6% |
| ⚡ | Simulation | take[core/shuffled/primitive/nonnull/chunks=1024/indices=10000] |
14.2 ms | 12.9 ms | +10.18% |
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-nsys-range-profiling (d7c32df) with joe/gpu-decompression-profiling (b6cf956)
Footnotes
-
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. ↩
b99c8fd to
31a2b52
Compare
ae82808 to
ec46190
Compare
b5ac292 to
27d1096
Compare
ec46190 to
61f18eb
Compare
27d1096 to
b6cf956
Compare
Signed-off-by: Joe Isaacs <2413449+joseph-isaacs@users.noreply.github.com>
61f18eb to
d7c32df
Compare
Stacked only on #9432, whose root is current
develop; it has no dependency on the Parquet benchmark PR.What
VORTEX_GPU_PROFILE=nsysto wrap each field decode in an NVTX range while retaining encoding-tree metrics.VORTEX_GPU_PROFILE=nsys-rangesfor lower-overhead captures that skip encoding-tree construction.Why this is needed
Nsight Systems shows CUDA API calls, copies, waits, allocations, and kernel gaps, but those events are hard to map back to Vortex fields. NVTX ranges provide that correlation. The ranges-only mode is separate because formatting every full array/encoding tree materially perturbs the host timeline we are trying to inspect.
Validation
cargo +nightly fmt --allcargo check -p compress-bench --features cuda,unstable_encodingsgit diff --check