pitrou commented on code in PR #40708: URL: https://github.com/apache/arrow/pull/40708#discussion_r1539356280
########## docs/source/format/CDataInterface/PyCapsuleInterface.rst: ########## @@ -185,6 +230,34 @@ raise an exception. The requested schema mechanism is only meant to negotiate between different representations of the same data and not to allow arbitrary schema transformations. +Device Support +-------------- + +Th PyCapsule interface has cross hardware support through using the +:ref:`C device interface <c-device-data-interface>`. This means it is possible +to exchange data on non-CPU devices (e.g. CUDA GPUs) and to inspect on what +device the exchanged data lives. + +For exchanging the data structures, this interface has two sets of protocol +methods: the standard CPU-only versions (:meth:`__arrow_c_array__` and +:meth:`__arrow_c_stream__`) and the equivalent device-aware versions +(:meth:`__arrow_c_device_array__```, and :meth:`__arrow_c_device_stream__`). + +For CPU-only libraries, it is allowed to either implement only the standard +protocol methods, or either implement both the standard and device-aware +methods. The absence of the device version methods implies CPU-only data. For +CPU-only consumers, it is encouraged to be able to consume both versions of the +protocol. + +For a device-aware library, and for data structures that can only reside in +non-CPU memory, it is recommeded to _only_ implement the device version of the +protocol (e.g. only add ``__arrow_c_device_array__``, and not add ``__arrow_c_array__``). +Libraries that have data structures that can live both on CPU or non-CPU devices Review Comment: ```suggestion Producers that have data structures that can live both on CPU or non-CPU devices ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
