alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
Traits.hpp File Reference

Go to the source code of this file.

Classes

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

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

Functions

template<typename T >
void alpaka::detail::assertKernelArgIsTriviallyCopyable ()
 
template<typename TKernelFnObj , typename TAcc , typename... TArgs>
ALPAKA_FN_HOST_ACC auto alpaka::detail::checkKernelReturnType (TKernelFnObj const &, TAcc const &, TArgs &&...) -> void
 
template<typename TAcc , typename TWorkDiv , typename TKernelFnObj , typename... TArgs>
ALPAKA_FN_HOST auto alpaka::createTaskCooperativeKernel (TWorkDiv const &workDiv, TKernelFnObj const &kernelFnObj, TArgs &&... args)
 Creates a cooperative kernel execution task. Allows to use grid sync, but disables dynamic parallelism and enforces a hardware limit on the number of blocks.
 
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.
 
template<concepts::Acc 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.
 
template<concepts::Tag TTag, typename TQueue , typename TWorkDiv , typename TKernelFnObj , typename... TArgs>
ALPAKA_FN_HOST auto alpaka::execCooperative (TQueue &queue, TWorkDiv const &workDiv, TKernelFnObj const &kernelFnObj, TArgs &&... args) -> void
 Executes the given kernel in cooperative mode in the given queue.
 
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 TDev , typename TKernelFnObj , typename TDim , typename TIdx , typename... TArgs>
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto alpaka::getMaxActiveBlocks (TDev const &device, TKernelFnObj const &kernelFnObj, alpaka::Vec< TDim, TIdx > const &blockThreadExtent, alpaka::Vec< TDim, TIdx > const &threadElemExtent, TArgs const &... args) -> int
 
template<typename TAcc , typename TDev , typename TKernelFnObj , typename TIdx , typename... TArgs>
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto alpaka::getMaxActiveBlocks (TDev const &device, TKernelFnObj const &kernelFnObj, TIdx const &blockThreadExtent, TIdx const &threadElemExtent, TArgs const &... args) -> int
 Returns the maximum block aount for cooperative kernle launch on the device. Note that grid sync and other cooperative launch fucntioanlity is not guaranteed to work if you don't use createTaskCooperativeKernel()
 
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.
 
template<typename T >
constexpr bool alpaka::isKernelArgumentTriviallyCopyable = IsKernelArgumentTriviallyCopyable<T>::value
 
template<typename T >
constexpr bool alpaka::isKernelTriviallyCopyable = IsKernelTriviallyCopyable<T>::value