alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::onHost::internal Namespace Reference

Namespaces

namespace  concepts
namespace  hwloc
 Implement functions required to set thread affinity and pin memory.

Classes

struct  AdjustThreadSpec
struct  Alloc
struct  AllocDeferred
struct  AllocMapped
struct  AllocUnified
struct  Data
struct  Enqueue
struct  Fill
struct  GetDevice
struct  GetDeviceCount
struct  GetDeviceProperties
struct  GetExtents
struct  GetFreeGlobalMemBytes
struct  GetNativeHandle
struct  GetPitches
struct  IsDataAccessible
 checks if a view can be accessed from the given device More...
struct  IsEventComplete
struct  IsQueueEmpty
struct  MakeDevice
struct  MakeEvent
struct  MakePlatform
struct  MakeQueue
struct  ManagedDealloc
 Manage the deallocation of memory. More...
struct  Memcpy
struct  MemcpyDeviceGlobal
struct  Memset
class  Scan_AddIncrementsKernel
class  Scan_ScanBlocksKernel
struct  SimdConcurrentKernel
struct  SimdIotaKernel
struct  SimdTransformKernel
struct  SimdTransformReduceKernel
struct  Wait
struct  WaitFor

Enumerations

enum  ScanType {
  EXCLUSIVE_SCAN ,
  INCLUSIVE_SCAN
}

Functions

template<typename T_Idx, typename T_Data>
ALPAKA_FN_ACC void addIncrements (T_Data *block, T_Data const &blockSum, alpaka::concepts::CVector< T_Idx > auto const &extent)
template<typename TKernelFn, typename... TArgs>
static auto adjustThreadSpec (auto const &device, onHost::concepts::FrameSpec auto const &frameSpec, KernelBundle< TKernelFn, TArgs... > const &kernelBundle)
template<typename T_DataType>
void concurrent (auto const &queue, alpaka::concepts::Executor auto const exec, alpaka::concepts::VectorOrScalar auto const &extents, auto &&fn, alpaka::concepts::IDataSource auto &&... in)
template<typename T_Acc, typename T_Idx>
constexpr T_Idx conflictFreeAccess (T_Idx const &n)
template<typename TKernelFn, typename... TArgs>
void enqueue (auto &queue, onHost::concepts::ThreadOrFrameSpec auto const &launchCfg, KernelBundle< TKernelFn, TArgs... > const &kernelBundle)
void enqueueHostFn (auto &queue, auto const &task)
void enqueueHostFnDeferred (auto &queue, auto const &task)
constexpr uint32_t getCPUCachelineSize ()
constexpr uint32_t getCPUNumPipelines ()
template<typename T_Type>
constexpr uint32_t getCPUSimdWidth ()
constexpr auto getDevice (auto &&any)
DeviceProperties getDeviceProperties (auto const &platform, uint32_t idx)
auto getExtents (auto &&any)
template<typename T_Any>
auto getExtents (Handle< T_Any > &&any)
constexpr auto getFrameSpec (auto const &internalDevice, alpaka::concepts::Executor auto executor, alpaka::concepts::VectorOrScalar auto const &extents)
 Provide a frame specification for the given extents.
auto getNativeHandle (auto &&any)
auto getPitches (auto &&any)
template<typename T_Any>
auto getPitches (Handle< T_Any > &&any)
template<typename T_DataType>
constexpr auto getSimdFrameSpec (auto const &internalDevice, alpaka::concepts::Executor auto executor, alpaka::concepts::VectorOrScalar auto const &extents)
 Provides a SIMD optimized frame specification.
template<typename T_DataType>
void iota (auto const &queue, alpaka::concepts::Executor auto const exec, alpaka::concepts::Vector auto const &extents, T_DataType const &initValue, alpaka::concepts::IMdSpan auto &&... inputs)
bool isEventComplete (auto &&any)
bool isQueueEmpty (auto &queue)
static auto makePlatform (auto api, alpaka::concepts::DeviceKind auto deviceType)
template<alpaka::concepts::DeviceKind TDeviceKind, typename T_Idx, typename T_Data>
consteval T_Idx maximumMiniBlockSize ()
template<ScanType SCAN_TYPE>
void scan (auto &queue, alpaka::onHost::concepts::Device auto &devAcc, alpaka::concepts::Executor auto &exec, alpaka::concepts::IMdSpan auto &buffer, alpaka::concepts::IMdSpan auto &outputVec, alpaka::concepts::IDataSource auto &inputVec)
template<ScanType SCAN_TYPE>
void scan (auto &queue, alpaka::onHost::concepts::Device auto &devAcc, alpaka::concepts::Executor auto &exec, alpaka::concepts::IMdSpan auto &outputVec, alpaka::concepts::IDataSource auto const &inputVec)
template<typename T_Data>
auto scanBufferSize (alpaka::concepts::Vector auto const &extents)
template<typename T_Data>
auto scanBufferSize (std::integral auto const &extent)
template<typename T_Idx, typename T_Data>
ALPAKA_FN_ACC T_Data scanMiniBlock (T_Data *block, alpaka::concepts::CVector< T_Idx > auto const &extent)
template<typename T_Type>
constexpr size_t stdSimdWidth ()
 SIMD width in bytes defined by std::simd.
