Skip to content

Commit ed14d41

Browse files
author
Dmitry Razdoburdin
committed
fix for multinode
1 parent c25ed19 commit ed14d41

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

plugin/sycl/device_manager.cc

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,25 @@ ::sycl::device DeviceManager::GetDevice(const DeviceOrd& device_spec) const {
2020
(collective::IsDistributed());
2121
if (not_use_default_selector) {
2222
DeviceRegister& device_register = GetDevicesRegister();
23-
const int device_idx =
24-
collective::IsDistributed() ? collective::GetRank() : device_spec.ordinal;
2523
if (device_spec.IsSyclDefault()) {
2624
auto& devices = device_register.devices;
25+
const int device_idx = collective::IsDistributed()
26+
? collective::GetRank() % devices.size()
27+
: device_spec.ordinal;
2728
CHECK_LT(device_idx, devices.size());
2829
return devices[device_idx];
2930
} else if (device_spec.IsSyclCPU()) {
3031
auto& cpu_devices = device_register.cpu_devices;
32+
const int device_idx = collective::IsDistributed()
33+
? collective::GetRank() % cpu_devices.size()
34+
: device_spec.ordinal;
3135
CHECK_LT(device_idx, cpu_devices.size());
3236
return cpu_devices[device_idx];
3337
} else {
3438
auto& gpu_devices = device_register.gpu_devices;
39+
const int device_idx = collective::IsDistributed()
40+
? collective::GetRank() % gpu_devices.size()
41+
: device_spec.ordinal;
3542
CHECK_LT(device_idx, gpu_devices.size());
3643
return gpu_devices[device_idx];
3744
}

0 commit comments

Comments
 (0)