Advanced Multi-Physics (AMP)
On-Line Documentation
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config > Class Template Reference

#include <CSRMatrixSpGEMMDefault.h>

Classes

struct  DenseAccumulator
 
struct  SparseAccumulator
 
struct  SpGEMMCommInfo
 

Public Types

using allocator_type = typename Config::allocator_type
 
using config_type = Config
 
using gidx_t = typename Config::gidx_t
 
using lidx_t = typename Config::lidx_t
 
using localmatrixdata_t = typename matrixdata_t::localmatrixdata_t
 
using matrixdata_t = CSRMatrixData< Config >
 
using scalar_t = typename Config::scalar_t
 

Public Member Functions

 CSRMatrixSpGEMMDefault ()
 
 CSRMatrixSpGEMMDefault (std::shared_ptr< matrixdata_t > A_, std::shared_ptr< matrixdata_t > B_, std::shared_ptr< matrixdata_t > C_, bool overlap_comms_)
 
void numericMultiply ()
 
void numericMultiplyReuse ()
 
void symbolicMultiply ()
 
 ~CSRMatrixSpGEMMDefault ()=default
 

Protected Types

enum class  BlockType { DIAG , OFFD }
 
enum class  Mode { SYMBOLIC , NUMERIC }
 

Protected Member Functions

void endBRemoteComm ()
 
void mergeDiag ()
 
void mergeOffd ()
 
template<Mode mode_t, BlockType block_t>
void multiply (std::shared_ptr< localmatrixdata_t > A_data, std::shared_ptr< localmatrixdata_t > B_data, std::shared_ptr< localmatrixdata_t > C_data)
 
template<Mode mode_t, BlockType block_t>
void multiplyFused (std::shared_ptr< localmatrixdata_t > B_data, std::shared_ptr< localmatrixdata_t > BR_data, std::shared_ptr< localmatrixdata_t > C_data)
 
template<BlockType block_t>
void multiplyReuse (std::shared_ptr< localmatrixdata_t > A_data, std::shared_ptr< localmatrixdata_t > B_data, std::shared_ptr< localmatrixdata_t > C_data)
 
void numericMultiply_NonOverlapped ()
 
void numericMultiply_Overlapped ()
 
void setupBRemoteComm ()
 
void startBRemoteComm ()
 
void symbolicMultiply_NonOverlapped ()
 
void symbolicMultiply_Overlapped ()
 

Protected Attributes

std::shared_ptr< matrixdata_tA
 
std::shared_ptr< localmatrixdata_tA_diag
 
std::shared_ptr< localmatrixdata_tA_offd
 
std::shared_ptr< matrixdata_tB
 
std::shared_ptr< localmatrixdata_tB_diag
 
std::shared_ptr< localmatrixdata_tB_offd
 
std::shared_ptr< localmatrixdata_tBR_diag
 
std::shared_ptr< localmatrixdata_tBR_offd
 
std::shared_ptr< matrixdata_tC
 
std::shared_ptr< localmatrixdata_tC_diag
 
std::shared_ptr< localmatrixdata_tC_diag_diag
 
std::shared_ptr< localmatrixdata_tC_diag_offd
 
std::shared_ptr< localmatrixdata_tC_offd
 
std::shared_ptr< localmatrixdata_tC_offd_diag
 
std::shared_ptr< localmatrixdata_tC_offd_offd
 
AMP_MPI comm
 
CSRMatrixCommunicator< Config > d_csr_comm
 
std::map< int, SpGEMMCommInfod_dest_info
 
bool d_need_comms
 
lidx_t d_num_rows
 
bool d_overlap_comms
 
std::map< int, std::shared_ptr< localmatrixdata_t > > d_recv_matrices
 
std::map< int, std::shared_ptr< localmatrixdata_t > > d_send_matrices
 
std::map< int, SpGEMMCommInfod_src_info
 

Static Protected Attributes

static constexpr lidx_t SPACC_SIZE = 256
 

Detailed Description

template<typename Config>
class AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >

Definition at line 15 of file CSRMatrixSpGEMMDefault.h.

