alpaka
Abstraction Library for Parallel Kernel Acceleration
alpaka::AccCpuOmp2Threads< TDim, TIdx > Class Template Referencefinal

The CPU OpenMP 2.0 thread accelerator. More...

#include <AccCpuOmp2Threads.hpp>

+ Inheritance diagram for alpaka::AccCpuOmp2Threads< TDim, TIdx >:

Public Member Functions

 AccCpuOmp2Threads (AccCpuOmp2Threads &&)=delete
 
 AccCpuOmp2Threads (AccCpuOmp2Threads const &)=delete
 
auto operator= (AccCpuOmp2Threads &&) -> AccCpuOmp2Threads &=delete
 
auto operator= (AccCpuOmp2Threads const &) -> AccCpuOmp2Threads &=delete
 
- Public Member Functions inherited from alpaka::WorkDivMembers< TDim, TIdx >
ALPAKA_FN_HOST_ACC WorkDivMembers ()=delete
 
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC WorkDivMembers (alpaka::Vec< TDim, TIdx > const &gridBlockExtent, alpaka::Vec< TDim, TIdx > const &blockThreadExtent, alpaka::Vec< TDim, TIdx > const &elemExtent)
 Accepts single specific type and is called without explicit template parameters. More...
 
template<typename TGridBlockExtent , typename TBlockThreadExtent , typename TThreadElemExtent >
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC WorkDivMembers (TGridBlockExtent const &gridBlockExtent=TGridBlockExtent(), TBlockThreadExtent const &blockThreadExtent=TBlockThreadExtent(), TThreadElemExtent const &threadElemExtent=TThreadElemExtent())
 Accepts different alpaka vector types and takes the last TDim number of items. More...
 
template<typename TWorkDiv >
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC WorkDivMembers (TWorkDiv const &other)
 
 WorkDivMembers (WorkDivMembers &&)=default
 
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC WorkDivMembers (WorkDivMembers const &other)
 
template<typename TWorkDiv >
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto operator= (TWorkDiv const &other) -> WorkDivMembers< TDim, TIdx > &
 
auto operator= (WorkDivMembers &&) -> WorkDivMembers &=default
 
auto operator= (WorkDivMembers const &) -> WorkDivMembers &=default
 
- Public Member Functions inherited from alpaka::gb::IdxGbRef< TDim, TIdx >
 IdxGbRef (Vec< TDim, TIdx > const &gridBlockIdx)
 
- Public Member Functions inherited from alpaka::BlockSharedMemDynMember< TStaticAllocKiB >
 BlockSharedMemDynMember (std::size_t sizeBytes)
 
auto dynMemBegin () const -> uint8_t *
 
auto staticMemBegin () const -> uint8_t *
 
auto staticMemCapacity () const -> std::uint32_t
 
- Public Member Functions inherited from alpaka::BlockSharedMemStMemberMasterSync< TDataAlignBytes >
 BlockSharedMemStMemberMasterSync (uint8_t *mem, std::size_t capacity, std::function< void()> fnSync, std::function< bool()> fnIsMasterThread)
 
- Public Member Functions inherited from alpaka::detail::BlockSharedMemStMemberImpl< core::vectorization::defaultAlignment >
 BlockSharedMemStMemberImpl (std::uint8_t *mem, std::size_t capacity)
 
void alloc (std::uint32_t id) const
 
auto getLatestVarPtr () const -> T *
 Get last allocated variable. More...
 
auto getVarPtr (std::uint32_t id) const -> T *
 Give the pointer to an exiting variable. More...
 

Friends

template<typename TDim2 , typename TIdx2 , typename TKernelFnObj , typename... TArgs>
class ::alpaka::TaskKernelCpuOmp2Threads
 

Additional Inherited Members

- Static Public Member Functions inherited from alpaka::BlockSharedMemDynMember< TStaticAllocKiB >
static constexpr auto staticAllocBytes () -> std::uint32_t
 
- Public Attributes inherited from alpaka::WorkDivMembers< TDim, TIdx >
Vec< TDim, TIdx > m_blockThreadExtent
 
Vec< TDim, TIdx > m_gridBlockExtent
 
Vec< TDim, TIdx > m_threadElemExtent
 
- Public Attributes inherited from alpaka::gb::IdxGbRef< TDim, TIdx >
Vec< TDim, TIdx > const & m_gridBlockIdx
 
- Public Attributes inherited from alpaka::BlockSharedMemStMemberMasterSync< TDataAlignBytes >
std::function< bool()> m_isMasterThreadFn
 
std::function< void()> m_syncFn
 
- Public Attributes inherited from alpaka::BlockSyncBarrierOmp
std::uint8_t m_generation = 0u
 
int m_result [2]
 

Detailed Description

template<typename TDim, typename TIdx>
class alpaka::AccCpuOmp2Threads< TDim, TIdx >

The CPU OpenMP 2.0 thread accelerator.

This accelerator allows parallel kernel execution on a CPU device. It uses OpenMP 2.0 to implement the block thread parallelism.

Definition at line 59 of file AccCpuOmp2Threads.hpp.

Constructor & Destructor Documentation

◆ AccCpuOmp2Threads() [1/2]

template<typename TDim , typename TIdx >
alpaka::AccCpuOmp2Threads< TDim, TIdx >::AccCpuOmp2Threads ( AccCpuOmp2Threads< TDim, TIdx > const &  )
delete

◆ AccCpuOmp2Threads() [2/2]

template<typename TDim , typename TIdx >
alpaka::AccCpuOmp2Threads< TDim, TIdx >::AccCpuOmp2Threads ( AccCpuOmp2Threads< TDim, TIdx > &&  )
delete

Member Function Documentation

◆ operator=() [1/2]

template<typename TDim , typename TIdx >
auto alpaka::AccCpuOmp2Threads< TDim, TIdx >::operator= ( AccCpuOmp2Threads< TDim, TIdx > &&  ) -> AccCpuOmp2Threads &=delete
delete

◆ operator=() [2/2]

template<typename TDim , typename TIdx >
auto alpaka::AccCpuOmp2Threads< TDim, TIdx >::operator= ( AccCpuOmp2Threads< TDim, TIdx > const &  ) -> AccCpuOmp2Threads &=delete
delete

Friends And Related Function Documentation

◆ ::alpaka::TaskKernelCpuOmp2Threads

template<typename TDim , typename TIdx >
template<typename TDim2 , typename TIdx2 , typename TKernelFnObj , typename... TArgs>
friend class ::alpaka::TaskKernelCpuOmp2Threads
friend

Definition at line 88 of file AccCpuOmp2Threads.hpp.


The documentation for this class was generated from the following file: