MFEM v4.7.0
Finite element discretization library
|
MFEM backends. More...
#include <device.hpp>
Public Types | |
enum | Id : unsigned long { CPU = 1 << 0 , OMP = 1 << 1 , CUDA = 1 << 2 , HIP = 1 << 3 , RAJA_CPU = 1 << 4 , RAJA_OMP = 1 << 5 , RAJA_CUDA = 1 << 6 , RAJA_HIP = 1 << 7 , OCCA_CPU = 1 << 8 , OCCA_OMP = 1 << 9 , OCCA_CUDA = 1 << 10 , CEED_CPU = 1 << 11 , CEED_CUDA = 1 << 12 , CEED_HIP = 1 << 13 , DEBUG_DEVICE = 1 << 14 } |
In the documentation below, we use square brackets to indicate the type of the backend: host or device. More... | |
enum | { NUM_BACKENDS = 15 , CPU_MASK = CPU | RAJA_CPU | OCCA_CPU | CEED_CPU , CUDA_MASK = CUDA | RAJA_CUDA | OCCA_CUDA | CEED_CUDA , HIP_MASK = HIP | RAJA_HIP | CEED_HIP , OMP_MASK = OMP | RAJA_OMP | OCCA_OMP , CEED_MASK = CEED_CPU | CEED_CUDA | CEED_HIP , DEVICE_MASK = CUDA_MASK | HIP_MASK | DEBUG_DEVICE , RAJA_MASK = RAJA_CPU | RAJA_OMP | RAJA_CUDA | RAJA_HIP , OCCA_MASK = OCCA_CPU | OCCA_OMP | OCCA_CUDA } |
Additional useful constants. For example, the *_MASK constants can be used with Device::Allows(). More... | |
MFEM backends.
Individual backends will generally implement only a subset of the kernels implemented by the default CPU backend. The goal of the backends is to accelerate data-parallel portions of the code and they can use a device memory space (e.g. GPUs) or share the memory space of the host (OpenMP).
Definition at line 27 of file device.hpp.
anonymous enum |
Additional useful constants. For example, the *_MASK constants can be used with Device::Allows().
Definition at line 81 of file device.hpp.
enum mfem::Backend::Id : unsigned long |
In the documentation below, we use square brackets to indicate the type of the backend: host or device.
Definition at line 31 of file device.hpp.