xref: /petsc/include/petscdevice_cupm.h (revision 0e6b6b5985dd9b1172860d21fb88bd3966bf7c54)
1*0e6b6b59SJacob Faibussowitsch #ifndef PETSCDEVICE_CUPM_H
2*0e6b6b59SJacob Faibussowitsch #define PETSCDEVICE_CUPM_H
3*0e6b6b59SJacob Faibussowitsch 
4*0e6b6b59SJacob Faibussowitsch #include <petscmacros.h>
5*0e6b6b59SJacob Faibussowitsch #include <petscdevice_cuda.h>
6*0e6b6b59SJacob Faibussowitsch #include <petscdevice_hip.h>
7*0e6b6b59SJacob Faibussowitsch 
8*0e6b6b59SJacob Faibussowitsch #if PetscDefined(USING_HCC) && PetscDefined(USING_NVCC)
9*0e6b6b59SJacob Faibussowitsch #error using both nvcc and hipcc at the same time?
10*0e6b6b59SJacob Faibussowitsch #endif
11*0e6b6b59SJacob Faibussowitsch 
12*0e6b6b59SJacob Faibussowitsch #if PetscDefined(HAVE_CUDA) || PetscDefined(HAVE_HIP)
13*0e6b6b59SJacob Faibussowitsch #define PETSC_HAVE_CUPM 1
14*0e6b6b59SJacob Faibussowitsch #endif
15*0e6b6b59SJacob Faibussowitsch 
16*0e6b6b59SJacob Faibussowitsch #if PetscDefined(USING_NVCC) || PetscDefined(USING_HCC)
17*0e6b6b59SJacob Faibussowitsch #define PETSC_USING_CUPMCC 1
18*0e6b6b59SJacob Faibussowitsch #endif
19*0e6b6b59SJacob Faibussowitsch 
20*0e6b6b59SJacob Faibussowitsch #endif // PETSCDEVICE_CUPM_H
21