Repository navigation
Closed
Labels
tracking-issueShared implementation context for work likely to span multiple PRs.Shared implementation context for work likely to span multiple PRs.
Description
1. cuDF compatibility baseline
- Track cuDF version containing
rapidsai/cudf#22620. - Regression coverage for producer-owned
ArrowArray.private_data.
2. Harden existing Arrow Device export
- Audit
device_type,device_id,sync_event,reserved, release callbacks, child ownership, andprivate_data. - Add tests for release idempotency, nested children, sliced arrays, and producer-owned private data.
3. Add null-mask support
- Export Vortex validity bitmaps as CUDA buffers.
- Populate Arrow null bitmap slots and
null_count. - Support nulls for primitives, bools, decimals, temporals, strings, structs, and nested types.
4. Complete cuDF-compatible dtype coverage
- Verify all primitive widths.
- Finish decimal support.
- Expand
Utf8View/BinaryViewtests:- inline/out-of-line values
- multiple variadic buffers
- non-ASCII UTF-8
- sliced arrays
- Add list/fixed-size-list export where cuDF supports the Arrow layout.
- Return clear errors for unsupported dtypes.
5. Implement ArrowDeviceArrayStream
- Add bindings for
ArrowDeviceArrayStream. - Implement
get_schema,get_next,get_last_error, andrelease. - Expose scan-to-device-stream from
vortex-cuda. - Ensure stream batches stay on one CUDA device.
6. Expand cuDF e2e tests
- Cover nullable primitives/strings.
- Cover bools.
- Cover decimals.
- Cover temporals.
- Cover structs/nested structs.
- Cover lists/fixed-size lists.
- Cover sliced arrays.
7. PyVortex cuDF integration
-
Expose Arrow Device export from PyVortex.
- Add
array.__arrow_c_device_array__(requested_schema=None, **kwargs). - Return Arrow schema, device-array.
- Ensure PyCapsule destructors correctly release Arrow-owned resources.
- Add
-
Add user-facing cuDF APIs.
- Add
array.to_cudf(). - Add
file.to_cudf()/ readerto_cudf(). - Add scan/prepared-scan
to_cudf(). - Lazy-import cuDF when
to_cudf()is called. - Do not silently fall back to host Arrow unless explicitly requested.
- Add
-
Validate Python → cuDF behavior.
- Test real Vortex → Arrow Device → cuDF imports.
- Cover nullable columns, strings/binary, nested columns, and scans.
- Document required cuDF version, supported dtypes, limitations, and examples.
Metadata
Metadata
Assignees
Labels
tracking-issueShared implementation context for work likely to span multiple PRs.Shared implementation context for work likely to span multiple PRs.
Activity
manish-sethi commentedon Jun 11, 2026
Can you please clarify the scope of the following two aspects
0ax1 commentedon Jun 17, 2026
@manish-sethi Support for Arrow Device array string view landed as part of: NVIDIA/cudf#22620.
Definitely! But this is part of a bigger task. I'll post here when things are in flight and I have an idea on the time-line.
manish-sethi commentedon Jun 18, 2026
@0ax1 It seems this is a bug fix in cuDF. My question was mainly regarding the format of export utf8 v/s utf8 view
0ax1 commentedon Jun 18, 2026
cuDF has
cudf::string_viewsupport and the PR fixed the import from Arrow Device arraySTRING_VIEWinto cuDF.But yeah there's no string_view column type and the string still gets materialized for a string column in cuDF So as of now that conversion is left up to cuDF. There's no direct path to decompress into the final format. I can look into supporting decoding varbin to utf8 directly on the gpu but ideally cuDF would add support for string view columns.
manish-sethi commentedon Jun 22, 2026
Yes, my concern was mainly regarding cuDF causing materialization into
STRING, as its operators do not yet directly work onSTRING_VIEW. So, if it is easy to provide support for decoding varbin to utf8 directly, that would take this inefficiency out of this path - Thanks!0ax1 commentedon Jun 24, 2026
Yeah this was good to point out! Expect the e2e perf become more polished over time.