MCPcopy Create free account
hub / github.com/SeisSol/SeisSol / bindSyclDevice

Method bindSyclDevice

src/Parallel/AcceleratorDevice.cpp:8–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6
7namespace seissol {
8void AcceleratorDevice::bindSyclDevice(int deviceId) {
9 try {
10#ifdef __DPCPP_COMPILER
11 syclDevice = sycl::device(sycl::gpu_selector_v);
12#elif defined(SYCL_PLATFORM_NVIDIA)
13 syclDevice = sycl::make_device<sycl::backend::cuda>(deviceId);
14#elif defined(SYCL_PLATFORM_AMD)
15 syclDevice = sycl::make_device<sycl::backend::hip>(deviceId);
16#else
17 syclDevice = sycl::device(sycl::cpu_selector());
18#endif // __DPCPP_COMPILER
19 } catch (const sycl::exception& err) {
20 {
21 std::ostringstream warn;
22 warn << "SYCL error: " << err.what();
23 warnMessages.push_back(warn.str());
24 }
25#ifdef __DPCPP_COMPILER
26 syclDevice = sycl::device(sycl::cpu_selector_v);
27#else
28 syclDevice = sycl::device(sycl::cpu_selector());
29#endif
30 }
31
32 std::ostringstream info;
33 info << "SYCL device for Dynamic Rupture and Point sources (GPU: " << std::boolalpha
34 << syclDevice.is_gpu() << "): " << syclDevice.get_info<sycl::info::device::name>();
35 infoMessages.push_back(info.str());
36
37#if (defined(ACPP_EXT_COARSE_GRAINED_EVENTS) || defined(SYCL_EXT_ACPP_COARSE_GRAINED_EVENTS)) && \
38 !defined(SEISSOL_KERNELS_SYCL)
39 const sycl::property_list property{sycl::property::queue::in_order(),
40 sycl::property::queue::AdaptiveCpp_coarse_grained_events()};
41#elif defined(HIPSYCL_EXT_COARSE_GRAINED_EVENTS) && !defined(SEISSOL_KERNELS_SYCL)
42 const sycl::property_list property{sycl::property::queue::in_order(),
43 sycl::property::queue::hipSYCL_coarse_grained_events()};
44#else
45 const sycl::property_list property{sycl::property::queue::in_order()};
46#endif
47
48 syclDefaultQueue = sycl::queue(syclDevice, property);
49}
50
51void AcceleratorDevice::bindNativeDevice(int deviceId) {
52 device::DeviceInstance& device = device::DeviceInstance::getInstance();

Callers

nothing calls this directly

Calls 1

push_backMethod · 0.80

Tested by

no test coverage detected