Actual source code: viennaclmatimpl.h
petsc-3.5.4 2015-05-23
4: #include <../src/mat/impls/aij/seq/aij.h> /*I "petscmat.h" I*/
6: /* Pulls in some ViennaCL includes as well as VIENNACL_WITH_OPENCL: */
7: #include <../src/vec/vec/impls/seq/seqviennacl/viennaclvecimpl.h>
9: /* for everything else */
10: #include "viennacl/compressed_matrix.hpp"
11: #include "viennacl/compressed_compressed_matrix.hpp"
14: typedef viennacl::compressed_matrix<PetscScalar> ViennaCLAIJMatrix;
15: typedef viennacl::compressed_compressed_matrix<PetscScalar> ViennaCLCompressedAIJMatrix;
18: struct Mat_SeqAIJViennaCL {
19: ViennaCLVector *tempvec;
20: ViennaCLAIJMatrix *mat; /* pointer to the matrix on the GPU */
21: ViennaCLCompressedAIJMatrix *compressed_mat; /* compressed CSR */
22: };
24: PETSC_INTERN PetscErrorCode MatViennaCLCopyToGPU(Mat);
25: PETSC_INTERN PetscErrorCode MatViennaCLCopyFromGPU(Mat, ViennaCLAIJMatrix*);
26: #endif