30 return alpaka::internal::getExecutor(*any.get());
42 inline constexpr decltype(
auto)
getApi(
auto&& any)
49 return alpaka::internal::getApi(*any.get());
57 template<
typename T_Any>
63 template<
typename T_Any>
64 concept HasApi =
requires(T_Any&& any) {
85 return alpaka::internal::getDeviceKind(*any.get());
99 template<
typename T_Type>
110 template<
typename T_Type>
#define ALPAKA_TYPEOF(...)
Get the type of instance.
#define ALPAKA_FORWARD(instance)
Perfectly forward an instance as argument.
Concept to check for APIs.
Concept to check for an executor.
Concept to check if the given type implements the getApi(T x) function returning an alpaka::concepts:...
Concept to check if the given type implements the getExecutor(T x) function returning an alpaka::conc...
Concept to check if the given type has a get() function.
consteval uint32_t getNumPipelines(concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
Get the number of instructions that can be issued in parallel.
constexpr decltype(auto) getExecutor(auto &&any)
Get the executor associated with an object.
consteval uint32_t getNumElemPerThread(concepts::Api auto const api, alpaka::concepts::DeviceKind auto const deviceType)
Get the number of elements to compute per thread.
constexpr auto getAlignment(auto &&any)
Get the value type alignment of an object.
consteval uint32_t 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.
constexpr decltype(auto) getDeviceKind(auto &&any)
Get the device type of an object.
constexpr decltype(auto) getApi(auto &&any)
Get the API an object depends on.