44 #ifndef KOKKOS_CORE_HPP 
   45 #define KOKKOS_CORE_HPP 
   50 #include <Kokkos_Core_fwd.hpp> 
   52 #if defined( KOKKOS_ENABLE_SERIAL ) 
   56 #if defined( KOKKOS_ENABLE_OPENMP ) 
   57 #include <Kokkos_OpenMP.hpp> 
   61 #include <Kokkos_OpenMPTarget.hpp> 
   62 #include <Kokkos_OpenMPTargetSpace.hpp> 
   65 #if defined( KOKKOS_ENABLE_QTHREADS ) 
   66 #include <Kokkos_Qthreads.hpp> 
   69 #if defined( KOKKOS_ENABLE_THREADS ) 
   70 #include <Kokkos_Threads.hpp> 
   73 #if defined( KOKKOS_ENABLE_CUDA ) 
   74 #include <Kokkos_Cuda.hpp> 
   77 #if defined( KOKKOS_ENABLE_ROCM ) 
   78 #include <Kokkos_ROCm.hpp> 
   81 #include <Kokkos_AnonymousSpace.hpp> 
   83 #include <Kokkos_MemoryPool.hpp> 
   84 #include <Kokkos_Array.hpp> 
   85 #include <Kokkos_View.hpp> 
   88 #include <Kokkos_hwloc.hpp> 
   89 #include <Kokkos_Timer.hpp> 
   91 #include <Kokkos_Complex.hpp> 
   93 #include <Kokkos_CopyViews.hpp> 
  101 struct InitArguments {
 
  107   bool disable_warnings;
 
  109   InitArguments( 
int nt = -1
 
  118     , skip_device{ 9999 }
 
  119     , disable_warnings{ dw }
 
  123 void initialize(
int& narg, 
char* arg[]);
 
  125 void initialize(
const InitArguments& args = InitArguments());
 
  127 bool is_initialized() noexcept;
 
  129 bool show_warnings() noexcept;
 
  175 template< 
class Space = 
typename Kokkos::DefaultExecutionSpace::memory_space >
 
  177 void * kokkos_malloc( 
const std::string & arg_alloc_label
 
  178                     , 
const size_t arg_alloc_size )
 
  180   typedef typename Space::memory_space MemorySpace ;
 
  181   return Impl::SharedAllocationRecord< MemorySpace >::
 
  182     allocate_tracked( MemorySpace() , arg_alloc_label , arg_alloc_size );
 
  185 template< 
class Space = 
typename Kokkos::DefaultExecutionSpace::memory_space >
 
  187 void * kokkos_malloc( 
const size_t arg_alloc_size )
 
  189   typedef typename Space::memory_space MemorySpace ;
 
  190   return Impl::SharedAllocationRecord< MemorySpace >::
 
  191     allocate_tracked( MemorySpace() , 
"no-label" , arg_alloc_size );
 
  194 template< 
class Space = 
typename Kokkos::DefaultExecutionSpace::memory_space >
 
  196 void kokkos_free( 
void * arg_alloc )
 
  198   typedef typename Space::memory_space MemorySpace ;
 
  199   return Impl::SharedAllocationRecord< MemorySpace >::
 
  200     deallocate_tracked( arg_alloc );
 
  203 template< 
class Space = 
typename Kokkos::DefaultExecutionSpace::memory_space >
 
  205 void * kokkos_realloc( 
void * arg_alloc , 
const size_t arg_alloc_size )
 
  207   typedef typename Space::memory_space MemorySpace ;
 
  208   return Impl::SharedAllocationRecord< MemorySpace >::
 
  209     reallocate_tracked( arg_alloc , arg_alloc_size );
 
  230     if ( ! Kokkos::is_initialized() ) { 
 
  231       initialize( narg, arg );
 
  236   ScopeGuard ( 
const InitArguments& args = InitArguments() )
 
  239     if ( ! Kokkos::is_initialized() ) { 
 
  247     if ( Kokkos::is_initialized() && sg_init) { 
 
  262 #include <Kokkos_Crs.hpp> 
  263 #include <Kokkos_WorkGraphPolicy.hpp> 
Declaration and definition of Kokkos::Vectorization interface. 
void print_configuration(std::ostream &, const bool detail=false)
Print "Bill of Materials". 
Declaration and definition of Kokkos::pair. 
Declaration and definition of Kokkos::Serial device. 
void finalize_all()
Finalize all known execution spaces. 
void finalize()
Finalize the spaces that were initialized via Kokkos::initialize. 
void push_finalize_hook(std::function< void()> f)
Push a user-defined function to be called in Kokkos::finalize, before any Kokkos state is finalized...
ScopeGuard Some user scope issues have been identified with some Kokkos::finalize calls; ScopeGuard a...