I am running ex56 with -ex56_dm_vec_type cuda -ex56_dm_mat_type aijcusparse
and I see no GPU communication in MatSolve (the serial LU coarse grid
solver). I am thinking the dispatch of the CUDA version of this got dropped
somehow.

I see that this is getting called:

PETSC_EXTERN PetscErrorCode MatSolverTypeRegister_CUSPARSE(void)
{
  PetscErrorCode ierr;

  PetscFunctionBegin;
  ierr =
MatSolverTypeRegister(MATSOLVERCUSPARSE,MATSEQAIJCUSPARSE,MAT_FACTOR_LU,MatGetFactor_seqaijcusparse_cusparse);CHKERRQ(ierr);
  ierr =
MatSolverTypeRegister(MATSOLVERCUSPARSE,MATSEQAIJCUSPARSE,MAT_FACTOR_CHOLESKY,MatGetFactor_seqaijcusparse_cusparse);CHKERRQ(ierr);
  ierr =
MatSolverTypeRegister(MATSOLVERCUSPARSE,MATSEQAIJCUSPARSE,MAT_FACTOR_ILU,MatGetFactor_seqaijcusparse_cusparse);CHKERRQ(ierr);
  ierr =
MatSolverTypeRegister(MATSOLVERCUSPARSE,MATSEQAIJCUSPARSE,MAT_FACTOR_ICC,MatGetFactor_seqaijcusparse_cusparse);CHKERRQ(ierr);
  PetscFunctionReturn(0);
}

but MatGetFactor_seqaijcusparse_cusparse is not getting  called.

GAMG does set the coarse grid solver to LU manually like this: ierr =
PCSetType(pc2, PCLU);CHKERRQ(ierr);

Any ideas?

Thanks,
Mark

Reply via email to