It seems ViennaCL and Cusp are exclusive. From vecimpl.h: #if defined(PETSC_HAVE_CUSP) PetscCUSPFlag valid_GPU_array; /* indicates where the most recently modified vector data is (GPU or CPU) */ void *spptr; /* if we're using CUSP, then this is the special pointer to the array on the GPU */ #endif #if defined(PETSC_HAVE_VIENNACL) PetscViennaCLFlag valid_GPU_array; /* indicates where the most recently modified vector data is (GPU or CPU) */ void *spptr; /* if we're using ViennaCL, then this is the special pointer to the array on the GPU */ #endif
So I guess configure should complain when both are enabled at configure time, otherwise the build fails. Jose