@@ -20,7 +20,11 @@ DeviceType platformToDeviceType();
2020
2121template <>
2222DeviceType platformToDeviceType<alpaka::PlatformCpu>() {
23- return DeviceType::Cpu;
23+ #if defined(RAYX_OPENMP_ENABLED)
24+ return DeviceType::CpuParallel;
25+ #else
26+ return DeviceType::CpuSerial;
27+ #endif
2428}
2529
2630#if defined(RAYX_CUDA_ENABLED)
@@ -30,13 +34,6 @@ DeviceType platformToDeviceType<alpaka::PlatformCudaRt>() {
3034}
3135#endif
3236
33- #if defined(RAYX_HIP_ENABLED)
34- template <>
35- DeviceType platformToDeviceType<alpaka::PlatformHipRt>() {
36- return DeviceType::GpuHip;
37- }
38- #endif
39-
4037template <typename AccTag>
4138std::vector<Device> getAvailableDevicesProps () {
4239 std::vector<Device> devices;
@@ -80,31 +77,26 @@ std::vector<Device> getAvailableDevices(DeviceType deviceType = DeviceType::All)
8077 };
8178
8279#if defined(RAYX_OPENMP_ENABLED)
83- using TagCpu = alpaka::TagCpuOmp2Blocks;
80+ if (deviceType & DeviceType::CpuParallel) append ( alpaka::TagCpuOmp2Blocks{}) ;
8481#else
85- using TagCpu = alpaka::TagCpuSerial;
82+ if (deviceType & DeviceType::CpuSerial) append ( alpaka::TagCpuSerial{}) ;
8683#endif
87- if (deviceType & DeviceType::Cpu) append (TagCpu{});
8884
8985#if defined(RAYX_CUDA_ENABLED)
9086 if (deviceType & DeviceType::GpuCuda) append (alpaka::TagGpuCudaRt{});
9187#endif
9288
93- #if defined(RAYX_HIP_ENABLED)
94- if (deviceType & DeviceType::GpuHip) append (alpaka::TagGpuHipRt{});
95- #endif
96-
9789 return devices;
9890}
9991
10092std::string deviceTypeToString (DeviceType deviceType) {
10193 std::vector<const char *> names;
10294
103- if (deviceType & DeviceType::Cpu) names.push_back (" Cpu" );
95+ if (deviceType & DeviceType::CpuSerial) names.push_back (" CpuSerial" );
96+ if (deviceType & DeviceType::CpuParallel) names.push_back (" CpuParallel" );
10497 if (deviceType & DeviceType::GpuCuda) names.push_back (" GpuCuda" );
105- if (deviceType & DeviceType::GpuHip) names.push_back (" GpuHip" );
10698
107- if (names.empty ()) names.push_back (" Unsupported " );
99+ if (names.empty ()) names.push_back (" None " );
108100
109101 std::stringstream ss;
110102
@@ -131,9 +123,8 @@ void DeviceConfig::dumpDevices() const {
131123 RAYX_LOG << " Device - index: " << i << " , type: " << deviceTypeToString (device.type ) << " , name: " << device.name ;
132124 }
133125
134- #if !defined(RAYX_CUDA_ENABLED) && !defined(RAYX_HIP_ENABLED)
135- if (m_fetchedDeviceType != DeviceType::Cpu)
136- RAYX_WARN << " No GPU support was compiled in this build." ;
126+ #if !defined(RAYX_CUDA_ENABLED)
127+ if (!(m_fetchedDeviceType & DeviceType::Cpu)) RAYX_WARN << " GPU support is not enabled in this build." ;
137128#endif
138129}
139130
@@ -197,4 +188,20 @@ DeviceConfig& DeviceConfig::enableBestDevice(DeviceType deviceType) {
197188 return *this ;
198189}
199190
191+ DeviceConfig::DeviceType DeviceConfig::availableDeviceTypes () {
192+ DeviceType deviceType = DeviceType::None;
193+
194+ #if defined(RAYX_OPENMP_ENABLED)
195+ deviceType = static_cast <DeviceType>(deviceType | DeviceType::CpuParallel);
196+ #else
197+ deviceType = static_cast <DeviceType>(deviceType | DeviceType::CpuSerial);
198+ #endif
199+
200+ #if defined(RAYX_CUDA_ENABLED)
201+ deviceType = static_cast <DeviceType>(deviceType | DeviceType::GpuCuda);
202+ #endif
203+
204+ return deviceType;
205+ }
206+
200207} // namespace rayx
0 commit comments