44 #ifndef KOKKOS_CORE_FWD_HPP 45 #define KOKKOS_CORE_FWD_HPP 51 #include <Kokkos_Macros.hpp> 59 KOKKOS_INLINE_FUNCTION
60 constexpr
const AUTO_t & operator()()
const {
return *this ; }
65 constexpr AUTO_t AUTO = Kokkos::AUTO_t();
77 #ifdef KOKKOS_HAVE_HBWSPACE 83 #if defined( KOKKOS_HAVE_SERIAL ) 85 #endif // defined( KOKKOS_HAVE_SERIAL ) 87 #if defined( KOKKOS_HAVE_PTHREAD ) 91 #if defined( KOKKOS_HAVE_OPENMP ) 95 #if defined( KOKKOS_HAVE_CUDA ) 98 class CudaHostPinnedSpace ;
102 template<
class ExecutionSpace,
class MemorySpace>
116 #if defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_CUDA ) 117 typedef Cuda DefaultExecutionSpace ;
118 #elif defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP ) 119 typedef OpenMP DefaultExecutionSpace ;
120 #elif defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS ) 121 typedef Threads DefaultExecutionSpace ;
122 #elif defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL ) 123 typedef Serial DefaultExecutionSpace ;
125 # error "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::Cuda, Kokkos::OpenMP, Kokkos::Serial, or Kokkos::Threads." 128 #if defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_OPENMP ) 129 typedef OpenMP DefaultHostExecutionSpace ;
130 #elif defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_THREADS ) 131 typedef Threads DefaultHostExecutionSpace ;
132 #elif defined ( KOKKOS_HAVE_DEFAULT_DEVICE_TYPE_SERIAL ) 133 typedef Serial DefaultHostExecutionSpace ;
134 #elif defined ( KOKKOS_HAVE_OPENMP ) 135 typedef OpenMP DefaultHostExecutionSpace ;
136 #elif defined ( KOKKOS_HAVE_PTHREAD ) 137 typedef Threads DefaultHostExecutionSpace ;
138 #elif defined ( KOKKOS_HAVE_SERIAL ) 139 typedef Serial DefaultHostExecutionSpace ;
141 # error "At least one of the following execution spaces must be defined in order to use Kokkos: Kokkos::OpenMP, Kokkos::Serial, or Kokkos::Threads." 155 #if defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_CUDA ) && defined (KOKKOS_HAVE_CUDA) 156 typedef Kokkos::CudaSpace ActiveExecutionMemorySpace ;
157 #elif defined( KOKKOS_ACTIVE_EXECUTION_MEMORY_SPACE_HOST ) 160 typedef void ActiveExecutionMemorySpace ;
163 template<
class ActiveSpace ,
class MemorySpace >
164 struct VerifyExecutionCanAccessMemorySpace {
168 template<
class Space >
169 struct VerifyExecutionCanAccessMemorySpace< Space , Space >
172 KOKKOS_INLINE_FUNCTION
static void verify(
void) {}
173 KOKKOS_INLINE_FUNCTION
static void verify(
const void *) {}
179 #define KOKKOS_RESTRICT_EXECUTION_TO_DATA( DATA_SPACE , DATA_PTR ) \ 180 Kokkos::Impl::VerifyExecutionCanAccessMemorySpace< \ 181 Kokkos::Impl::ActiveExecutionMemorySpace , DATA_SPACE >::verify( DATA_PTR ) 183 #define KOKKOS_RESTRICT_EXECUTION_TO_( DATA_SPACE ) \ 184 Kokkos::Impl::VerifyExecutionCanAccessMemorySpace< \ 185 Kokkos::Impl::ActiveExecutionMemorySpace , DATA_SPACE >::verify()
Memory space for main process and CPU execution spaces.
Memory management for host memory.