pyarrow.cuda.CudaBuffer#
- class pyarrow.cuda.CudaBuffer#
Bases:
Buffer
An Arrow buffer with data located in a GPU device.
To create a CudaBuffer instance, use Context.device_buffer().
The memory allocated in a CudaBuffer is freed when the buffer object is deleted.
- __init__(*args, **kwargs)#
Methods
__init__
(*args, **kwargs)copy_from_device
(self, buf, ...)Copy data from device to device.
copy_from_host
(self, data, ...)Copy data from host to device.
copy_to_host
(self, int64_t position=0, ...)Copy memory from GPU device to CPU host
equals
(self, Buffer other)Determine if two buffers contain exactly the same data.
export_for_ipc
(self)Expose this device buffer as IPC memory which can be used in other processes.
from_buffer
(buf)Convert back generic buffer into CudaBuffer
from_numba
(mem)Create a CudaBuffer view from numba MemoryPointer instance.
hex
(self)Compute hexadecimal representation of the buffer.
slice
(self[, offset, length])Return slice of device buffer
to_numba
(self)Return numba memory pointer of CudaBuffer instance.
to_pybytes
(self)Return device buffer content as Python bytes.
Attributes
The buffer's address, as an integer.
Returns the CUDA driver context of this buffer.
The device where the buffer resides.
The device type where the buffer resides.
Whether the buffer is CPU-accessible.
Whether the buffer is mutable.
The memory manager associated with the buffer.
The buffer size in bytes.
- address#
The buffer’s address, as an integer.
The returned address may point to CPU or device memory. Use is_cpu() to disambiguate.
- context#
Returns the CUDA driver context of this buffer.
- copy_from_device(self, buf, int64_t position=0, int64_t nbytes=-1)#
Copy data from device to device.
- Parameters:
- buf
CudaBuffer
Specify source device buffer.
- position
int
Specify the starting position of the copy in device buffer. Default: 0.
- nbytes
int
Specify the number of bytes to copy. Default: -1 (all from source until device buffer, starting from position, is full)
- buf
- Returns:
- nbytes
int
Number of bytes copied.
- nbytes
- copy_from_host(self, data, int64_t position=0, int64_t nbytes=-1)#
Copy data from host to device.
The device buffer must be pre-allocated.
- Parameters:
- data{
Buffer
,array-like
} Specify data in host. It can be array-like that is valid argument to py_buffer
- position
int
Specify the starting position of the copy in device buffer. Default: 0.
- nbytes
int
Specify the number of bytes to copy. Default: -1 (all from source until device buffer, starting from position, is full)
- data{
- Returns:
- nbytes
int
Number of bytes copied.
- nbytes
- copy_to_host(self, int64_t position=0, int64_t nbytes=-1, Buffer buf=None, MemoryPool memory_pool=None, bool resizable=False)#
Copy memory from GPU device to CPU host
Caller is responsible for ensuring that all tasks affecting the memory are finished. Use
<CudaBuffer instance>.context.synchronize()
when needed.
- Parameters:
- position
int
Specify the starting position of the source data in GPU device buffer. Default: 0.
- nbytes
int
Specify the number of bytes to copy. Default: -1 (all from the position until host buffer is full).
- buf
Buffer
Specify a pre-allocated output buffer in host. Default: None (allocate new output buffer).
- memory_pool
MemoryPool
- resizablebool
Specify extra arguments to allocate_buffer. Used only when buf is None.
- position
- Returns:
- buf
Buffer
Output buffer in host.
- buf
- device#
The device where the buffer resides.
- Returns:
Device
- device_type#
The device type where the buffer resides.
- Returns:
DeviceAllocationType
- equals(self, Buffer other)#
Determine if two buffers contain exactly the same data.
- Parameters:
- other
Buffer
- other
- Returns:
- are_equalbool
True if buffer contents and size are equal
- export_for_ipc(self)#
Expose this device buffer as IPC memory which can be used in other processes.
After calling this function, this device memory will not be freed when the CudaBuffer is destructed.
- Returns:
- ipc_handle
IpcMemHandle
The exported IPC handle
- ipc_handle
- static from_buffer(buf)#
Convert back generic buffer into CudaBuffer
- Parameters:
- buf
Buffer
Specify buffer containing CudaBuffer
- buf
- Returns:
- dbuf
CudaBuffer
Resulting device buffer.
- dbuf
- static from_numba(mem)#
Create a CudaBuffer view from numba MemoryPointer instance.
- Parameters:
- mem
numba.cuda.cudadrv.driver.MemoryPointer
- mem
- Returns:
- cbuf
CudaBuffer
Device buffer as a view of numba MemoryPointer.
- cbuf
- is_cpu#
Whether the buffer is CPU-accessible.
- is_mutable#
Whether the buffer is mutable.
- memory_manager#
The memory manager associated with the buffer.
- Returns:
MemoryManager
- parent#
- size#
The buffer size in bytes.
- slice(self, offset=0, length=None)#
Return slice of device buffer
- Parameters:
- offset
int
, default 0 Specify offset from the start of device buffer to slice
- length
int
, defaultNone
Specify the length of slice (default is until end of device buffer starting from offset). If the length is larger than the data available, the returned slice will have a size of the available data starting from the offset.
- offset
- Returns:
- sliced
CudaBuffer
Zero-copy slice of device buffer.
- sliced
- to_numba(self)#
Return numba memory pointer of CudaBuffer instance.
- to_pybytes(self)#
Return device buffer content as Python bytes.