Member Typedef Documentation

◆ allocator_type

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::allocator_type = typename Config::allocator_type

Definition at line 18 of file CSRMatrixSpGEMMDefault.h.

◆ config_type

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::config_type = Config

Definition at line 19 of file CSRMatrixSpGEMMDefault.h.

◆ gidx_t

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::gidx_t = typename Config::gidx_t

Definition at line 23 of file CSRMatrixSpGEMMDefault.h.

◆ lidx_t

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::lidx_t = typename Config::lidx_t

Definition at line 22 of file CSRMatrixSpGEMMDefault.h.

◆ localmatrixdata_t

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::localmatrixdata_t = typename matrixdata_t::localmatrixdata_t

Definition at line 21 of file CSRMatrixSpGEMMDefault.h.

◆ matrixdata_t

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::matrixdata_t = CSRMatrixData<Config>

Definition at line 20 of file CSRMatrixSpGEMMDefault.h.

◆ scalar_t

template<typename Config >
using AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::scalar_t = typename Config::scalar_t

Definition at line 24 of file CSRMatrixSpGEMMDefault.h.

Member Enumeration Documentation

◆ BlockType

template<typename Config >
enum class AMP::LinearAlgebra::CSRMatrixSpGEMMDefault::BlockType
strongprotected
Enumerator
DIAG 
OFFD 

Definition at line 80 of file CSRMatrixSpGEMMDefault.h.

◆ Mode

template<typename Config >
enum class AMP::LinearAlgebra::CSRMatrixSpGEMMDefault::Mode
strongprotected
Enumerator
SYMBOLIC 
NUMERIC 

Definition at line 79 of file CSRMatrixSpGEMMDefault.h.

Constructor & Destructor Documentation

◆ CSRMatrixSpGEMMDefault() [1/2]

template<typename Config >
AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::CSRMatrixSpGEMMDefault ( )
inline

Definition at line 28 of file CSRMatrixSpGEMMDefault.h.

◆ CSRMatrixSpGEMMDefault() [2/2]

template<typename Config >
AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::CSRMatrixSpGEMMDefault ( std::shared_ptr< matrixdata_t A_,
std::shared_ptr< matrixdata_t B_,
std::shared_ptr< matrixdata_t C_,
bool  overlap_comms_ 
)
inline

◆ ~CSRMatrixSpGEMMDefault()

template<typename Config >
AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::~CSRMatrixSpGEMMDefault ( )
default

Member Function Documentation

◆ endBRemoteComm()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::endBRemoteComm ( )
protected

◆ mergeDiag()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::mergeDiag ( )
protected

◆ mergeOffd()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::mergeOffd ( )
protected

◆ multiply()

template<typename Config >
template<Mode mode_t, BlockType block_t>
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::multiply ( std::shared_ptr< localmatrixdata_t A_data,
std::shared_ptr< localmatrixdata_t B_data,
std::shared_ptr< localmatrixdata_t C_data 
)
protected

◆ multiplyFused()

template<typename Config >
template<Mode mode_t, BlockType block_t>
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::multiplyFused ( std::shared_ptr< localmatrixdata_t B_data,
std::shared_ptr< localmatrixdata_t BR_data,
std::shared_ptr< localmatrixdata_t C_data 
)
protected

◆ multiplyReuse()

template<typename Config >
template<BlockType block_t>
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::multiplyReuse ( std::shared_ptr< localmatrixdata_t A_data,
std::shared_ptr< localmatrixdata_t B_data,
std::shared_ptr< localmatrixdata_t C_data 
)
protected

◆ numericMultiply()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::numericMultiply ( )

◆ numericMultiply_NonOverlapped()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::numericMultiply_NonOverlapped ( )
protected

◆ numericMultiply_Overlapped()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::numericMultiply_Overlapped ( )
protected

◆ numericMultiplyReuse()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::numericMultiplyReuse ( )

◆ setupBRemoteComm()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::setupBRemoteComm ( )
protected

◆ startBRemoteComm()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::startBRemoteComm ( )
protected

