apply alp patches in parallel in cuda#8793
Conversation
Signed-off-by: Onur Satici <onur@spiraldb.com>
Polar Signals Profiling ResultsLatest Run
Previous Runs (3)
Powered by Polar Signals Cloud |
Benchmarks: Vortex queriesVerdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.964x ➖, 0↑ 0↓)
datafusion / parquet (0.907x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.914x ➖, 0↑ 0↓)
duckdb / parquet (0.967x ➖, 0↑ 0↓)
No file size changes detected. |
cb6b225 to
2cc5a01
Compare
| /// so add `patches.offset` while locating chunks and subtract it when addressing `out`. | ||
| /// Every thread cooperates on each overlapping FastLanes chunk. | ||
| template <typename T> | ||
| __device__ __forceinline__ void scatter_alp_patches_range(const GPUPatches &patches, |
There was a problem hiding this comment.
|
@claude review this pr. and check whether scatter_alp_patches_range is even specific to alp |
| /// so add `patches.offset` while locating chunks and subtract it when addressing `out`. | ||
| /// Every thread cooperates on each overlapping FastLanes chunk. | ||
| template <typename T> | ||
| __device__ __forceinline__ void scatter_alp_patches_range(const GPUPatches &patches, |
There was a problem hiding this comment.
yeah no force inline please, inline should always be enough
|
Claude finished @0ax1's task in 3m 13s —— View job PR Review: apply alp patches in parallel in cuda
Is
|
Merging this PR will improve performance by 16.73%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
349.5 µs | 299.4 µs | +16.73% |
| 🆕 | WallTime | cuda/alp_for_bp_6bw_f64_1pct_patches/dispatch_f64[100M] |
N/A | 2.2 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 os/alp-patches (2cc5a01) with develop (f742e8a)
Footnotes
-
10 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. ↩

We used to walk through the patches after decoding ALP then apply them one by one. Now we scatter them among workers and apply these in parallel