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

Go to the source code of this file.

Classes

class  alpaka::TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs >
 The GPU CUDA/HIP accelerator execution task. More...
 
struct  alpaka::trait::AccType< TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The GPU CUDA/HIP execution task accelerator type trait specialization. More...
 
struct  alpaka::trait::DevType< TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The GPU CUDA/HIP execution task device type trait specialization. More...
 
struct  alpaka::trait::DimType< TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The GPU CUDA/HIP execution task dimension getter trait specialization. More...
 
struct  alpaka::trait::Enqueue< uniform_cuda_hip::detail::QueueUniformCudaHipRt< TApi, TBlocking >, TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The CUDA/HIP kernel enqueue trait specialization. More...
 
struct  alpaka::trait::FunctionAttributes< AccGpuUniformCudaHipRt< TApi, TDim, TIdx >, TDev, TKernelFn, TArgs... >
 Specialisation of the class template FunctionAttributes. More...
 
struct  alpaka::trait::IdxType< TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The GPU CUDA/HIP execution task idx type trait specialization. More...
 
struct  alpaka::trait::PlatformType< TaskKernelGpuUniformCudaHipRt< TApi, TAcc, TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU CUDA/HIP execution task platform type trait specialization. More...
 

Namespaces

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

Macros

#define ALPAKA_KERNEL_NAME(KERNEL, NAME)
 
#define ALPAKA_KERNEL_SCOPED_NAME(KERNEL, NAMESPACE, NAME)
 

Functions

template<typename TDim , typename TIdx >
ALPAKA_FN_HOST auto alpaka::uniform_cuda_hip::detail::checkVecOnly3Dim (Vec< TDim, TIdx > const &vec) -> void
 
template<typename TDim , typename TIdx >
ALPAKA_FN_HOST auto alpaka::uniform_cuda_hip::detail::convertVecToUniformCudaHipDim (Vec< TDim, TIdx > const &vec) -> dim3
 
template<typename TKernelFnObj , typename TAcc , typename... TArgs>
__global__ void alpaka::detail::gpuKernel (Vec< Dim< TAcc >, Idx< TAcc > > const threadElemExtent, TKernelFnObj const kernelFnObj, TArgs... args)
 The GPU CUDA/HIP kernel entry point.
 

Variables

template<typename TKernelFnObj , typename TAcc , typename... TArgs>
void(* alpaka::detail::kernelName )(Vec< Dim< TAcc >, Idx< TAcc > > const, TKernelFnObj const, remove_restrict_t< std::decay_t< TArgs > >...) = gpuKernel<TKernelFnObj, TAcc, TArgs...>
 

Macro Definition Documentation

◆ ALPAKA_KERNEL_NAME

#define ALPAKA_KERNEL_NAME (   KERNEL,
  NAME 
)
Value:
\
struct The_ALPAKA_KERNEL_NAME_macro_must_be_called_in_the_global_namespace; \
\
static_assert( \
std::is_same_v< \
The_ALPAKA_KERNEL_NAME_macro_must_be_called_in_the_global_namespace, \
::The_ALPAKA_KERNEL_NAME_macro_must_be_called_in_the_global_namespace>, \
"The ALPAKA_KERNEL_NAME macro must be called in the global namespace"); \
\
template<typename TAcc, typename... TArgs> \
__global__ void NAME( \
KERNEL const kernelFnObj, \
TArgs... args) \
{ \
TAcc const acc(extent); \
kernelFnObj(const_cast<TAcc const&>(acc), args...); \
} \
\
namespace alpaka::detail \
{ \
template<typename TAcc, typename... TArgs> \
inline void (*kernelName<KERNEL, TAcc, TArgs...>)( \
KERNEL const, \
TArgs...) \
= ::NAME<TAcc, TArgs...>; \
}
A n-dimensional vector.
Definition Vec.hpp:38
typename trait::IdxType< T >::type Idx
Definition Traits.hpp:29
typename trait::DimType< T >::type Dim
The dimension type trait alias template to remove the ::type.
Definition Traits.hpp:19

Definition at line 385 of file TaskKernelGpuUniformCudaHipRt.hpp.

◆ ALPAKA_KERNEL_SCOPED_NAME

#define ALPAKA_KERNEL_SCOPED_NAME (   KERNEL,
  NAMESPACE,
  NAME 
)
Value:
struct The_ALPAKA_KERNEL_SCOPED_NAME_macro_must_be_called_in_the_global_namespace; \
\
static_assert( \
std::is_same_v< \
The_ALPAKA_KERNEL_SCOPED_NAME_macro_must_be_called_in_the_global_namespace, \
::The_ALPAKA_KERNEL_SCOPED_NAME_macro_must_be_called_in_the_global_namespace>, \
"The ALPAKA_KERNEL_SCOPED_NAME macro must be called in the global namespace"); \
\
namespace NAMESPACE \
{ \
template<typename TAcc, typename... TArgs> \
__global__ void NAME( \
KERNEL const kernelFnObj, \
TArgs... args) \
{ \
TAcc const acc(extent); \
kernelFnObj(const_cast<TAcc const&>(acc), args...); \
} \
} \
\
namespace alpaka::detail \
{ \
template<typename TAcc, typename... TArgs> \
inline void (*kernelName<KERNEL, TAcc, TArgs...>)( \
KERNEL const, \
TArgs...) \
= ::NAMESPACE::NAME<TAcc, TArgs...>; \
}

Definition at line 417 of file TaskKernelGpuUniformCudaHipRt.hpp.