void transform (auto const &queue, alpaka::concepts::Executor auto const exec, alpaka::concepts::IMdSpan auto &&out, auto &&fn, alpaka::concepts::IDataSource auto &&... in)
template<typename T_DataType>
void transformReduce (auto const &queue, alpaka::concepts::Executor auto const exec, T_DataType const &neutralElement, alpaka::concepts::IMdSpan auto out, auto &&reduceFn, auto &&transformFn, auto &&in0, alpaka::concepts::IDataSource auto &&... in)
void wait (auto &&any)
void waitFor (auto &queue, auto &event)

Variables

constexpr std::size_t chunkSize = 2048u

Enumeration Type Documentation

◆ ScanType

Enumerator
EXCLUSIVE_SCAN 
INCLUSIVE_SCAN 

Definition at line 27 of file scan.hpp.

Function Documentation

◆ addIncrements()

template<typename T_Idx, typename T_Data>
ALPAKA_FN_ACC void alpaka::onHost::internal::addIncrements ( T_Data * block,
T_Data const & blockSum,
alpaka::concepts::CVector< T_Idx > auto const & extent )

Definition at line 99 of file scan.hpp.

◆ adjustThreadSpec()

template<typename TKernelFn, typename... TArgs>
auto alpaka::onHost::internal::adjustThreadSpec ( auto const & device,
onHost::concepts::FrameSpec auto const & frameSpec,
KernelBundle< TKernelFn, TArgs... > const & kernelBundle )
static

Definition at line 285 of file interface.hpp.

◆ concurrent()

template<typename T_DataType>
void alpaka::onHost::internal::concurrent ( auto const & queue,
alpaka::concepts::Executor auto const exec,
alpaka::concepts::VectorOrScalar auto const & extents,
auto && fn,
alpaka::concepts::IDataSource auto &&... in )
inline

Definition at line 44 of file concurrent.hpp.

◆ conflictFreeAccess()

template<typename T_Acc, typename T_Idx>
T_Idx alpaka::onHost::internal::conflictFreeAccess ( T_Idx const & n)
constexpr

Definition at line 53 of file scan.hpp.

◆ enqueue()

template<typename TKernelFn, typename... TArgs>
void alpaka::onHost::internal::enqueue ( auto & queue,
onHost::concepts::ThreadOrFrameSpec auto const & launchCfg,
KernelBundle< TKernelFn, TArgs... > const & kernelBundle )
inline

Definition at line 254 of file interface.hpp.

◆ enqueueHostFn()

void alpaka::onHost::internal::enqueueHostFn ( auto & queue,
auto const & task )
inline

Definition at line 243 of file interface.hpp.

◆ enqueueHostFnDeferred()

void alpaka::onHost::internal::enqueueHostFnDeferred ( auto & queue,
auto const & task )
inline

Definition at line 248 of file interface.hpp.

◆ getCPUCachelineSize()

uint32_t alpaka::onHost::internal::getCPUCachelineSize ( )
constexpr

Definition at line 88 of file cpuArchSize.hpp.

◆ getCPUNumPipelines()

uint32_t alpaka::onHost::internal::getCPUNumPipelines ( )
constexpr

Definition at line 76 of file cpuArchSize.hpp.

◆ getCPUSimdWidth()

template<typename T_Type>
uint32_t alpaka::onHost::internal::getCPUSimdWidth ( )
constexpr

Definition at line 35 of file cpuArchSize.hpp.

◆ getDevice()

auto alpaka::onHost::internal::getDevice ( auto && any)
inlineconstexpr

Definition at line 78 of file interface.hpp.

◆ getDeviceProperties()

DeviceProperties alpaka::onHost::internal::getDeviceProperties ( auto const & platform,
uint32_t idx )
inline

Definition at line 447 of file interface.hpp.

◆ getExtents() [1/2]

auto alpaka::onHost::internal::getExtents ( auto && any)
inline

Definition at line 464 of file interface.hpp.

◆ getExtents() [2/2]

template<typename T_Any>
auto alpaka::onHost::internal::getExtents ( Handle< T_Any > && any)
inline

Definition at line 470 of file interface.hpp.

◆ getFrameSpec()

auto alpaka::onHost::internal::getFrameSpec ( auto const & internalDevice,
alpaka::concepts::Executor auto executor,
alpaka::concepts::VectorOrScalar auto const & extents )
inlineconstexpr

Provide a frame specification for the given extents.

Parameters
internalDevicemust be an alpaka internal device implementation

Definition at line 502 of file interface.hpp.

◆ getNativeHandle()

auto alpaka::onHost::internal::getNativeHandle ( auto && any)
inline

Definition at line 95 of file interface.hpp.

◆ getPitches() [1/2]

auto alpaka::onHost::internal::getPitches ( auto && any)
inline

Definition at line 487 of file interface.hpp.

◆ getPitches() [2/2]

