Lines Matching defs:Mat_SeqAIJCUSPARSETriFactors
212 struct Mat_SeqAIJCUSPARSETriFactors { struct
214 …iFactorStruct *loTriFactorPtr; /* pointer for lower triangular (factored matrix) on GPU */
215 …iFactorStruct *upTriFactorPtr; /* pointer for upper triangular (factored matrix) on GPU */
216 …se; /* pointer for lower triangular (factored matrix) on GPU for the transpose (useful for BiCG) */
217 …ose; /* pointer for upper triangular (factored matrix) on GPU for the transpose (useful for BiCG)*/
220 THRUSTINTARRAY *rpermIndices; /* indices used for any reordering */
221 THRUSTINTARRAY *cpermIndices; /* indices used for any reordering */
222 THRUSTARRAY *workVector;
223 cusparseHandle_t handle; /* a handle to the cusparse library */
224 …Int nnz; /* number of nonzeros ... need this for accurate logging between ICC and ILU */
225 cudaDeviceProp dev_prop;
226 PetscBool init_dev_prop;
232 PetscScalar *csrVal, *diag; // the diagonal D in UtDU of Cholesky
233 … *csrRowPtr32, *csrColIdx32; // i,j of M. cusparseScsrilu02/ic02() etc require 32-bit indices
235 …etscInt *csrRowPtr, *csrColIdx; // i, j of M on device for CUDA APIs that support 64-bit indices
236 …done on host, we prepare a factored matrix in regular csr format on host and then copy it to device
237 PetscInt *csrRowPtr_h; // csrColIdx_h is temporary, so it is not here
240 cusparseMatDescr_t matDescr_M;
241 cusparseSpMatDescr_t spMatDescr_L, spMatDescr_U;
242 cusparseSpSVDescr_t spsvDescr_L, spsvDescr_Lt, spsvDescr_U, spsvDescr_Ut;
244 cusparseDnVecDescr_t dnVecDescr_X, dnVecDescr_Y;
245 PetscScalar *X, *Y; /* data array of dnVec X and Y */
248 int factBufferSize_M; /* M ~= LU or LLt */
249 size_t spsvBufferSize_L, spsvBufferSize_Lt, spsvBufferSize_U, spsvBufferSize_Ut;
253 void *factBuffer_M, *spsvBuffer_L, *spsvBuffer_U, *spsvBuffer_Lt, *spsvBuffer_Ut;
255 csrilu02Info_t ilu0Info_M;
256 csric02Info_t ic0Info_M;
257 int structural_zero, numerical_zero;
258 cusparseSolvePolicy_t policy_M;
261 PetscBool createdTransposeSpSVDescr; /* Have we created SpSV descriptors for Lt, Ut? */
262 PetscBool updatedTransposeSpSVAnalysis; /* Have we ever updated (done) SpSV analysis for Lt, Ut */
263 PetscBool updatedSpSVAnalysis; /* Have we ever updated (done) SpSV Analysis for L, U? */
265 PetscLogDouble numericFactFlops; /* Estimated FLOPs in ILU0/ICC0 numeric factorization */