Kokkos Core Kernels Package Version of the Day
|
ScopeGuard Some user scope issues have been identified with some Kokkos::finalize calls; ScopeGuard aims to correct these issues. More...
Classes | |
struct | FunctorPolicyExecutionSpace |
Given a Functor and Execution Policy query an execution space. More... | |
struct | MemorySpaceAccess |
Access relationship between DstMemorySpace and SrcMemorySpace. More... | |
class | ParallelFor |
Implementation of the ParallelFor operator that has a partial specialization for the device. More... | |
class | ParallelReduce |
Implementation detail of parallel_reduce. More... | |
class | ParallelScan |
Implementation detail of parallel_scan. More... | |
struct | ViewToDynRankViewTag |
Assign compatible default mappings. More... | |
Enumerations | |
enum | : unsigned |
Memory alignment settings. More... | |
Functions | |
void | init_lock_array_host_space () |
Initialize lock array for arbitrary size atomics. | |
bool | lock_address_host_space (void *ptr) |
Acquire a lock for the address. | |
void | unlock_address_host_space (void *ptr) |
Release lock for the address. | |
template<unsigned , typename iType0 , class MapType > | |
KOKKOS_INLINE_FUNCTION bool | dyn_rank_view_verify_operator_bounds (const iType0 &, const MapType &) |
Debug bounds-checking routines. | |
ScopeGuard Some user scope issues have been identified with some Kokkos::finalize calls; ScopeGuard aims to correct these issues.
Two requirements for ScopeGuard: if Kokkos::is_initialized() in the constructor, don't call Kokkos::initialize or Kokkos::finalize it is not copyable or assignable
Memory alignment settings.
Sets global value for memory alignment. Must be a power of two! Enable compatibility of views from different devices with static stride. Use compiler flag to enable overwrites.
Definition at line 93 of file Kokkos_MemoryTraits.hpp.
void Kokkos::Impl::init_lock_array_host_space | ( | ) |
Initialize lock array for arbitrary size atomics.
Arbitrary atomics are implemented using a hash table of locks where the hash value is derived from the address of the object for which an atomic operation is performed. This function initializes the locks to zero (unset).
Acquire a lock for the address.
This function tries to acquire the lock for the hash value derived from the provided ptr. If the lock is successfully acquired the function returns true. Otherwise it returns false.
Release lock for the address.
This function releases the lock for the hash value derived from the provided ptr. This function should only be called after previously successfully acquiring a lock with lock_address.