Actual source code: petscdevice_cupm.h

  1: #pragma once

  3: #include <petscdevice_cuda.h>
  4: #include <petscdevice_hip.h>

  6: /* MANSEC = Sys */

  8: #if PetscDefined(USING_HCC) && PetscDefined(USING_NVCC)
  9:   #error using both nvcc and hipcc at the same time?
 10: #endif

 12: /*
 13:   The CUDA-like Programming Model (CUPM) is PETSc's shared abstraction over the
 14:   CUDA and HIP runtimes, whose APIs are structurally near-identical. A single
 15:   templated implementation (see the cupm/ directories under src/) is compiled
 16:   for either backend. See doc/developers/style.md for a concise discussion of CUPM.
 17: */

 19: #if PetscDefined(USING_NVCC) || PetscDefined(USING_HCC)
 20:   #define PETSC_USING_CUPMCC 1
 21: #endif