xref: /petsc/src/sys/objects/device/impls/cupm/cuda/cupmcontext.cu (revision 030f984af8d8bb4c203755d35bded3c05b3d83ce)
1*030f984aSJacob Faibussowitsch #include "../cupmcontext.hpp" /*I "petscdevice.h" I*/
2*030f984aSJacob Faibussowitsch 
3*030f984aSJacob Faibussowitsch PetscErrorCode PetscDeviceContextCreate_CUDA(PetscDeviceContext dctx)
4*030f984aSJacob Faibussowitsch {
5*030f984aSJacob Faibussowitsch   static const Petsc::CUPMContextCuda  contextCuda;
6*030f984aSJacob Faibussowitsch   PetscDeviceContext_(CUDA)           *dci;
7*030f984aSJacob Faibussowitsch   PetscErrorCode                       ierr;
8*030f984aSJacob Faibussowitsch 
9*030f984aSJacob Faibussowitsch   PetscFunctionBegin;
10*030f984aSJacob Faibussowitsch   ierr = PetscNew(&dci);CHKERRQ(ierr);
11*030f984aSJacob Faibussowitsch   dctx->data = static_cast<void*>(dci);
12*030f984aSJacob Faibussowitsch   ierr = PetscMemcpy(dctx->ops,&contextCuda.ops,sizeof(contextCuda.ops));CHKERRQ(ierr);
13*030f984aSJacob Faibussowitsch   PetscFunctionReturn(0);
14*030f984aSJacob Faibussowitsch }
15