1#ifndef _SP_PAR_MAT_3D_H_
2#define _SP_PAR_MAT_3D_H_
34 template <
class IT,
class NT,
class DER>
60 std::shared_ptr< SpParMat<IT, NT, DER> >
GetLayerMat() {
return layermat;}
65 template <
typename LIT>
72 std::shared_ptr<CommGrid3D>
getcommgrid()
const {
return commGrid3D; }
76 template <
typename SR,
typename NUO,
typename UDERO,
typename IU,
typename NU1,
typename NU2,
typename UDER1,
typename UDER2>
80 template <
typename SR,
typename NUO,
typename UDERO,
typename IU,
typename NU1,
typename NU2,
typename UDER1,
typename UDER2>
85 std::shared_ptr<CommGrid3D> commGrid3D;
87 std::shared_ptr< SpParMat<IT, NT, DER> > layermat;
bool CheckSpParMatCompatibility()
friend SpParMat3D< IU, NUO, UDERO > Mult_AnXBn_SUMMA3D(SpParMat3D< IU, NU1, UDER1 > &A, SpParMat3D< IU, NU2, UDER2 > &B)
friend SpParMat3D< IU, NUO, UDERO > MemEfficientSpGEMM3D(SpParMat3D< IU, NU1, UDER1 > &A, SpParMat3D< IU, NU2, UDER2 > &B, int phases, NUO hardThreshold, IU selectNum, IU recoverNum, NUO recoverPct, int kselectVersion, int computationKernel, int64_t perProcessMemory)
std::shared_ptr< SpParMat< IT, NT, DER > > GetLayerMat()
void LocalDim(IT total_m, IT total_n, IT &localm, IT &localn) const
float LoadImbalance() const
int Owner(IT total_m, IT total_n, IT grow, IT gcol, LIT &lrow, LIT &lcol) const
std::shared_ptr< CommGrid3D > getcommgrid() const
SpParMat< IT, NT, DER > Convert2D()
std::shared_ptr< CommGrid3D > getcommgrid3D() const
void CalculateColSplitDistributionOfLayer(vector< typename DER::LocalIT > &divisions3d)