cuda.core.experimental.Buffer¶
- class cuda.core.experimental.Buffer(*args, **kwargs)¶
Represent a handle to allocated memory.
This generic object provides a unified representation for how different memory resources are to give access to their memory allocations.
Support for data interchange mechanisms are provided by DLPack.
Methods
- __init__()¶
- close(stream: Stream = None)¶
Deallocate this buffer asynchronously on the given stream.
This buffer is released back to their memory resource asynchronously on the given stream.
- Parameters:
stream (Stream, optional) – The stream object to use for asynchronous deallocation. If None, the behavior depends on the underlying memory resource.
- copy_from(src: Buffer, *, stream: Stream)¶
Copy from the src buffer to this buffer asynchronously on the given stream.
- copy_to(dst: Buffer = None, *, stream: Stream) Buffer ¶
Copy from this buffer to the dst buffer asynchronously on the given stream.
Copies the data from this buffer to the provided dst buffer. If the dst buffer is not provided, then a new buffer is first allocated using the associated memory resource before the copy.
- static from_handle(ptr: CUdeviceptr | int | None, size: int, mr: MemoryResource | None = None) Buffer ¶
Create a new
Buffer
object from a pointer.- Parameters:
ptr (
DevicePointerT
) – Allocated buffer handle objectsize (int) – Memory size of the buffer
mr (
MemoryResource
, optional) – Memory resource associated with the buffer
Attributes
- property handle: CUdeviceptr | int | None¶
Return the buffer handle object.
Caution
This handle is a Python object. To get the memory address of the underlying C handle, call
int(Buffer.handle)
.
- property is_device_accessible: bool¶
Return True if this buffer can be accessed by the GPU, otherwise False.
- property is_host_accessible: bool¶
Return True if this buffer can be accessed by the CPU, otherwise False.
- property memory_resource: MemoryResource¶
Return the memory resource associated with this buffer.