Skip to content

Commit 9ec5961

Browse files
authored
Merge pull request #181 from hdelan/cleanup-load-balancing
Remove messy load balancing exercise
2 parents 04ce9cb + 99cc2e0 commit 9ec5961

File tree

1 file changed

+6
-29
lines changed

1 file changed

+6
-29
lines changed

Code_Exercises/Exercise_13_Load_Balancing/solution.cpp

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,38 +26,15 @@ class vector_add_second;
2626
// allowing computation to be split across said devices.
2727
std::vector<sycl::device> get_two_devices() {
2828
auto devs = sycl::device::get_devices();
29+
if (devs.size() == 0) throw "No devices available";
2930
if (devs.size() == 1)
3031
return {devs[0], devs[0]};
32+
33+
// Choose the first non-host devices
34+
std::sort(devs.begin(), devs.end(), [](sycl::device &d1, sycl::device &d2) {
35+
return !d1.is_host() && d2.is_host(); });
3136

32-
auto host_it{std::find_if(devs.begin(), devs.end(),
33-
[](sycl::device &d) { return d.is_host(); })};
34-
35-
// Don't mix Nvidia and non-Nvidia devices to avoid incompatible binary
36-
auto nvidia_it{std::find_if(devs.begin(), devs.end(), [](sycl::device &d) {
37-
return d.get_info<sycl::info::device::vendor>().find("NVIDIA") !=
38-
std::string::npos;
39-
})};
40-
if (nvidia_it != devs.end()) {
41-
auto nvidia_it2 =
42-
std::find_if(nvidia_it + 1, devs.end(), [](sycl::device &d) {
43-
return d.get_info<sycl::info::device::vendor>().find("NVIDIA") !=
44-
std::string::npos;
45-
});
46-
if (nvidia_it2 != devs.end())
47-
return {*nvidia_it, *nvidia_it2};
48-
if (host_it != devs.end())
49-
return {*nvidia_it, *host_it};
50-
return {*nvidia_it, *nvidia_it};
51-
}
52-
53-
auto dev_it{std::find_if(devs.begin(), devs.end(),
54-
[](sycl::device &d) { return !d.is_host(); })};
55-
auto dev_it2{std::find_if(dev_it + 1, devs.end(),
56-
[](sycl::device &d) { return !d.is_host(); })};
57-
58-
if (dev_it2 != devs.end())
59-
return {*dev_it, *dev_it2};
60-
return {*host_it, *dev_it};
37+
return {devs[0], devs[1]};
6138
}
6239

6340

0 commit comments

Comments
 (0)