pub struct BsrMatrix<T: GpuFloat> { /* private fields */ }Expand description
A sparse matrix in Block Sparse Row (BSR) format, stored on GPU.
The matrix has shape (rows, cols) where rows and cols are multiples
of block_dim. It contains nnz_blocks non-zero dense blocks.
Implementations§
Source§impl<T: GpuFloat> BsrMatrix<T>
impl<T: GpuFloat> BsrMatrix<T>
Sourcepub fn from_host(
rows: u32,
cols: u32,
block_dim: u32,
row_ptr: &[i32],
col_idx: &[i32],
values: &[T],
) -> SparseResult<Self>
pub fn from_host( rows: u32, cols: u32, block_dim: u32, row_ptr: &[i32], col_idx: &[i32], values: &[T], ) -> SparseResult<Self>
Creates a BSR matrix from host-side arrays, uploading to GPU.
§Arguments
rows– Number of rows (must be a multiple ofblock_dim).cols– Number of columns (must be a multiple ofblock_dim).block_dim– Size of each dense block.row_ptr– Block row pointer array of lengthblock_rows + 1.col_idx– Block column indices of lengthnnz_blocks.values– Dense block values (row-major within each block).
§Errors
Returns SparseError::InvalidFormat if dimensions or array lengths
are inconsistent.
Sourcepub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<i32>, Vec<T>)>
pub fn to_host(&self) -> SparseResult<(Vec<i32>, Vec<i32>, Vec<T>)>
Downloads the BSR arrays from GPU to host memory.
§Errors
Returns SparseError::Cuda on transfer failure.
Sourcepub fn nnz_blocks(&self) -> u32
pub fn nnz_blocks(&self) -> u32
Returns the number of non-zero blocks.
Sourcepub fn block_rows(&self) -> u32
pub fn block_rows(&self) -> u32
Returns the number of block rows.
Sourcepub fn block_cols(&self) -> u32
pub fn block_cols(&self) -> u32
Returns the number of block columns.
Sourcepub fn scalar_nnz(&self) -> u32
pub fn scalar_nnz(&self) -> u32
Returns the total scalar non-zero count.
Sourcepub fn row_ptr(&self) -> &DeviceBuffer<i32>
pub fn row_ptr(&self) -> &DeviceBuffer<i32>
Returns a reference to the block row pointer device buffer.
Sourcepub fn col_idx(&self) -> &DeviceBuffer<i32>
pub fn col_idx(&self) -> &DeviceBuffer<i32>
Returns a reference to the block 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 BsrMatrix<T>
impl<T> RefUnwindSafe for BsrMatrix<T>where
T: RefUnwindSafe,
impl<T> Send for BsrMatrix<T>
impl<T> Sync for BsrMatrix<T>
impl<T> Unpin for BsrMatrix<T>where
T: Unpin,
impl<T> UnsafeUnpin for BsrMatrix<T>
impl<T> UnwindSafe for BsrMatrix<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