Karl, We have detected another problem. Could you take care of it? MatDuplicate() does not work for MATSEQAIJCUSPARSE (probably also for MATMPIAIJCUSPARSE). The attached example creates a matrix and duplicates it. There are two cases:
1) With a diagonal matrix it fails on GPU because MatDuplicate() did not copy the CUDA-specific data. $ ./ex_duplicate -diag -mat_type aijcusparse -vec_type cuda 2) With a fully dense matrix (or any matrix where I-node routines are used), it does not fail but operations are done on CPU instead of GPU (because it changes the pointers to MatMult_SeqAIJ_Inode etc). $ ./ex_duplicate -mat_type aijcusparse -vec_type cuda Thanks. Jose > El 26 jul 2017, a las 21:12, Karl Rupp <r...@iue.tuwien.ac.at> escribió: > > Hi Jose, > >> With pull request #719 we have finished a set of fixes to VECCUDA stuff. >> With these changes it is now possible to run many tests in SLEPc's testsuite >> on GPU (AIJCUSPARSE+VECCUDA). These tests will be included in the nightly >> tests from now on. > > great! > >> However, PETSc nightly tests related to VECCUDA are not being run. The >> reason is that arch-cuda-double.py and arch-cuda-double.py have >> --with-cusp=1 and this option disables VECCUDA code. CUSP tests are separate >> from VECCUDA tests. > > As you may remember, I want to get rid of VECCUSP (and if possible also > MATAIJCUSP), because the functionality is now provided natively through the > CUDA SDK (VECCUDA, MATAIJCUSPARSE). Only the preconditioners from CUSP, most > notably PCSACUSP, will stay. This way we can then easily switch over all the > tests to VECCUDA. > > >> Another thing is that not all VECCUDA tests pass, because of a pending issue >> related to MatMultTranspose_MPIAIJCUSPARSE. This was reported last year: >> https://bitbucket.org/petsc/petsc/pull-requests/490/gpu-regression-tests > > Alright, thanks for the reminder. Let me get this fixed. :-) > > Best regards, > Karli
makefile
Description: Binary data
ex_duplicate.c
Description: Binary data