42 inline constexpr decltype(
auto)
getApi(
auto&& any)
57 template<
typename T_Any>
63 template<
typename T_Any>
64 concept HasApi =
requires(T_Any&& any) {
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.
constexpr auto getExecutor(T_Any &&any) -> decltype(GetExecutor::Op< ALPAKA_TYPEOF(any)>{}(any))
constexpr auto getDeviceKind(auto &&any) -> decltype(GetDeviceType::Op< ALPAKA_TYPEOF(any)>{}(any))
constexpr auto getAlignment(auto &&any)
constexpr auto getApi(auto &&any) -> decltype(GetApi::Op< ALPAKA_TYPEOF(any)>{}(any))
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.