alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
trait.hpp File Reference
#include "alpaka/api/concepts/api.hpp"
#include "alpaka/core/common.hpp"
#include "alpaka/math/internal/math.hpp"
#include "alpaka/tag.hpp"
#include <algorithm>
#include <cstdint>

Go to the source code of this file.

Classes

struct  alpaka::onAcc::trait::GetAtomicImpl
 Defines the implementation used for atomic operations toghether with the used executor. More...
struct  alpaka::onAcc::trait::GetAtomicImpl::Op< T_Executor, T_AtomicScope >
struct  alpaka::trait::GetAdjustedAlignment
 Adjusting the requested in alignment in order to meet device specific constraints. More...
struct  alpaka::trait::GetAdjustedAlignment::Op< T_Type, T_Api, T_DeviceKind >
struct  alpaka::trait::GetArchSimdWidth
struct  alpaka::trait::GetArchSimdWidth::Op< T_Type, T_Api, T_DeviceKind >
struct  alpaka::trait::GetCachelineSize
struct  alpaka::trait::GetCachelineSize::Op< T_Api, T_DeviceKind >
struct  alpaka::trait::GetIntrinsicImpl
 Defines the implementation used for intrinsics. More...
struct  alpaka::trait::GetIntrinsicImpl::Op< T_Api >
struct  alpaka::trait::GetMathImpl
 Map's all API's by default to stl math functions. More...
struct  alpaka::trait::GetMathImpl::Op< T_Api >
struct  alpaka::trait::GetNumPipelines
 Number of commands a CPU can issue at the same time. More...
struct  alpaka::trait::GetNumPipelines::Op< T_Api, T_DeviceKind >
struct  alpaka::trait::IsExecutor< T >

Namespaces

namespace  alpaka
 main alpaka namespace.
namespace  alpaka::concepts
namespace  alpaka::onAcc
 functionality which is usable on the accelerator compute device from within a kernel.
namespace  alpaka::onAcc::trait
namespace  alpaka::trait

Concepts

concept  alpaka::concepts::Executor
 Concept to check for an executor.

Functions

template<typename T_Type>
consteval uint32_t alpaka::getAdjustedAlignment (concepts::Api auto const api, concepts::DeviceKind auto const deviceType, auto const alignment)
 Adjusts the memory alignment based on a specific API and device kind.
template<typename T_Type>
consteval uint32_t alpaka::getArchSimdWidth (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the SIMD width in bytes for an API and device kind combination.
template<alpaka::concepts::Executor T_Executor, typename T_AtomicScope>
constexpr decltype(auto) alpaka::onAcc::trait::getAtomicImpl (T_Executor const executor, T_AtomicScope const atomicScope)
consteval uint32_t alpaka::getCachelineSize (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 get the cacheline size in bytes
template<alpaka::concepts::Api T_Api>
constexpr decltype(auto) alpaka::trait::getIntrinsicImpl (T_Api const api)
template<alpaka::concepts::Api T_Api>
constexpr decltype(auto) alpaka::trait::getMathImpl (T_Api const api)
template<typename T_Type>
consteval uint32_t alpaka::getNumElemPerThread (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the number of elements to compute per thread.
consteval uint32_t alpaka::getNumPipelines (concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
 Get the number of instructions that can be issued in parallel.
constexpr bool alpaka::operator!= (concepts::Executor auto lhs, concepts::Executor auto rhs)
constexpr bool alpaka::operator== (concepts::Executor auto lhs, concepts::Executor auto rhs)

Variables

template<typename T>
constexpr bool alpaka::isExecutor = trait::IsExecutor<T>::value