alpaka
Abstraction Library for Parallel Kernel Acceleration
Traits.hpp File Reference

Go to the source code of this file.

Classes

struct  alpaka::detail::CheckFnReturnType< TAcc, TSfinae >
 Check that the return of TKernelFnObj is void. More...
 
struct  alpaka::IsKernelArgumentTriviallyCopyable< T, typename >
 Check if a type used as kernel argument is trivially copyable. More...
 
struct  alpaka::IsKernelTriviallyCopyable< T, typename >
 Check if the kernel type is trivially copyable. More...
 
struct  alpaka::trait::BlockSharedMemDynSizeBytes< TKernelFnObj, TAcc, TSfinae >
 The trait for getting the size of the block shared dynamic memory of a kernel. More...
 
struct  alpaka::trait::FunctionAttributes< TAcc, TDev, TKernelFnObj, TArgs >
 The structure template to access to the functions attributes of a kernel function object. More...
 
struct  alpaka::trait::OmpSchedule< TKernelFnObj, TAcc, TSfinae >
 The trait for getting the schedule to use when a kernel is run using the CpuOmp2Blocks accelerator. More...
 
struct  alpaka::trait::WarpSize< TKernelFnObj, TAcc, TSfinae >
 The trait for getting the warp size required by a kernel. More...
 

Namespaces

 alpaka
 The alpaka accelerator library.
 
 alpaka::detail
 
 alpaka::trait
 The accelerator traits.
 

Functions

template<typename T >
void alpaka::detail::assertKernelArgIsTriviallyCopyable ()
 
template<typename TAcc , typename TWorkDiv , typename TKernelFnObj , typename... TArgs>
ALPAKA_FN_HOST auto alpaka::createTaskKernel (TWorkDiv const &workDiv, TKernelFnObj const &kernelFnObj, TArgs &&... args)
 Creates a kernel execution task. More...
 
template<typename TAcc , typename TQueue , typename TWorkDiv , typename TKernelFnObj , typename... TArgs>
ALPAKA_FN_HOST auto alpaka::exec (TQueue &queue, TWorkDiv const &workDiv, TKernelFnObj const &kernelFnObj, TArgs &&... args) -> void
 Executes the given kernel in the given queue. More...
 
template<typename TAcc , typename TKernelFnObj , typename TDim , typename... TArgs>
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto alpaka::getBlockSharedMemDynSizeBytes (TKernelFnObj const &kernelFnObj, Vec< TDim, Idx< TAcc >> const &blockThreadExtent, Vec< TDim, Idx< TAcc >> const &threadElemExtent, TArgs const &... args) -> std::size_t
 
template<typename TAcc , typename TDev , typename TKernelFnObj , typename... TArgs>
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST auto alpaka::getFunctionAttributes (TDev const &dev, TKernelFnObj const &kernelFnObj, TArgs &&... args) -> alpaka::KernelFunctionAttributes
 
template<typename TAcc , typename TKernelFnObj , typename TDim , typename... TArgs>
ALPAKA_FN_HOST auto alpaka::getOmpSchedule (TKernelFnObj const &kernelFnObj, Vec< TDim, Idx< TAcc >> const &blockThreadExtent, Vec< TDim, Idx< TAcc >> const &threadElemExtent, TArgs const &... args)
 

Variables

template<typename TKernelFnObj , typename TAcc >
constexpr std::uint32_t alpaka::trait::warpSize = WarpSize<TKernelFnObj, TAcc>::value
 This is a shortcut for the trait defined above. More...
 
template<typename T >
constexpr bool alpaka::isKernelArgumentTriviallyCopyable = IsKernelArgumentTriviallyCopyable<T>::value
 
template<typename T >
constexpr bool alpaka::isKernelTriviallyCopyable = IsKernelTriviallyCopyable<T>::value