Add support for the Arrow device capsule interfaces - #15370
Conversation
|
Everything outside the python directory is a change from #15047 and can be ignored. |
995e88f to
e6affc9
Compare
e6affc9 to
daf817d
Compare
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
|
/ok to test |
|
@zeroshade you may want to take a look at this if you have use cases to try it out. |
|
@vyasr I'm currently travelling for conferences, but I'll definitely take a look here when I get a chance. |
Matt711
left a comment
There was a problem hiding this comment.
Just non blocking suggestions/questions
| - pydata-sphinx-theme>=0.15.4 | ||
| - pynvml>=12.0.0,<13.0.0a0 | ||
| - pytest-benchmark<5.1.0 | ||
| - pytest-benchmark |
There was a problem hiding this comment.
See the changes in dependencies.yaml (I deleted a bunch of relevant comments).
|
|
||
| return self._to_schema(), self._to_host_array() | ||
|
|
||
| def __arrow_c_device_array__(self, requested_schema=None, **kwargs): |
There was a problem hiding this comment.
Nearly identical to the method for table. Maybe factor out? Same for _to_device_array
There was a problem hiding this comment.
Yeah, we could consider consolidating more. I'm not sure what the best way to do that is right now. Maybe we need some more common helper functions for this. It gets a bit tricky with the Cython typing though.
|
/merge |
|
/merge |
|
@zeroshade this PR is merged, but of course feel free to comment here or open issues/PRs if you see any problems or have any suggestions for follow-up! |
Description
This PR adds support for using Arrow's device capsule interface to pylibcudf Column and Table objects. This will allow two-way zero-copy interchange of Arrow data with other libraries that know how to consume data conforming to the Arrow specification.
I use the Python nanoarrow package for testing since it is the only package I know of that supports two-way conversions (consumption and production) of Arrow device capsules at the moment.
Closes #14959
Checklist