template<typename T_Any>
auto alpaka::onHost::internal::getPitches ( Handle< T_Any > && any)
inline

Definition at line 493 of file interface.hpp.

◆ getSimdFrameSpec()

template<typename T_DataType>
auto alpaka::onHost::internal::getSimdFrameSpec ( auto const & internalDevice,
alpaka::concepts::Executor auto executor,
alpaka::concepts::VectorOrScalar auto const & extents )
inlineconstexpr

Provides a SIMD optimized frame specification.

The frame specification is optimized for a flat non-hierarchical execution via onAcc::worker::threadsInGrid.

Template Parameters
T_DataTypethe data type for which you would like to SIMD optimize
Parameters
internalDevicemust be a alpaka internal device implementation

Definition at line 557 of file interface.hpp.

◆ iota()

template<typename T_DataType>
void alpaka::onHost::internal::iota ( auto const & queue,
alpaka::concepts::Executor auto const exec,
alpaka::concepts::Vector auto const & extents,
T_DataType const & initValue,
alpaka::concepts::IMdSpan auto &&... inputs )
inline

Definition at line 53 of file iota.hpp.

◆ isEventComplete()

bool alpaka::onHost::internal::isEventComplete ( auto && any)
inline

Definition at line 170 of file interface.hpp.

◆ isQueueEmpty()

bool alpaka::onHost::internal::isQueueEmpty ( auto & queue)
inline

Definition at line 187 of file interface.hpp.

◆ makePlatform()

auto alpaka::onHost::internal::makePlatform ( auto api,
alpaka::concepts::DeviceKind auto deviceType )
static

Definition at line 37 of file interface.hpp.

◆ maximumMiniBlockSize()

template<alpaka::concepts::DeviceKind TDeviceKind, typename T_Idx, typename T_Data>
T_Idx alpaka::onHost::internal::maximumMiniBlockSize ( )
consteval

Definition at line 36 of file scan.hpp.

◆ scan() [1/2]

template<ScanType SCAN_TYPE>
void alpaka::onHost::internal::scan ( auto & queue,
alpaka::onHost::concepts::Device auto & devAcc,
alpaka::concepts::Executor auto & exec,
alpaka::concepts::IMdSpan auto & buffer,
alpaka::concepts::IMdSpan auto & outputVec,
alpaka::concepts::IDataSource auto & inputVec )

Definition at line 380 of file scan.hpp.

◆ scan() [2/2]

template<ScanType SCAN_TYPE>
void alpaka::onHost::internal::scan ( auto & queue,
alpaka::onHost::concepts::Device auto & devAcc,
alpaka::concepts::Executor auto & exec,
alpaka::concepts::IMdSpan auto & outputVec,
alpaka::concepts::IDataSource auto const & inputVec )

Definition at line 455 of file scan.hpp.

◆ scanBufferSize() [1/2]

template<typename T_Data>
auto alpaka::onHost::internal::scanBufferSize ( alpaka::concepts::Vector auto const & extents)

Definition at line 373 of file scan.hpp.

◆ scanBufferSize() [2/2]

template<typename T_Data>
auto alpaka::onHost::internal::scanBufferSize ( std::integral auto const & extent)

Definition at line 357 of file scan.hpp.

◆ scanMiniBlock()

template<typename T_Idx, typename T_Data>
ALPAKA_FN_ACC T_Data alpaka::onHost::internal::scanMiniBlock ( T_Data * block,
alpaka::concepts::CVector< T_Idx > auto const & extent )

Definition at line 62 of file scan.hpp.

◆ stdSimdWidth()

template<typename T_Type>
size_t alpaka::onHost::internal::stdSimdWidth ( )
constexpr

SIMD width in bytes defined by std::simd.

Returns
0 if std::simd is not supported or the T_Type is unsupported, else the SIMD width in bytes

Definition at line 20 of file cpuArchSize.hpp.

◆ transform()

void alpaka::onHost::internal::transform ( auto const & queue,
alpaka::concepts::Executor auto const exec,
alpaka::concepts::IMdSpan auto && out,
auto && fn,
alpaka::concepts::IDataSource auto &&... in )
inline

Definition at line 83 of file transform.hpp.

◆ transformReduce()

template<typename T_DataType>
void alpaka::onHost::internal::transformReduce ( auto const & queue,
alpaka::concepts::Executor auto const exec,
T_DataType const & neutralElement,
alpaka::concepts::IMdSpan auto out,
auto && reduceFn,
auto && transformFn,
auto && in0,
alpaka::concepts::IDataSource auto &&... in )
inline

Definition at line 133 of file transformReduce.hpp.

◆ wait()

void alpaka::onHost::internal::wait ( auto && any)
inline

Definition at line 136 of file interface.hpp.

◆ waitFor()

void alpaka::onHost::internal::waitFor ( auto & queue,
auto & event )
inline

Definition at line 153 of file interface.hpp.

Variable Documentation

◆ chunkSize

std::size_t alpaka::onHost::internal::chunkSize = 2048u
constexpr

Definition at line 33 of file scan.hpp.