32 return simdGrid.concurrent(
35 [&](
auto const& acc,
auto out,
auto&&... in)
36 { out = callFunctor(acc, func, ALPAKA_FORWARD(in)...); },
45 [&](
auto const& acc,
auto outPtr,
auto const&... inPtr)
constexpr
47 outPtr = loadAncExecuteScalarOp(
48 std::make_integer_sequence<uint32_t, ALPAKA_TYPEOF(outPtr)::width()>{},
52 auto&&...
data)
constexpr { return callFunctor(acc, func, data[idx.x()]...); },
62 return simdGrid.concurrent(
65 [&](
auto const& acc,
auto out,
auto const&... in) { out = callFunctor(acc, func, in.load()...); },
71 template<uint32_t... T_idx>
73 std::integer_sequence<uint32_t, T_idx...>,
The class used to bind kernel function object and arguments together. Once an instance of this class ...
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
#define ALPAKA_TYPEOF(...)
Get the type of instance.
#define ALPAKA_FN_INLINE
Macro defining the inline function attribute.
#define ALPAKA_FORWARD(instance)
Perfectly forward an instance as argument.
Concept to check if a type is a CVector.
Concept to check for an executor.
Interface concept for objects describing multidimensional memory access.
Concept to check if a type is an accelerator.
#define ALPAKA_LOG_INFO(logLvl, callable)
Write a meta data message to the output.
alpaka'S function interface
constexpr auto threadsInGrid
constexpr auto getSimdFrameSpec(auto const &internalDevice, alpaka::concepts::Executor auto executor, alpaka::concepts::VectorOrScalar auto const &extents)
Provides a SIMD optimized frame specification.
void transform(auto const &queue, alpaka::concepts::Executor auto const exec, alpaka::concepts::IMdSpan auto &&out, auto &&fn, alpaka::concepts::IDataSource auto &&... in)
decltype(auto) data(auto &&any)
pointer to data of an object
constexpr auto demangledName()
decltype(auto) getExtents(auto &&any)
Object extents.
typename GetValueType< T >::type GetValueType_t
Vec< T, sizeof...(T_values), detail::CVec< T, T_values... > > CVec
A vector with compile-time known values.
constexpr bool isSpecializationOf_v
checks if T is a instance of U
Marks a functor that can only be executed with scalar types and not SIMD packages.
Marks a functor which supports SimdPtr as arguments.
Creates a functor operate on contiguous data concurrently.