Conversation
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_varbinview_into_canonical[(1000, 10)] |
169 µs | 205.7 µs | -17.87% |
| ⚡ | Simulation | chunked_varbinview_canonical_into[(100, 100)] |
259.7 µs | 224.6 µs | +15.65% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
244.4 ns | 215.3 ns | +13.55% |
| ⚡ | Simulation | chunked_varbinview_into_canonical[(100, 100)] |
306.5 µs | 271.3 µs | +12.97% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
304.7 ns | 275.6 ns | +10.58% |
| ⚡ | Simulation | encode_varbin[(1000, 2)] |
158.4 µs | 143.5 µs | +10.34% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing ad/pycudf (f827d8a) with develop (f172d58)
Footnotes
-
4 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. ↩
Add a private metadata-only bridge on PyVortex arrays so the optional CUDA extension can reconstruct arrays through its own local Vortex session instead of passing Rust ArrayRef values across Python extension modules. The CUDA extension now parses the metadata tree, calls local array plugins for deserialization, and exports bufferless arrays through the Arrow C Device capsule path. The capsule ownership code handles live and consumed capsule names and releases Arrow resources on error paths. Physical buffer handoff remains a follow-up. Signed-off-by: "Alexander Droste" <alexander.droste@protonmail.com> Signed-off-by: Alexander Droste <alexander.droste@protonmail.com>
|
@claude review in depth |
|
Claude finished @0ax1's task in 3m 35s —— View job Claude PR Review — metadata bridge for Python CUDA exportI reviewed the full diff ( Tasks
What's good
Findings / suggestions1. Debug helper exercises a different session than the real export ( 2. Cross-session encoding registry mismatch is a real behavioral limitation (by design). 3. 4. New public surface in 5. Test coverage (acknowledged in comments). The added tests cover the metadata round-trip, the buffer-handoff rejection, and the no-CUDA error path well. The capsule destructor and Nits
CI / checksThis is Python-binding + PyO3 Rust work. Per |
Add a private metadata-only bridge on PyVortex arrays so the optional CUDA extension can reconstruct arrays through its own local Vortex session instead of passing Rust ArrayRef values across Python extension modules.
The CUDA extension now parses the metadata tree, calls local array plugins for deserialization, and exports bufferless arrays through the Arrow C Device capsule path. Physical buffer handoff remains a follow-up.