Lines Matching defs:Mat_SeqAIJHIPSPARSETriFactors
199 struct Mat_SeqAIJHIPSPARSETriFactors { struct
200 …iFactorStruct *loTriFactorPtr; /* pointer for lower triangular (factored matrix) on GPU */
201 …iFactorStruct *upTriFactorPtr; /* pointer for upper triangular (factored matrix) on GPU */
202 …se; /* pointer for lower triangular (factored matrix) on GPU for the transpose (useful for BiCG) */
203 …ose; /* pointer for upper triangular (factored matrix) on GPU for the transpose (useful for BiCG)*/
204 THRUSTINTARRAY *rpermIndices; /* indices used for any reordering */
205 THRUSTINTARRAY *cpermIndices; /* indices used for any reordering */
206 THRUSTARRAY *workVector;
207 hipsparseHandle_t handle; /* a handle to the hipsparse library */
208 … nnz; /* number of nonzeros ... need this for accurate logging between ICC and ILU */
209 hipDeviceProp_t dev_prop;
210 PetscBool init_dev_prop;
216 PetscScalar *csrVal;
217 …wPtr, *csrColIdx; /* a,i,j of M. Using int since some hipsparse APIs only support 32-bit indices */
220 hipsparseMatDescr_t matDescr_M;
221 hipsparseSpMatDescr_t spMatDescr_L, spMatDescr_U;
222 hipsparseSpSVDescr_t spsvDescr_L, spsvDescr_Lt, spsvDescr_U, spsvDescr_Ut;
224 hipsparseDnVecDescr_t dnVecDescr_X, dnVecDescr_Y;
225 PetscScalar *X, *Y; /* data array of dnVec X and Y */
228 int factBufferSize_M; /* M ~= LU or LLt */
229 size_t spsvBufferSize_L, spsvBufferSize_Lt, spsvBufferSize_U, spsvBufferSize_Ut;
233 void *factBuffer_M, *spsvBuffer_L, *spsvBuffer_U, *spsvBuffer_Lt, *spsvBuffer_Ut;
235 csrilu02Info_t ilu0Info_M;
236 csric02Info_t ic0Info_M;
237 int structural_zero, numerical_zero;
238 hipsparseSolvePolicy_t policy_M;
241 PetscBool createdTransposeSpSVDescr; /* Have we created SpSV descriptors for Lt, Ut? */
242 …Bool updatedTransposeSpSVAnalysis; /* Have we updated SpSV analysis with the latest L, U values? */
244 PetscLogDouble numericFactFlops; /* Estimated FLOPs in ILU0/ICC0 numeric factorization */