Skip to content

Benchmark OnPair Arrow GPU export - #9474

Draft
joseph-isaacs wants to merge 3 commits into
developfrom
ji/arrow-gpu-export
Draft

Benchmark OnPair Arrow GPU export#9474
joseph-isaacs wants to merge 3 commits into
developfrom
ji/arrow-gpu-export

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Summary

  • benchmark OnPair decompression directly to Arrow Device VarBin output
  • retain the VarBinView benchmark as a comparison
  • build and run the OnPair CUDA benchmark in the CodSpeed standalone-kernel shard

The Arrow Device path bypasses BinaryView materialization and exports device-resident validity, i32 offsets, and contiguous values buffers directly.

Local results

10 million URL-shaped strings on the local GPU:

Output Median Throughput
VarBinView 945.55 µs 480.52 GiB/s (516.0 GB/s)
Arrow Device VarBin 722.54 µs 628.83 GiB/s (675.2 GB/s)

Direct VarBin reduced latency by 23.6% and increased useful throughput by 30.9%.

Validation

  • cargo bench -p vortex-cuda --bench onpair_cuda
  • cargo test -p vortex-cuda onpair --lib (19 passed)
  • cargo check -p vortex-cuda --bench onpair_cuda
  • cargo +nightly fmt --all
  • git diff --check

yamllint was unavailable locally.

Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
@codspeed-hq

codspeed-hq Bot commented Aug 19, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 14.14%

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

⚡ 1 improved benchmark
✅ 1998 untouched benchmarks
🆕 2 new benchmarks
⏩ 474 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime words_gather_scalar[65536] 9.4 µs 8.2 µs +14.14%
🆕 WallTime cuda/onpair/decompress_to_varbin[10M] N/A 2.3 ms N/A
🆕 WallTime cuda/onpair/decompress_to_varbinview[10M] N/A 3.6 ms N/A

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 ji/arrow-gpu-export (9b0fa11) with develop (9d28d3e)

Open in CodSpeed

Footnotes

  1. 474 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.

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