Skip to content

feat[gpu]: arrow device array decimal export#8155

Merged
0ax1 merged 6 commits into
developfrom
ad/arrow-device-decimal
Jun 3, 2026
Merged

feat[gpu]: arrow device array decimal export#8155
0ax1 merged 6 commits into
developfrom
ad/arrow-device-decimal

Conversation

@0ax1

@0ax1 0ax1 commented May 29, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@0ax1 0ax1 added the changelog/feature A new feature label May 29, 2026
@0ax1 0ax1 changed the title feat(cuda): widen decimals for Arrow device export feat[gpu]: widen decimals for Arrow device export May 29, 2026
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch from 4d21576 to 03c8b95 Compare May 29, 2026 14:02
@codspeed-hq

codspeed-hq Bot commented May 29, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

⚠️ 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
❌ 2 regressed benchmarks
✅ 1272 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_varbinview_canonical_into[(1000, 10)] 161.3 µs 197.6 µs -18.37%
Simulation bitwise_not_vortex_buffer_mut[128] 246.1 ns 275.3 ns -10.6%
Simulation chunked_varbinview_canonical_into[(100, 100)] 308.3 µs 273.3 µs +12.8%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing ad/arrow-device-decimal (ba179ed) with develop (1552135)

Open in CodSpeed

@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch 2 times, most recently from 6681667 to b15cfc3 Compare May 29, 2026 14:54
@0ax1 0ax1 requested review from onursatici and robert3005 May 29, 2026 14:59
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch from b15cfc3 to 867a83f Compare May 29, 2026 15:03
@0ax1 0ax1 marked this pull request as ready for review May 29, 2026 15:13
@0ax1 0ax1 enabled auto-merge (squash) May 29, 2026 15:16
Comment thread vortex-cuda/kernels/src/decimal_cast.cu
@0ax1 0ax1 disabled auto-merge May 29, 2026 17:02
@0ax1 0ax1 marked this pull request as draft June 1, 2026 15:21
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch 2 times, most recently from bce21b4 to 424c6bd Compare June 1, 2026 16:01
@0ax1 0ax1 changed the title feat[gpu]: widen decimals for Arrow device export feat[gpu]: decimal arrow device array support Jun 3, 2026
@0ax1 0ax1 marked this pull request as ready for review June 3, 2026 14:17
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch from 424c6bd to c56a36f Compare June 3, 2026 14:18
@0ax1 0ax1 changed the title feat[gpu]: decimal arrow device array support feat[gpu]: arrow device array decimal export Jun 3, 2026
0ax1 added 3 commits June 3, 2026 16:51
Cherry-pick of #8197 (Joe Isaacs). Enables narrow Arrow decimal types
in the shared Vortex-to-Arrow mapping now that DataFusion 51+ and
arrow-rs 56+ support them.

Signed-off-by: Alexander Droste <alex@spiraldb.com>
Co-Authored-By: Joe Isaacs <joe.isaacs@live.co.uk>

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Vortex DecimalArray decouples physical storage width from declared
precision, but Arrow fixes the buffer width by precision. Add a CUDA
kernel that widens decimal value buffers on the GPU during export so
they match the Arrow-required layout (Decimal32/64/128/256).

The kernel handles all source widths (i8..i256) since compression can
produce narrow storage for any precision. Narrowing (storage wider than
the target) is rejected rather than silently truncated, since detecting
overflow on-device would need a device-to-host sync.

Signed-off-by: Alexander Droste <alex@spiraldb.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch from c56a36f to b4d669e Compare June 3, 2026 16:55
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
@0ax1 0ax1 force-pushed the ad/arrow-device-decimal branch from b4d669e to ef7e89e Compare June 3, 2026 16:57
@0ax1 0ax1 enabled auto-merge (squash) June 3, 2026 16:58
@0ax1 0ax1 disabled auto-merge June 3, 2026 17:02
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
@0ax1 0ax1 enabled auto-merge (squash) June 3, 2026 17:15
Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
@0ax1 0ax1 merged commit a958108 into develop Jun 3, 2026
61 of 62 checks passed
@0ax1 0ax1 deleted the ad/arrow-device-decimal branch June 3, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants