Class DeviceSpmv

Nested Relationships

Nested Types

Class Documentation

class hipcub::DeviceSpmv

Public Static Functions

template<typename ValueT>
__host__ static inline hipError_t CsrMV(void *d_temp_storage, size_t &temp_storage_bytes, ValueT *d_values, int *d_row_offsets, int *d_column_indices, ValueT *d_vector_x, ValueT *d_vector_y, int num_rows, int num_cols, int num_nonzeros, hipStream_t stream = 0, bool debug_synchronous = false)
Parameters
  • d_temp_storage – Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done.

  • temp_storage_bytes – Reference to size in bytes of d_temp_storage allocation

  • d_values – Pointer to the array of num_nonzeros values of the corresponding nonzero elements of matrix A.

  • d_row_offsets – Pointer to the array of m + 1 offsets demarcating the start of every row in d_column_indices and d_values (with the final entry being equal to num_nonzeros)

  • d_column_indices – Pointer to the array of num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.)

  • d_vector_x – Pointer to the array of num_cols values corresponding to the dense input vector x

  • d_vector_y – Pointer to the array of num_rows values corresponding to the dense output vector y

  • num_rows – number of rows of matrix A.

  • num_cols – number of columns of matrix A.

  • num_nonzeros – number of nonzero elements of matrix A.

  • stream[optional] hip stream to launch kernels within. Default is stream0.

  • debug_synchronous[optional] Whether or not to synchronize the stream after every kernel launch to check for errors. May cause significant slowdown. Default is false.

template<typename ValueT>
__global__ static inline void CsrMVKernel(SpmvParams<ValueT, int> spmv_params)
template<typename ValueT>
__host__ static inline hipError_t CsrMV(void *d_temp_storage, size_t &temp_storage_bytes, ValueT *d_values, int *d_row_offsets, int *d_column_indices, ValueT *d_vector_x, ValueT *d_vector_y, int num_rows, int num_cols, int num_nonzeros, hipStream_t stream = 0, bool debug_synchronous = false)
Parameters
  • d_temp_storage – Device-accessible allocation of temporary storage. When NULL, the required allocation size is written to temp_storage_bytes and no work is done.

  • temp_storage_bytes – Reference to size in bytes of d_temp_storage allocation

  • d_values – Pointer to the array of num_nonzeros values of the corresponding nonzero elements of matrix A.

  • d_row_offsets – Pointer to the array of m + 1 offsets demarcating the start of every row in d_column_indices and d_values (with the final entry being equal to num_nonzeros)

  • d_column_indices – Pointer to the array of num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.)

  • d_vector_x – Pointer to the array of num_cols values corresponding to the dense input vector x

  • d_vector_y – Pointer to the array of num_rows values corresponding to the dense output vector y

  • num_rows – number of rows of matrix A.

  • num_cols – number of columns of matrix A.

  • num_nonzeros – number of nonzero elements of matrix A.

  • stream[optional] hip stream to launch kernels within. Default is stream0.

  • debug_synchronous[optional] Whether or not to synchronize the stream after every kernel launch to check for errors. May cause significant slowdown. Default is false.

Public Static Attributes

static constexpr uint32_t CsrMVKernel_MaxThreads = 256
template<typename ValueT, typename OffsetT>
struct SpmvParams

< Signed integer type for sequence offsets

Public Members

ValueT *d_values

Pointer to the array of num_nonzeros values of the corresponding nonzero elements of matrix A.

OffsetT *d_row_end_offsets

Pointer to the array of m offsets demarcating the end of every row in d_column_indices and d_values.

OffsetT *d_column_indices

Pointer to the array of num_nonzeros column-indices of the corresponding nonzero elements of matrix A. (Indices are zero-valued.)

ValueT *d_vector_x

Pointer to the array of num_cols values corresponding to the dense input vector x

ValueT *d_vector_y

Pointer to the array of num_rows values corresponding to the dense output vector y

int num_rows

Number of rows of matrix A.

int num_cols

Number of columns of matrix A.

int num_nonzeros

Number of nonzero elements of matrix A.

ValueT alpha

Alpha multiplicand.

ValueT beta

Beta addend-multiplicand.

::cub::TexRefInputIterator<ValueT, 66778899, OffsetT> t_vector_x
::hipcub::TexRefInputIterator<ValueT, 66778899, OffsetT> t_vector_x