86 inline std::convertible_to<std::string>
auto getStaticName(
auto const& any)
106 inline std::convertible_to<std::string>
auto getName(
auto&& any)
157 inline decltype(
auto)
data(
auto&& any)
189 template<
typename T_ValueType>
193 Vec const extentsVec = extents;
233 using DeviceType =
decltype(std::declval<DevSelectorType>().makeDevice(0));
234 using ExecutorListType =
decltype(
supportedExecutors(std::declval<DeviceType>(), listOfExecutors));
235 return ExecutorListType{};
238 constexpr auto getExecutorsList(
auto const deviceSpec,
auto const listOfExecutors)
240 alpaka::unused(deviceSpec, listOfExecutors);
241 return std::tuple<>{};
257 [
api](
auto... devType)
constexpr {
return std::make_tuple(
DeviceSpec{
api, devType}...); },
285 [deviceSpec](
auto... executor)
constexpr
287 return std::make_tuple(
305 [listOfExecutors](
auto... devSpec)
constexpr
320 consteval auto allBackends(std::tuple<T_Apis...>
const& usedApis,
auto const listOfExecutors)
323 [listOfExecutors](
auto...
api)
constexpr
338 consteval auto allBackends(std::tuple<T_DevicesSpecs...>
const& usedDeviceSpecs,
auto const& listOfExecutors)
#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 that a device specification with an API and device kind can be extracted.
Concept to check if the given type has a get() function.
Concept to check if a type is a vector or scalar variable.
constexpr DeviceKind deviceKind
auto getNativeHandle(auto &&any)
auto getExtents(auto &&any)
auto getPitches(auto &&any)
Functionality which is usable on the host CPU controller thread.
auto allocHostLike(auto const &view)
Allocate host memory with the same value type and extents as an existing view.
auto getNativeHandle(auto const &handle)
Get the native handle of an handle.
constexpr auto supportedDevices(auto const api)
constexpr auto createBackendsFor(auto const deviceSpec, auto const listOfExecutors)
Build a tuple of backends for a single device specification.
constexpr auto createBackendList(auto const devSpecList, auto const listOfExecutors)
Create the complete backend list for all device specifications and executors.
decltype(auto) data(auto &&any)
pointer to data of an object
consteval auto allBackends(std::tuple< T_Apis... > const &usedApis, auto const listOfExecutors)
Generate the full set of backend dictionaries for a set of APIs.
decltype(auto) getExtents(auto &&any)
Object extents.
std::convertible_to< std::string > auto getName(auto &&any)
Runtime name for a given object.
constexpr auto getDeviceSpecsFor(auto const api)
Create a tuple of device specifications for a single API.
constexpr auto getExecutorsList(auto const deviceSpec, auto const listOfExecutors)
Resolve the list of executors supported for a device specification.
void wait(alpaka::concepts::HasGet auto &handle)
wait for all work to be finished
std::convertible_to< std::string > auto getStaticName(auto const &any)
Compile-time available name for a given object.
auto makeDeviceSelector(T_DeviceSpec deviceSpec)
create an object to get access to devices
auto allocHost(alpaka::concepts::VectorOrScalar auto const &extents)
Allocate host memory for a given element type and extents.
auto alloc(concepts::Device auto const &device, alpaka::concepts::VectorOrScalar auto const &extents)
Allocate memory on the given device.
constexpr auto supportedExecutors(internal::concepts::DeviceHandle auto deviceHandle, auto const listOfExecutors)
decltype(auto) getPitches(auto &&any)
Object pitches.
typename GetValueType< T >::type GetValueType_t
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.
Concept for a combination of an API and device kind.
static decltype(auto) data(auto &&any)