1 #if !defined(__VIENNACLMATIMPL) 2 #define __VIENNACLMATIMPL 3 4 /* Pulls in some ViennaCL includes as well as VIENNACL_WITH_OPENCL: */ 5 #include <../src/vec/vec/impls/seq/seqviennacl/viennaclvecimpl.h> 6 7 /* for everything else */ 8 #include "viennacl/compressed_matrix.hpp" 9 10 11 /* Old way */ 12 typedef viennacl::compressed_matrix<PetscScalar> ViennaCLAIJMatrix; 13 14 15 struct Mat_SeqAIJViennaCL { 16 ViennaCLAIJMatrix *mat; /* pointer to the matrix on the GPU */ 17 }; 18 19 20 PETSC_INTERN PetscErrorCode MatViennaCLCopyToGPU(Mat); 21 PETSC_INTERN PetscErrorCode MatViennaCLCopyFromGPU(Mat, ViennaCLAIJMatrix*); 22 #endif 23