Lines Matching refs:fs
204 Mat_SeqAIJCUSPARSETriFactors *fs = static_cast<Mat_SeqAIJCUSPARSETriFactors *>(A->spptr); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU() local
213 …if (!fs->csrRowPtr) { // Is't the first time to do the setup? Use csrRowPtr sin… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
229 PetscCallCUDA(cudaMalloc(&fs->csrRowPtr, sizeof(*fs->csrRowPtr) * (m + 1))); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
230 PetscCallCUDA(cudaMalloc(&fs->csrColIdx, sizeof(*fs->csrColIdx) * Mnz)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
231 PetscCallCUDA(cudaMalloc(&fs->csrVal, sizeof(*fs->csrVal) * Mnz)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
232 …PetscCallCUDA(cudaMemcpy(fs->csrRowPtr, Mi, sizeof(*fs->csrRowPtr) * (m + 1), cudaMemcpyHostToDevi… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
233 …PetscCallCUDA(cudaMemcpy(fs->csrColIdx, Mj, sizeof(*fs->csrColIdx) * Mnz, cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
244 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_L, m, m, Mnz, fs->csrRowPtr, fs->csrColIdx, fs… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
245 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
246 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
250 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_U, m, m, Mnz, fs->csrRowPtr, fs->csrColIdx, fs… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
251 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
252 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
255 PetscCallCUDA(cudaMalloc((void **)&fs->X, sizeof(*fs->X) * m)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
256 PetscCallCUDA(cudaMalloc((void **)&fs->Y, sizeof(*fs->Y) * m)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
258 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_X, m, fs->X, cusparse_scalartype)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
259 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_Y, m, fs->Y, cusparse_scalartype)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
262 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_L)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
263 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
264 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_U)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
265 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
266 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_U, fs->spsvBufferSize_U)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
267 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_L, fs->spsvBufferSize_L)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
270 fs->csrRowPtr_h = Mi; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
271 fs->csrVal_h = Ma; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
275 Mi = fs->csrRowPtr_h; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
276 Ma = fs->csrVal_h; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
285 PetscCallCUDA(cudaMemcpy(fs->csrVal, Ma, sizeof(*Ma) * Mnz, cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
288 …if (fs->updatedSpSVAnalysis) { // have done cusparseSpSV_analysis before, and only matrix values c… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
290 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_L, fs->csrVa… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
291 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_U, fs->csrVa… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
296 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
298 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
299 fs->updatedSpSVAnalysis = PETSC_TRUE; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
300 fs->updatedTransposeSpSVAnalysis = PETSC_FALSE; in MatSeqAIJCUSPARSEBuildFactoredMatrix_LU()
622 Mat_SeqAIJCUSPARSETriFactors *fs = static_cast<Mat_SeqAIJCUSPARSETriFactors *>(A->spptr); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky() local
631 …if (!fs->csrRowPtr) { // Is't the first time to do the setup? Use csrRowPtr sin… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
644 PetscCallCUDA(cudaMalloc(&fs->csrRowPtr, sizeof(*fs->csrRowPtr) * (m + 1))); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
645 PetscCallCUDA(cudaMalloc(&fs->csrColIdx, sizeof(*fs->csrColIdx) * Mnz)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
646 PetscCallCUDA(cudaMalloc(&fs->csrVal, sizeof(*fs->csrVal) * Mnz)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
647 PetscCallCUDA(cudaMalloc(&fs->diag, sizeof(*fs->diag) * m)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
648 PetscCallCUDA(cudaMemcpy(fs->csrRowPtr, Ai, sizeof(*Ai) * (m + 1), cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
649 PetscCallCUDA(cudaMemcpy(fs->csrColIdx, Mj, sizeof(*Mj) * Mnz, cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
660 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_U, m, m, Mnz, fs->csrRowPtr, fs->csrColIdx, fs… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
661 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
662 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
665 PetscCallCUDA(cudaMalloc((void **)&fs->X, sizeof(*fs->X) * m)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
666 PetscCallCUDA(cudaMalloc((void **)&fs->Y, sizeof(*fs->Y) * m)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
668 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_X, m, fs->X, cusparse_scalartype)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
669 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_Y, m, fs->Y, cusparse_scalartype)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
672 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_U)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
673 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
674 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_U, fs->spsvBufferSize_U)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
676 …PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_Ut)); // Ut solve uses the same matrix (… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
677 …fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_X,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
678 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_Ut, fs->spsvBufferSize_Ut)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
681 fs->csrVal_h = Ma; in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
682 fs->diag_h = D; in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
686 Ma = fs->csrVal_h; in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
687 D = fs->diag_h; in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
694 PetscCallCUDA(cudaMemcpy(fs->csrVal, Ma, sizeof(*Ma) * Mnz, cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
695 PetscCallCUDA(cudaMemcpy(fs->diag, D, sizeof(*D) * m, cudaMemcpyHostToDevice)); in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
698 if (fs->updatedSpSVAnalysis) { in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
699 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_U, fs->csrVa… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
700 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_Ut, fs->csrV… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
705 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
706 …fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_X,… in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
707 fs->updatedSpSVAnalysis = PETSC_TRUE; in MatSeqAIJCUSPARSEBuildFactoredMatrix_Cholesky()
716 Mat_SeqAIJCUSPARSETriFactors *fs = static_cast<Mat_SeqAIJCUSPARSETriFactors *>(A->spptr); in MatSolve_SeqAIJCUSPARSE_Cholesky() local
733 if (fs->rpermIndices) { in MatSolve_SeqAIJCUSPARSE_Cholesky()
734 …terator(bGPU, fs->rpermIndices->begin()), thrust::make_permutation_iterator(bGPU, fs->rpermIndices… in MatSolve_SeqAIJCUSPARSE_Cholesky()
735 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolve_SeqAIJCUSPARSE_Cholesky()
737 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, (void *)barray)); in MatSolve_SeqAIJCUSPARSE_Cholesky()
741 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_Y, fs->Y)); in MatSolve_SeqAIJCUSPARSE_Cholesky()
742 …lve(fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatSolve_SeqAIJCUSPARSE_Cholesky()
747 …vice_pointer_cast(fs->Y), thrust::device_pointer_cast(fs->Y + m), thrust::device_pointer_cast(fs->… in MatSolve_SeqAIJCUSPARSE_Cholesky()
749 …vice_pointer_cast(fs->Y), thrust::device_pointer_cast(fs->Y + m), thrust::device_pointer_cast(fs->… in MatSolve_SeqAIJCUSPARSE_Cholesky()
753 if (fs->cpermIndices) { // if need to permute, we need to use the intermediate buffer X in MatSolve_SeqAIJCUSPARSE_Cholesky()
754 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolve_SeqAIJCUSPARSE_Cholesky()
756 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, xarray)); in MatSolve_SeqAIJCUSPARSE_Cholesky()
758 …e(fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDe… in MatSolve_SeqAIJCUSPARSE_Cholesky()
761 if (fs->cpermIndices) { in MatSolve_SeqAIJCUSPARSE_Cholesky()
762 …Stream), thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X), fs->cpermIndices->b… in MatSolve_SeqAIJCUSPARSE_Cholesky()
763 …thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X + m), fs->cpermIndices->end())… in MatSolve_SeqAIJCUSPARSE_Cholesky()
1416 Mat_SeqAIJCUSPARSETriFactors *fs = static_cast<Mat_SeqAIJCUSPARSETriFactors *>(A->spptr); in MatSolve_SeqAIJCUSPARSE_LU() local
1430 if (fs->rpermIndices) { in MatSolve_SeqAIJCUSPARSE_LU()
1431 …terator(bGPU, fs->rpermIndices->begin()), thrust::make_permutation_iterator(bGPU, fs->rpermIndices… in MatSolve_SeqAIJCUSPARSE_LU()
1432 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolve_SeqAIJCUSPARSE_LU()
1434 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, (void *)barray)); in MatSolve_SeqAIJCUSPARSE_LU()
1438 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_Y, fs->Y)); in MatSolve_SeqAIJCUSPARSE_LU()
1440 …sparseSpSV_solve(fs->handle, op, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDescr_X, fs->dnVe… in MatSolve_SeqAIJCUSPARSE_LU()
1443 if (fs->cpermIndices) { in MatSolve_SeqAIJCUSPARSE_LU()
1444 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolve_SeqAIJCUSPARSE_LU()
1446 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, xarray)); in MatSolve_SeqAIJCUSPARSE_LU()
1448 …sparseSpSV_solve(fs->handle, op, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_Y, fs->dnVe… in MatSolve_SeqAIJCUSPARSE_LU()
1451 if (fs->cpermIndices) { in MatSolve_SeqAIJCUSPARSE_LU()
1452 …Stream), thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X), fs->cpermIndices->b… in MatSolve_SeqAIJCUSPARSE_LU()
1453 …thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X + m), fs->cpermIndices->end())… in MatSolve_SeqAIJCUSPARSE_LU()
1464 Mat_SeqAIJCUSPARSETriFactors *fs = static_cast<Mat_SeqAIJCUSPARSETriFactors *>(A->spptr); in MatSolveTranspose_SeqAIJCUSPARSE_LU() local
1476 if (!fs->createdTransposeSpSVDescr) { // Call MatSolveTranspose() for the first time in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1477 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_Lt)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1478 …PetscCallCUSPARSE(cusparseSpSV_bufferSize(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, … in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1479 …fs->dnVecDescr_X, fs->dnVecDescr_Y, cusparse_scalartype, alg, fs->spsvDescr_Lt, &fs->spsvBufferSiz… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1481 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_Ut)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1482 …erSize(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_X, fs->dnVecDescr_Y,… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1483 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_Lt, fs->spsvBufferSize_Lt)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1484 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_Ut, fs->spsvBufferSize_Ut)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1485 fs->createdTransposeSpSVDescr = PETSC_TRUE; in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1488 if (!fs->updatedTransposeSpSVAnalysis) { in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1489 …alysis(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDescr_X, fs->dnVecDescr_Y,… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1491 …alysis(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_X, fs->dnVecDescr_Y,… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1492 fs->updatedTransposeSpSVAnalysis = PETSC_TRUE; in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1501 if (fs->rpermIndices) { in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1502 …terator(bGPU, fs->rpermIndices->begin()), thrust::make_permutation_iterator(bGPU, fs->rpermIndices… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1503 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1505 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, (void *)barray)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1509 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_Y, fs->Y)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1510 …parseSpSV_solve(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDescr_X, fs->dnVe… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1513 if (fs->cpermIndices) { // if need to permute, we need to use the intermediate buffer X in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1514 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, fs->X)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1516 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, xarray)); in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1518 …parseSpSV_solve(fs->handle, opA, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDescr_Y, fs->dnVe… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1521 if (fs->cpermIndices) { in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1522 …Stream), thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X), fs->cpermIndices->b… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1523 …thrust::make_permutation_iterator(thrust::device_pointer_cast(fs->X + m), fs->cpermIndices->end())… in MatSolveTranspose_SeqAIJCUSPARSE_LU()
1698 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)fact->spptr; in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0() local
1716 …PetscCallCUDA(cudaMemcpyAsync(fs->csrVal, Acsr->values->data().get(), sizeof(PetscScalar) * nz, cu… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1721 …PetscCallCUSPARSE(cusparseXcsrilu02(fs->handle, m, nz, /* cusparseXcsrilu02 errors out with empty … in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1722 …fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csrColIdx32, fs->ilu0Info_M, fs->policy_M, fs->fa… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1726 status = cusparseXcsrilu02_zeroPivot(fs->handle, fs->ilu0Info_M, &numerical_zero); in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1731 if (fs->updatedSpSVAnalysis) { in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1732 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_L, fs->csrVa… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1733 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_U, fs->csrVa… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1740 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1742 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1744 fs->updatedSpSVAnalysis = PETSC_TRUE; in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1746 fs->updatedTransposeSpSVAnalysis = PETSC_FALSE; in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1755 PetscCall(PetscLogGpuFlops(fs->numericFactFlops)); in MatILUFactorNumeric_SeqAIJCUSPARSE_ILU0()
1761 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)fact->spptr; in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0() local
1777 PetscCall(MatSeqAIJCUSPARSETriFactors_Reset(&fs)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1802 PetscCallCUDA(cudaMalloc((void **)&fs->csrRowPtr32, sizeof(*fs->csrRowPtr32) * (m + 1))); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1803 PetscCallCUDA(cudaMalloc((void **)&fs->csrColIdx32, sizeof(*fs->csrColIdx32) * nz)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1804 PetscCallCUDA(cudaMalloc((void **)&fs->csrVal, sizeof(*fs->csrVal) * nz)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1806 …PetscCallCUDA(cudaMemcpyAsync(fs->csrRowPtr32, Ai, sizeof(*Ai) * (m + 1), cudaMemcpyDeviceToDevice… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1807 …PetscCallCUDA(cudaMemcpyAsync(fs->csrColIdx32, Aj, sizeof(*Aj) * nz, cudaMemcpyDeviceToDevice, Pet… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1815 PetscCallCUSPARSE(cusparseCreateMatDescr(&fs->matDescr_M)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1816 PetscCallCUSPARSE(cusparseSetMatIndexBase(fs->matDescr_M, CUSPARSE_INDEX_BASE_ZERO)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1817 PetscCallCUSPARSE(cusparseSetMatType(fs->matDescr_M, CUSPARSE_MATRIX_TYPE_GENERAL)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1827 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_L, m, m, nz, fs->csrRowPtr32, fs->csrColIdx32,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1828 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1829 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1833 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_U, m, m, nz, fs->csrRowPtr32, fs->csrColIdx32,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1834 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1835 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_U, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1840 PetscCallCUSPARSE(cusparseCreateCsrilu02Info(&fs->ilu0Info_M)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1842 …PetscCallCUSPARSE(cusparseXcsrilu02_bufferSize(fs->handle, m, nz, /* cusparseXcsrilu02 errors out … in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1843 …fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csrColIdx32, fs->ilu0Info_M, &fs->factBufferSize_… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1845 PetscCallCUDA(cudaMalloc((void **)&fs->X, sizeof(PetscScalar) * m)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1846 PetscCallCUDA(cudaMalloc((void **)&fs->Y, sizeof(PetscScalar) * m)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1848 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_X, m, fs->X, cusparse_scalartype)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1849 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_Y, m, fs->Y, cusparse_scalartype)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1851 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_L)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1852 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1854 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_U)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1855 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_U, fs->dnVecDesc… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1862 if (fs->spsvBufferSize_L > fs->spsvBufferSize_U) { in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1863 …PetscCallCUDA(cudaMalloc((void **)&fs->factBuffer_M, PetscMax(fs->spsvBufferSize_L, (size_t)fs->fa… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1864 fs->spsvBuffer_L = fs->factBuffer_M; in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1865 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_U, fs->spsvBufferSize_U)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1867 …PetscCallCUDA(cudaMalloc((void **)&fs->factBuffer_M, PetscMax(fs->spsvBufferSize_U, (size_t)fs->fa… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1868 fs->spsvBuffer_U = fs->factBuffer_M; in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1869 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_L, fs->spsvBufferSize_L)); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1879 fs->policy_M = CUSPARSE_SOLVE_POLICY_USE_LEVEL; in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1881 …PetscCallCUSPARSE(cusparseXcsrilu02_analysis(fs->handle, m, nz, /* cusparseXcsrilu02 errors out wi… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1882 …fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csrColIdx32, fs->ilu0Info_M, fs->policy_M, fs->fa… in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1885 status = cusparseXcsrilu02_zeroPivot(fs->handle, fs->ilu0Info_M, &structural_zero); in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1909 fs->numericFactFlops = flops; in MatILUFactorSymbolic_SeqAIJCUSPARSE_ILU0()
1917 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)fact->spptr; in MatSolve_SeqAIJCUSPARSE_ICC0() local
1928 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, (void *)barray)); in MatSolve_SeqAIJCUSPARSE_ICC0()
1929 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_Y, fs->Y)); in MatSolve_SeqAIJCUSPARSE_ICC0()
1930 …PetscCallCUSPARSE(cusparseSpSV_solve(fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE… in MatSolve_SeqAIJCUSPARSE_ICC0()
1931 …fs->dnVecDescr_X, fs->dnVecDescr_Y, cusparse_scalartype, CUSPARSE_SPSV_ALG_DEFAULT, fs->spsvDescr_… in MatSolve_SeqAIJCUSPARSE_ICC0()
1934 PetscCallCUSPARSE(cusparseDnVecSetValues(fs->dnVecDescr_X, xarray)); in MatSolve_SeqAIJCUSPARSE_ICC0()
1935 …PetscCallCUSPARSE(cusparseSpSV_solve(fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE… in MatSolve_SeqAIJCUSPARSE_ICC0()
1936 …fs->dnVecDescr_Y, fs->dnVecDescr_X, cusparse_scalartype, CUSPARSE_SPSV_ALG_DEFAULT, fs->spsvDescr_… in MatSolve_SeqAIJCUSPARSE_ICC0()
1948 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)fact->spptr; in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0() local
1966 …PetscCallCUDA(cudaMemcpyAsync(fs->csrVal, Acsr->values->data().get(), sizeof(PetscScalar) * nz, cu… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1975 …SE(cusparseXcsric02(fs->handle, m, nz, fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csrColIdx3… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1979 status = cusparseXcsric02_zeroPivot(fs->handle, fs->ic0Info_M, &numerical_zero); in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1984 if (fs->updatedSpSVAnalysis) { in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1985 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_L, fs->csrVa… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1986 …if (fs->csrVal) PetscCallCUSPARSE(cusparseSpSV_updateMatrix(fs->handle, fs->spsvDescr_Lt, fs->csrV… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1990 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1995 …fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDescr_X,… in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
1996 fs->updatedSpSVAnalysis = PETSC_TRUE; in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
2004 PetscCall(PetscLogGpuFlops(fs->numericFactFlops)); in MatICCFactorNumeric_SeqAIJCUSPARSE_ICC0()
2010 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)fact->spptr; in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0() local
2026 PetscCall(MatSeqAIJCUSPARSETriFactors_Reset(&fs)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2051 PetscCallCUDA(cudaMalloc((void **)&fs->csrRowPtr32, sizeof(*fs->csrRowPtr32) * (m + 1))); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2052 PetscCallCUDA(cudaMalloc((void **)&fs->csrColIdx32, sizeof(*fs->csrColIdx32) * nz)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2053 PetscCallCUDA(cudaMalloc((void **)&fs->csrVal, sizeof(PetscScalar) * nz)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2055 …PetscCallCUDA(cudaMemcpyAsync(fs->csrRowPtr32, Ai, sizeof(*Ai) * (m + 1), cudaMemcpyDeviceToDevice… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2056 …PetscCallCUDA(cudaMemcpyAsync(fs->csrColIdx32, Aj, sizeof(*Aj) * nz, cudaMemcpyDeviceToDevice, Pet… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2064 PetscCallCUSPARSE(cusparseCreateMatDescr(&fs->matDescr_M)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2065 PetscCallCUSPARSE(cusparseSetMatIndexBase(fs->matDescr_M, CUSPARSE_INDEX_BASE_ZERO)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2066 PetscCallCUSPARSE(cusparseSetMatType(fs->matDescr_M, CUSPARSE_MATRIX_TYPE_GENERAL)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2076 …PetscCallCUSPARSE(cusparseCreateCsr(&fs->spMatDescr_L, m, m, nz, fs->csrRowPtr32, fs->csrColIdx32,… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2077 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_FILL_MODE, &fillMode,… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2078 …PetscCallCUSPARSE(cusparseSpMatSetAttribute(fs->spMatDescr_L, CUSPARSE_SPMAT_DIAG_TYPE, &diagType,… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2083 PetscCallCUSPARSE(cusparseCreateCsric02Info(&fs->ic0Info_M)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2084 …usparseXcsric02_bufferSize(fs->handle, m, nz, fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csr… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2086 PetscCallCUDA(cudaMalloc((void **)&fs->X, sizeof(PetscScalar) * m)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2087 PetscCallCUDA(cudaMalloc((void **)&fs->Y, sizeof(PetscScalar) * m)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2089 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_X, m, fs->X, cusparse_scalartype)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2090 PetscCallCUSPARSE(cusparseCreateDnVec(&fs->dnVecDescr_Y, m, fs->Y, cusparse_scalartype)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2092 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_L)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2093 …fs->handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDesc… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2095 PetscCallCUSPARSE(cusparseSpSV_createDescr(&fs->spsvDescr_Lt)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2096 …fs->handle, CUSPARSE_OPERATION_TRANSPOSE, &PETSC_CUSPARSE_ONE, fs->spMatDescr_L, fs->dnVecDescr_X,… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2101 if (fs->spsvBufferSize_L > fs->spsvBufferSize_Lt) { in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2102 …PetscCallCUDA(cudaMalloc((void **)&fs->factBuffer_M, PetscMax(fs->spsvBufferSize_L, (size_t)fs->fa… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2103 fs->spsvBuffer_L = fs->factBuffer_M; in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2104 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_Lt, fs->spsvBufferSize_Lt)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2106 …PetscCallCUDA(cudaMalloc((void **)&fs->factBuffer_M, PetscMax(fs->spsvBufferSize_Lt, (size_t)fs->f… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2107 fs->spsvBuffer_Lt = fs->factBuffer_M; in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2108 PetscCallCUDA(cudaMalloc((void **)&fs->spsvBuffer_L, fs->spsvBufferSize_L)); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2118 fs->policy_M = CUSPARSE_SOLVE_POLICY_USE_LEVEL; in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2119 …seXcsric02_analysis(fs->handle, m, nz, fs->matDescr_M, fs->csrVal, fs->csrRowPtr32, fs->csrColIdx3… in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2122 status = cusparseXcsric02_zeroPivot(fs->handle, fs->ic0Info_M, &structural_zero); in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2143 fs->numericFactFlops = flops; in MatICCFactorSymbolic_SeqAIJCUSPARSE_ICC0()
2321 Mat_SeqAIJCUSPARSETriFactors *fs = (Mat_SeqAIJCUSPARSETriFactors *)A->spptr; in MatSeqAIJCUSPARSECopyFromGPU() local
2332 else if (fs->csrVal) { in MatSeqAIJCUSPARSECopyFromGPU()
2334 … PetscCallCUDA(cudaMemcpy(a->a, fs->csrVal, a->nz * sizeof(PetscScalar), cudaMemcpyDeviceToHost)); in MatSeqAIJCUSPARSECopyFromGPU()
4273 Mat_SeqAIJCUSPARSETriFactors *fs = *trifactors; in MatSeqAIJCUSPARSETriFactors_Reset() local
4276 if (fs) { in MatSeqAIJCUSPARSETriFactors_Reset()
4278 PetscCall(MatSeqAIJCUSPARSEMultStruct_Destroy(&fs->loTriFactorPtr)); in MatSeqAIJCUSPARSETriFactors_Reset()
4279 PetscCall(MatSeqAIJCUSPARSEMultStruct_Destroy(&fs->upTriFactorPtr)); in MatSeqAIJCUSPARSETriFactors_Reset()
4280 PetscCall(MatSeqAIJCUSPARSEMultStruct_Destroy(&fs->loTriFactorPtrTranspose)); in MatSeqAIJCUSPARSETriFactors_Reset()
4281 PetscCall(MatSeqAIJCUSPARSEMultStruct_Destroy(&fs->upTriFactorPtrTranspose)); in MatSeqAIJCUSPARSETriFactors_Reset()
4282 delete fs->workVector; in MatSeqAIJCUSPARSETriFactors_Reset()
4283 fs->workVector = NULL; in MatSeqAIJCUSPARSETriFactors_Reset()
4285 delete fs->rpermIndices; in MatSeqAIJCUSPARSETriFactors_Reset()
4286 delete fs->cpermIndices; in MatSeqAIJCUSPARSETriFactors_Reset()
4287 fs->rpermIndices = NULL; in MatSeqAIJCUSPARSETriFactors_Reset()
4288 fs->cpermIndices = NULL; in MatSeqAIJCUSPARSETriFactors_Reset()
4289 fs->init_dev_prop = PETSC_FALSE; in MatSeqAIJCUSPARSETriFactors_Reset()
4291 PetscCallCUDA(cudaFree(fs->csrRowPtr)); in MatSeqAIJCUSPARSETriFactors_Reset()
4292 PetscCallCUDA(cudaFree(fs->csrColIdx)); in MatSeqAIJCUSPARSETriFactors_Reset()
4293 PetscCallCUDA(cudaFree(fs->csrRowPtr32)); in MatSeqAIJCUSPARSETriFactors_Reset()
4294 PetscCallCUDA(cudaFree(fs->csrColIdx32)); in MatSeqAIJCUSPARSETriFactors_Reset()
4295 PetscCallCUDA(cudaFree(fs->csrVal)); in MatSeqAIJCUSPARSETriFactors_Reset()
4296 PetscCallCUDA(cudaFree(fs->diag)); in MatSeqAIJCUSPARSETriFactors_Reset()
4297 PetscCallCUDA(cudaFree(fs->X)); in MatSeqAIJCUSPARSETriFactors_Reset()
4298 PetscCallCUDA(cudaFree(fs->Y)); in MatSeqAIJCUSPARSETriFactors_Reset()
4300 PetscCallCUDA(cudaFree(fs->spsvBuffer_L)); in MatSeqAIJCUSPARSETriFactors_Reset()
4301 PetscCallCUDA(cudaFree(fs->spsvBuffer_U)); in MatSeqAIJCUSPARSETriFactors_Reset()
4302 PetscCallCUDA(cudaFree(fs->spsvBuffer_Lt)); in MatSeqAIJCUSPARSETriFactors_Reset()
4303 PetscCallCUDA(cudaFree(fs->spsvBuffer_Ut)); in MatSeqAIJCUSPARSETriFactors_Reset()
4304 PetscCallCUSPARSE(cusparseDestroyMatDescr(fs->matDescr_M)); in MatSeqAIJCUSPARSETriFactors_Reset()
4305 PetscCallCUSPARSE(cusparseDestroySpMat(fs->spMatDescr_L)); in MatSeqAIJCUSPARSETriFactors_Reset()
4306 PetscCallCUSPARSE(cusparseDestroySpMat(fs->spMatDescr_U)); in MatSeqAIJCUSPARSETriFactors_Reset()
4307 PetscCallCUSPARSE(cusparseSpSV_destroyDescr(fs->spsvDescr_L)); in MatSeqAIJCUSPARSETriFactors_Reset()
4308 PetscCallCUSPARSE(cusparseSpSV_destroyDescr(fs->spsvDescr_Lt)); in MatSeqAIJCUSPARSETriFactors_Reset()
4309 PetscCallCUSPARSE(cusparseSpSV_destroyDescr(fs->spsvDescr_U)); in MatSeqAIJCUSPARSETriFactors_Reset()
4310 PetscCallCUSPARSE(cusparseSpSV_destroyDescr(fs->spsvDescr_Ut)); in MatSeqAIJCUSPARSETriFactors_Reset()
4311 PetscCallCUSPARSE(cusparseDestroyDnVec(fs->dnVecDescr_X)); in MatSeqAIJCUSPARSETriFactors_Reset()
4312 PetscCallCUSPARSE(cusparseDestroyDnVec(fs->dnVecDescr_Y)); in MatSeqAIJCUSPARSETriFactors_Reset()
4313 PetscCallCUSPARSE(cusparseDestroyCsrilu02Info(fs->ilu0Info_M)); in MatSeqAIJCUSPARSETriFactors_Reset()
4314 PetscCallCUSPARSE(cusparseDestroyCsric02Info(fs->ic0Info_M)); in MatSeqAIJCUSPARSETriFactors_Reset()
4315 PetscCall(PetscFree(fs->csrRowPtr_h)); in MatSeqAIJCUSPARSETriFactors_Reset()
4316 PetscCall(PetscFree(fs->csrVal_h)); in MatSeqAIJCUSPARSETriFactors_Reset()
4317 PetscCall(PetscFree(fs->diag_h)); in MatSeqAIJCUSPARSETriFactors_Reset()
4318 fs->createdTransposeSpSVDescr = PETSC_FALSE; in MatSeqAIJCUSPARSETriFactors_Reset()
4319 fs->updatedTransposeSpSVAnalysis = PETSC_FALSE; in MatSeqAIJCUSPARSETriFactors_Reset()