44 #ifndef KOKKOS_OPENMPTARGET_HPP 45 #define KOKKOS_OPENMPTARGET_HPP 47 #include <Kokkos_Core_fwd.hpp> 49 #if defined( KOKKOS_ENABLE_OPENMPTARGET ) && defined( _OPENMP ) 55 #include <Kokkos_OpenMPTargetSpace.hpp> 56 #include <Kokkos_ScratchSpace.hpp> 58 #include <Kokkos_TaskPolicy.hpp> 60 #include <impl/Kokkos_Tags.hpp> 62 #include <KokkosExp_MDRangePolicy.hpp> 76 typedef OpenMPTarget execution_space ;
77 typedef OpenMPTargetSpace memory_space ;
81 typedef LayoutLeft array_layout ;
82 typedef memory_space::size_type size_type ;
84 typedef ScratchMemorySpace< OpenMPTarget > scratch_memory_space ;
91 inline static bool in_parallel() {
return omp_in_parallel(); }
100 static void fence() {}
117 static void initialize(
unsigned thread_count = 0 ,
118 unsigned use_numa_count = 0 ,
119 unsigned use_cores_per_numa = 0 );
121 static int is_initialized();
124 static int concurrency();
135 inline static int thread_pool_size(
int depth = 0 );
138 KOKKOS_INLINE_FUNCTION
static int thread_pool_rank();
142 inline static unsigned max_hardware_threads() {
return thread_pool_size(0); }
144 KOKKOS_INLINE_FUNCTION
static 145 unsigned hardware_thread_id() {
return thread_pool_rank(); }
147 static const char* name();
149 static bool m_is_initialized;
161 struct VerifyExecutionCanAccessMemorySpace
162 <
Kokkos::Experimental::OpenMPTarget::memory_space
163 , Kokkos::Experimental::OpenMPTarget::scratch_memory_space
166 enum { value =
true };
167 inline static void verify(
void ) { }
168 inline static void verify(
const void * ) { }
177 #include <OpenMPTarget/Kokkos_OpenMPTarget_Exec.hpp> 178 #include <OpenMPTarget/Kokkos_OpenMPTarget_Parallel.hpp> 179 #include <OpenMPTarget/Kokkos_OpenMPTarget_Task.hpp>
void print_configuration(std::ostream &, const bool detail=false)
Print "Bill of Materials".
Memory space for main process and CPU execution spaces.
Declaration of various MemoryLayout options.
Declaration of parallel operators.
void finalize()
Finalize the spaces that were initialized via Kokkos::initialize.