Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Private Attributes | List of all members
AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t > Class Template Reference

#include <SpGEMM_Cuda.h>

Public Member Functions

void compute (rowidx_t *C_rs, colidx_t *C_cols, scalar_t *C_vals)
 
void compute (rowidx_t *C_rs, colidx_t *C_cols, scalar_t *C_vals)
 
int64_t getCnnz ()
 
int64_t getCnnz ()
 
 VendorSpGEMM (const int64_t M_, const int64_t N_, const int64_t K_, const int64_t A_nnz, rowidx_t *A_rs, colidx_t *A_cols, scalar_t *A_vals, const int64_t B_nnz, rowidx_t *B_rs, colidx_t *B_cols, scalar_t *B_vals, rowidx_t *C_rs)
 
 VendorSpGEMM (const int64_t M_, const int64_t N_, const int64_t K_, const int64_t A_nnz, rowidx_t *A_rs, colidx_t *A_cols, scalar_t *A_vals, const int64_t B_nnz, rowidx_t *B_rs, colidx_t *B_cols, scalar_t *B_vals, rowidx_t *C_rs)
 
 ~VendorSpGEMM ()
 
 ~VendorSpGEMM ()
 

Private Attributes

const cusparseSpGEMMAlg_t alg
 
const scalar_t alpha
 
scalar_t alpha
 
const scalar_t beta
 
scalar_t beta
 
size_t buffer_size
 
size_t bufferSize1
 
size_t bufferSize2
 
const cudaDataType computeType
 
void * dBuffer1
 
void * dBuffer2
 
cusparseHandle_t handle
 
rocsparse_handle handle
 
const cusparseIndexType_t itype
 
rocsparse_indextype itype
 
const cusparseIndexType_t jtype
 
rocsparse_indextype jtype
 
const int64_t K
 
const int64_t M
 
cusparseSpMatDescr_t matA
 
rocsparse_spmat_descr matA
 
cusparseSpMatDescr_t matB
 
rocsparse_spmat_descr matB
 
cusparseSpMatDescr_t matC
 
rocsparse_spmat_descr matC
 
rocsparse_spmat_descr matD
 
const int64_t N
 
const cusparseOperation_t opA
 
const cusparseOperation_t opB
 
cusparseSpGEMMDescr_t spgemmDesc
 
void * temp_buffer
 
rocsparse_datatype ttype
 

Detailed Description

template<typename rowidx_t, typename colidx_t, typename scalar_t>
class AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >

Definition at line 16 of file SpGEMM_Cuda.h.

Constructor & Destructor Documentation

