File indexing completed on 2024-04-06 12:15:40
0001 #ifndef HeterogeneousCore_AlpakaInterface_interface_devices_h
0002 #define HeterogeneousCore_AlpakaInterface_interface_devices_h
0003
0004 #include <vector>
0005
0006 #include <alpaka/alpaka.hpp>
0007
0008 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0009
0010 namespace cms::alpakatools {
0011
0012
0013 template <typename TPlatform, typename = std::enable_if_t<alpaka::isPlatform<TPlatform>>>
0014 inline TPlatform const& platform() {
0015
0016 static const auto platform = TPlatform{};
0017 return platform;
0018 }
0019
0020
0021 template <typename TPlatform, typename = std::enable_if_t<alpaka::isPlatform<TPlatform>>>
0022 inline std::vector<alpaka::Dev<TPlatform>> const& devices() {
0023
0024 static const auto devices = alpaka::getDevs(platform<TPlatform>());
0025 return devices;
0026 }
0027
0028 }
0029
0030 #endif