Skip to content

[FEA]: Support importing __c_dlpack_exchange_api__ objects as StridedMemoryView #1439

@kkraus14

Description

@kkraus14

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Low priority - Nice to havecuda.coreEverything related to the cuda.core modulefeatureNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions