pub struct EllMatrix<T: GpuFloat> { /* private fields */ }Expand description
A sparse matrix in ELLPACK (ELL) format, stored on GPU.
Both col_idx and values have length rows * max_nnz_per_row,
stored in column-major order: element (i, k) is at index
k * rows + i.
Implementations§
Source§impl<T: GpuFloat> EllMatrix<T>
impl<T: GpuFloat> EllMatrix<T>
Sourcepub fn from_host(
rows: u32,
cols: u32,
max_nnz_per_row: u32,
col_idx: &[i32],
values: &[T],
) -> SparseResult<Self>
pub fn from_host( rows: u32, cols: u32, max_nnz_per_row: u32, col_idx: &[i32], values: &[T], ) -> SparseResult<Self>
Creates an ELL matrix from host-side padded arrays, uploading to GPU.
§Arguments
rows– Number of rows.cols– Number of columns.max_nnz_per_row– Maximum entries stored per row.col_idx– Padded column indices, lengthrows * max_nnz_per_row, column-major. Unused entries must beELL_SENTINEL(-1).values– Padded values, lengthrows * max_nnz_per_row, column-major. Unused entries should be zero.
§Errors
Returns SparseError::InvalidFormat if array lengths are incorrect.
Sourcepub fn from_csr(csr: &CsrMatrix<T>) -> SparseResult<Self>
pub fn from_csr(csr: &CsrMatrix<T>) -> SparseResult<Self>
Creates an ELL matrix from a CSR matrix on the host.
Determines max_nnz_per_row from the CSR structure, then pads
each row to that width.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<T>)>
pub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<T>)>
Downloads the ELL arrays from GPU to host memory.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn max_nnz_per_row(&self) -> u32
pub fn max_nnz_per_row(&self) -> u32
Returns the maximum non-zeros per row.
Sourcepub fn col_idx(&self) -> &DeviceBuffer<i32>
pub fn col_idx(&self) -> &DeviceBuffer<i32>
Returns a reference to the column index device buffer.
Sourcepub fn values(&self) -> &DeviceBuffer<T>
pub fn values(&self) -> &DeviceBuffer<T>
Returns a reference to the values device buffer.
Auto Trait Implementations§
impl<T> Freeze for EllMatrix<T>
impl<T> RefUnwindSafe for EllMatrix<T>where
T: RefUnwindSafe,
impl<T> Send for EllMatrix<T>
impl<T> Sync for EllMatrix<T>
impl<T> Unpin for EllMatrix<T>where
T: Unpin,
impl<T> UnsafeUnpin for EllMatrix<T>
impl<T> UnwindSafe for EllMatrix<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more