cuda-python icon indicating copy to clipboard operation
cuda-python copied to clipboard

[FEA]: Support importing `__c_dlpack_exchange_api__` objects as `StridedMemoryView`

Open kkraus14 opened this issue 3 weeks ago • 0 comments

Description

Add support for importing objects that implement the __c_dlpack_exchange_api__ protocol as StridedMemoryView objects.

Motivation

The __c_dlpack_exchange_api__ protocol provides a C-level interface for efficient zero-copy data exchange. Currently, StridedMemoryView supports construction from Python-level protocols (__dlpack__, __cuda_array_interface__, buffer protocol), but does not support the C-level exchange API.

Supporting this protocol would enable:

  • More efficient data sharing with libraries that expose the C-level API
  • Reduced overhead by avoiding Python-level protocol dispatch
  • Better integration with Cython-based libraries that use the C exchange API

Requested Features

  • Add a class method or constructor path in StridedMemoryView that can consume objects implementing __c_dlpack_exchange_api__
  • Properly handle the DLManagedTensor lifecycle (deleter callback)

Additional Context

  • Related to #1438 (export support)
  • DLPack spec: https://dmlc.github.io/dlpack/latest/

kkraus14 avatar Jan 08 '26 15:01 kkraus14