pub struct Array { /* private fields */ }Expand description
A 2-D CUDA array. Element format is chosen at creation; channels are typically 1, 2, or 4.
Implementations§
Source§impl Array
impl Array
Sourcepub fn new(
context: &Context,
width: usize,
height: usize,
format: ArrayFormat,
num_channels: u32,
) -> Result<Self>
pub fn new( context: &Context, width: usize, height: usize, format: ArrayFormat, num_channels: u32, ) -> Result<Self>
Allocate a width × height 2-D array with num_channels elements of
format per texel. Set height = 0 for a 1-D array.
pub fn width(&self) -> usize
pub fn height(&self) -> usize
pub fn num_channels(&self) -> u32
Sourcepub fn bytes_per_element(&self) -> usize
pub fn bytes_per_element(&self) -> usize
Element width in bytes (channel size × channel count).
Sourcepub fn copy_from_host<T: DeviceRepr>(&self, host: &[T]) -> Result<()>
pub fn copy_from_host<T: DeviceRepr>(&self, host: &[T]) -> Result<()>
Synchronous host→array 2-D copy. host must contain exactly
width × height elements of type T; T size must match
self.bytes_per_element().
Sourcepub fn descriptor(&self) -> Result<CUDA_ARRAY_DESCRIPTOR>
pub fn descriptor(&self) -> Result<CUDA_ARRAY_DESCRIPTOR>
Query this array’s descriptor back from CUDA. Useful for arrays you received from an external source and don’t have shape info for.
Sourcepub fn memory_requirements(
&self,
device: &Device,
) -> Result<CUDA_ARRAY_MEMORY_REQUIREMENTS>
pub fn memory_requirements( &self, device: &Device, ) -> Result<CUDA_ARRAY_MEMORY_REQUIREMENTS>
Query the array’s memory-allocation size + alignment requirements
on device. Useful when backing an array with a VMM allocation.
Sourcepub fn sparse_properties(&self) -> Result<CUDA_ARRAY_SPARSE_PROPERTIES>
pub fn sparse_properties(&self) -> Result<CUDA_ARRAY_SPARSE_PROPERTIES>
Query the array’s sparse-tile properties. Meaningful on sparse /
tiled arrays created with the SPARSE flag.
Sourcepub fn plane_raw(&self, plane_idx: u32) -> Result<CUarray>
pub fn plane_raw(&self, plane_idx: u32) -> Result<CUarray>
Return the raw CUarray handle of plane plane_idx of a
multi-planar array (YUV / NV12). The plane is owned by self —
the raw handle must NOT be passed to cuArrayDestroy. Use
together with Array::descriptor_of_raw if you need shape info.
Sourcepub unsafe fn descriptor_of_raw(
handle: CUarray,
) -> Result<CUDA_ARRAY_DESCRIPTOR>
pub unsafe fn descriptor_of_raw( handle: CUarray, ) -> Result<CUDA_ARRAY_DESCRIPTOR>
Helper: query the CUDA_ARRAY_DESCRIPTOR of a raw array handle
(e.g. a plane returned by Array::plane_raw).
§Safety
handle must be a live CUarray.
Sourcepub fn copy_to_host<T: DeviceRepr>(&self, host: &mut [T]) -> Result<()>
pub fn copy_to_host<T: DeviceRepr>(&self, host: &mut [T]) -> Result<()>
Synchronous array→host 2-D copy.