◆ VendorSpGEMM() [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::VendorSpGEMM ( const int64_t  M_,
const int64_t  N_,
const int64_t  K_,
const int64_t  A_nnz,
rowidx_t *  A_rs,
colidx_t *  A_cols,
scalar_t *  A_vals,
const int64_t  B_nnz,
rowidx_t *  B_rs,
colidx_t *  B_cols,
scalar_t *  B_vals,
rowidx_t *  C_rs 
)

◆ ~VendorSpGEMM() [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::~VendorSpGEMM ( )

◆ VendorSpGEMM() [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::VendorSpGEMM ( const int64_t  M_,
const int64_t  N_,
const int64_t  K_,
const int64_t  A_nnz,
rowidx_t *  A_rs,
colidx_t *  A_cols,
scalar_t *  A_vals,
const int64_t  B_nnz,
rowidx_t *  B_rs,
colidx_t *  B_cols,
scalar_t *  B_vals,
rowidx_t *  C_rs 
)

◆ ~VendorSpGEMM() [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::~VendorSpGEMM ( )

Member Function Documentation

◆ compute() [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
void AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::compute ( rowidx_t *  C_rs,
colidx_t *  C_cols,
scalar_t *  C_vals 
)

◆ compute() [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
void AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::compute ( rowidx_t *  C_rs,
colidx_t *  C_cols,
scalar_t *  C_vals 
)

◆ getCnnz() [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
int64_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::getCnnz ( )

◆ getCnnz() [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
int64_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::getCnnz ( )

Member Data Documentation

◆ alg

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cusparseSpGEMMAlg_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::alg
private

Definition at line 65 of file SpGEMM_Cuda.h.

◆ alpha [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const scalar_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::alpha
private

Definition at line 57 of file SpGEMM_Cuda.h.

◆ alpha [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
scalar_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::alpha
private

Definition at line 61 of file SpGEMM_Hip.h.

◆ beta [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const scalar_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::beta
private

Definition at line 58 of file SpGEMM_Cuda.h.

◆ beta [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
scalar_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::beta
private

Definition at line 62 of file SpGEMM_Hip.h.

◆ buffer_size

template<typename rowidx_t , typename colidx_t , typename scalar_t >
size_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::buffer_size
private

Definition at line 75 of file SpGEMM_Hip.h.

◆ bufferSize1

template<typename rowidx_t , typename colidx_t , typename scalar_t >
size_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::bufferSize1
private

Definition at line 74 of file SpGEMM_Cuda.h.

◆ bufferSize2

template<typename rowidx_t , typename colidx_t , typename scalar_t >
size_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::bufferSize2
private

Definition at line 75 of file SpGEMM_Cuda.h.

◆ computeType

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cudaDataType AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::computeType
private

Definition at line 62 of file SpGEMM_Cuda.h.

◆ dBuffer1

template<typename rowidx_t , typename colidx_t , typename scalar_t >
void* AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::dBuffer1
private

Definition at line 76 of file SpGEMM_Cuda.h.

◆ dBuffer2

template<typename rowidx_t , typename colidx_t , typename scalar_t >
void* AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::dBuffer2
private

Definition at line 77 of file SpGEMM_Cuda.h.

◆ handle [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
cusparseHandle_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::handle
private

Definition at line 67 of file SpGEMM_Cuda.h.

◆ handle [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_handle AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::handle
private

Definition at line 68 of file SpGEMM_Hip.h.

◆ itype [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cusparseIndexType_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::itype
private

Definition at line 60 of file SpGEMM_Cuda.h.

◆ itype [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_indextype AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::itype
private

Definition at line 64 of file SpGEMM_Hip.h.

◆ jtype [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cusparseIndexType_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::jtype
private

Definition at line 61 of file SpGEMM_Cuda.h.

◆ jtype [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_indextype AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::jtype
private

Definition at line 65 of file SpGEMM_Hip.h.

◆ K

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const int64_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::K
private

Definition at line 55 of file SpGEMM_Cuda.h.

◆ M

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const int64_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::M
private

Definition at line 53 of file SpGEMM_Cuda.h.

◆ matA [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
cusparseSpMatDescr_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matA
private

Definition at line 70 of file SpGEMM_Cuda.h.

◆ matA [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_spmat_descr AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matA
private

Definition at line 70 of file SpGEMM_Hip.h.

◆ matB [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
cusparseSpMatDescr_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matB
private

Definition at line 71 of file SpGEMM_Cuda.h.

◆ matB [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_spmat_descr AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matB
private

Definition at line 71 of file SpGEMM_Hip.h.

◆ matC [1/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
cusparseSpMatDescr_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matC
private

Definition at line 72 of file SpGEMM_Cuda.h.

◆ matC [2/2]

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_spmat_descr AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matC
private

Definition at line 72 of file SpGEMM_Hip.h.

◆ matD

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_spmat_descr AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::matD
private

Definition at line 73 of file SpGEMM_Hip.h.

◆ N

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const int64_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::N
private

Definition at line 54 of file SpGEMM_Cuda.h.

◆ opA

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cusparseOperation_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::opA
private

Definition at line 63 of file SpGEMM_Cuda.h.

◆ opB

template<typename rowidx_t , typename colidx_t , typename scalar_t >
const cusparseOperation_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::opB
private

Definition at line 64 of file SpGEMM_Cuda.h.

◆ spgemmDesc

template<typename rowidx_t , typename colidx_t , typename scalar_t >
cusparseSpGEMMDescr_t AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::spgemmDesc
private

Definition at line 68 of file SpGEMM_Cuda.h.

◆ temp_buffer

template<typename rowidx_t , typename colidx_t , typename scalar_t >
void* AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::temp_buffer
private

Definition at line 76 of file SpGEMM_Hip.h.

◆ ttype

template<typename rowidx_t , typename colidx_t , typename scalar_t >
rocsparse_datatype AMP::LinearAlgebra::VendorSpGEMM< rowidx_t, colidx_t, scalar_t >::ttype
private

Definition at line 66 of file SpGEMM_Hip.h.


The documentation for this class was generated from the following files:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:43.
Comments on this page