MFEM v4.8.0
Finite element discretization library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
forall.hpp File Reference

Go to the source code of this file.

Classes

struct  mfem::DeviceDofQuadLimits
 Maximum number of 1D DOFs or quadrature points for the current runtime configuration of the Device (used in fallback kernels). More...
 
struct  mfem::RajaCuWrap< 1 >
 
struct  mfem::RajaCuWrap< 2 >
 
struct  mfem::RajaCuWrap< 3 >
 
struct  mfem::RajaHipWrap< 1 >
 
struct  mfem::RajaHipWrap< 2 >
 
struct  mfem::RajaHipWrap< 3 >
 
struct  mfem::CuWrap< 1 >
 
struct  mfem::CuWrap< 2 >
 
struct  mfem::CuWrap< 3 >
 
struct  mfem::HipWrap< 1 >
 
struct  mfem::HipWrap< 2 >
 
struct  mfem::HipWrap< 3 >
 

Namespaces

namespace  mfem
 

Typedefs

using mfem::DofQuadLimits = internal::DofQuadLimits_CUDA
 Maximum number of 1D DOFs or quadrature points for the architecture currently being compiled for (used in fallback kernels).
 
using mfem::cuda_launch_policy
 RAJA Cuda and Hip backends.
 
using mfem::cuda_teams_x
 
using mfem::cuda_threads_z
 
using mfem::hip_launch_policy
 
using mfem::hip_teams_x
 
using mfem::hip_threads_z
 

Functions

template<typename HBODY >
void mfem::OmpWrap (const int N, HBODY &&h_body)
 OpenMP backend.
 
template<const int BLOCKS = MFEM_CUDA_BLOCKS, typename DBODY >
void mfem::RajaCuWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void mfem::RajaCuWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void mfem::RajaCuWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int BLOCKS = MFEM_HIP_BLOCKS, typename DBODY >
void mfem::RajaHipWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void mfem::RajaHipWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void mfem::RajaHipWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<typename HBODY >
void mfem::RajaOmpWrap (const int N, HBODY &&h_body)
 RAJA OpenMP backend.
 
template<typename HBODY >
void mfem::RajaSeqWrap (const int N, HBODY &&h_body)
 RAJA sequential loop backend.
 
template<const int BLCK = MFEM_CUDA_BLOCKS, typename DBODY >
void mfem::CuWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void mfem::CuWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void mfem::CuWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int BLCK = MFEM_HIP_BLOCKS, typename DBODY >
void mfem::HipWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void mfem::HipWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void mfem::HipWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int DIM, typename d_lambda , typename h_lambda >
void mfem::ForallWrap (const bool use_dev, const int N, d_lambda &&d_body, h_lambda &&h_body, const int X=0, const int Y=0, const int Z=0, const int G=0)
 The forall kernel body wrapper.
 
template<const int DIM, typename lambda >
void mfem::ForallWrap (const bool use_dev, const int N, lambda &&body, const int X=0, const int Y=0, const int Z=0, const int G=0)
 
template<typename lambda >
void mfem::forall (int N, lambda &&body)
 
template<typename lambda >
void mfem::forall_switch (bool use_dev, int N, lambda &&body)
 
template<typename lambda >
void mfem::forall_2D (int N, int X, int Y, lambda &&body)
 
template<typename lambda >
void mfem::forall_2D_batch (int N, int X, int Y, int BZ, lambda &&body)
 
template<typename lambda >
void mfem::forall_3D (int N, int X, int Y, int Z, lambda &&body)
 
template<typename lambda >
void mfem::forall_3D_grid (int N, int X, int Y, int Z, int G, lambda &&body)
 
template<typename lambda >
void mfem::hypre_forall_cpu (int N, lambda &&body)
 
template<typename lambda >
void mfem::hypre_forall_gpu (int N, lambda &&body)
 
template<typename lambda >
void mfem::hypre_forall (int N, lambda &&body)
 
MemoryClass mfem::GetHypreForallMemoryClass ()
 
template<class T , class B , class R >
void mfem::reduce (int N, T &res, B &&body, const R &reducer, bool use_dev, Array< T > &workspace)
 Performs a 1D reduction on the range [0,N). res initial value and where the result will be written. body reduction function body. reducer helper for joining two reduced values. use_dev true to perform the reduction on the device, if possible. workspace temporary workspace used for device reductions. May be resized to a larger capacity as needed. Preferably should have MemoryType::MANAGED or MemoryType::HOST_PINNED. TODO: replace with internal temporary workspace vectors once that's added to the memory manager.