◆ symbolicMultiply()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::symbolicMultiply ( )

◆ symbolicMultiply_NonOverlapped()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::symbolicMultiply_NonOverlapped ( )
protected

◆ symbolicMultiply_Overlapped()

template<typename Config >
void AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::symbolicMultiply_Overlapped ( )
protected

Member Data Documentation

◆ A

template<typename Config >
std::shared_ptr<matrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::A
protected

Definition at line 108 of file CSRMatrixSpGEMMDefault.h.

◆ A_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::A_diag
protected

Definition at line 113 of file CSRMatrixSpGEMMDefault.h.

◆ A_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::A_offd
protected

Definition at line 114 of file CSRMatrixSpGEMMDefault.h.

◆ B

template<typename Config >
std::shared_ptr<matrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::B
protected

◆ B_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::B_diag
protected

Definition at line 115 of file CSRMatrixSpGEMMDefault.h.

◆ B_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::B_offd
protected

Definition at line 116 of file CSRMatrixSpGEMMDefault.h.

◆ BR_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::BR_diag
protected

Definition at line 119 of file CSRMatrixSpGEMMDefault.h.

◆ BR_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::BR_offd
protected

Definition at line 120 of file CSRMatrixSpGEMMDefault.h.

◆ C

template<typename Config >
std::shared_ptr<matrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C
protected

◆ C_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_diag
protected

Definition at line 123 of file CSRMatrixSpGEMMDefault.h.

◆ C_diag_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_diag_diag
protected

Definition at line 140 of file CSRMatrixSpGEMMDefault.h.

◆ C_diag_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_diag_offd
protected

Definition at line 141 of file CSRMatrixSpGEMMDefault.h.

◆ C_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_offd
protected

Definition at line 124 of file CSRMatrixSpGEMMDefault.h.

◆ C_offd_diag

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_offd_diag
protected

Definition at line 142 of file CSRMatrixSpGEMMDefault.h.

◆ C_offd_offd

template<typename Config >
std::shared_ptr<localmatrixdata_t> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::C_offd_offd
protected

Definition at line 143 of file CSRMatrixSpGEMMDefault.h.

◆ comm

template<typename Config >
AMP_MPI AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::comm
protected

◆ d_csr_comm

template<typename Config >
CSRMatrixCommunicator<Config> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_csr_comm
protected

Definition at line 135 of file CSRMatrixSpGEMMDefault.h.

◆ d_dest_info

template<typename Config >
std::map<int, SpGEMMCommInfo> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_dest_info
protected

Definition at line 166 of file CSRMatrixSpGEMMDefault.h.

◆ d_need_comms

template<typename Config >
bool AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_need_comms
protected

Definition at line 136 of file CSRMatrixSpGEMMDefault.h.

◆ d_num_rows

template<typename Config >
lidx_t AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_num_rows
protected

Definition at line 131 of file CSRMatrixSpGEMMDefault.h.

◆ d_overlap_comms

template<typename Config >
bool AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_overlap_comms
protected

Definition at line 127 of file CSRMatrixSpGEMMDefault.h.

◆ d_recv_matrices

template<typename Config >
std::map<int, std::shared_ptr<localmatrixdata_t> > AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_recv_matrices
protected

Definition at line 169 of file CSRMatrixSpGEMMDefault.h.

◆ d_send_matrices

template<typename Config >
std::map<int, std::shared_ptr<localmatrixdata_t> > AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_send_matrices
protected

Definition at line 168 of file CSRMatrixSpGEMMDefault.h.

◆ d_src_info

template<typename Config >
std::map<int, SpGEMMCommInfo> AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::d_src_info
protected

Definition at line 163 of file CSRMatrixSpGEMMDefault.h.

◆ SPACC_SIZE

template<typename Config >
constexpr lidx_t AMP::LinearAlgebra::CSRMatrixSpGEMMDefault< Config >::SPACC_SIZE = 256
staticconstexprprotected

Definition at line 105 of file CSRMatrixSpGEMMDefault.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:42.
Comments on this page