-
Notifications
You must be signed in to change notification settings - Fork 31
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
In [25]: d0 = dpctl.SyclDevice("gpu:0")
In [26]: d0.filter_string
Out[26]: 'opencl:gpu:0'
In [27]: [i for i, di in enumerate(dpctl.get_devices(dpctl.backend_type.all, dpctl.device_type.gpu)) if di == d0]
Out[27]: [1]
In [28]: d0 == dpctl.SyclDevice(d0.filter_string)
Out[28]: True
In [29]: d1 = dpctl.SyclDevice("gpu:1")
In [30]: d1.filter_string
Out[30]: 'level_zero:gpu:0'
In [31]: [i for i, di in enumerate(dpctl.get_devices(dpctl.backend_type.all, dpctl.device_type.gpu)) if di == d1]
Out[31]: [0]
In [32]: d1 == dpctl.SyclDevice(d1.filter_string)
Out[32]: True
At the same type, the C++ code does:
#include <CL/sycl.hpp>
#include <iostream>
int main(void) {
sycl::ONEAPI::filter_selector fs0{"gpu:0"};
sycl::device d0(fs0);
std::cout << "Device0's driver version " << d0.get_info<sycl::info::device::driver_version>() <<std::endl;
sycl::ONEAPI::filter_selector fs1{"gpu:1"};
sycl::device d1(fs1);
std::cout << "Device1's driver version " << d1.get_info<sycl::info::device::driver_version>() <<std::endl;
std::vector<sycl::device> v = sycl::device::get_devices(sycl::info::device_type::gpu);
for(size_t i=0; i < v.size(); ++i) {
if (v[i] == d0) {
std::cout << "Index for device0 is " << i <<std::endl;
}
if (v[i] == d1) {
std::cout << "Index for device1 is " << i <<std::endl;
}
}
return 0;
}
(idp) [08:32:27 nuc wd]$ dpcpp example.cpp && ./a.out
Device0's driver version 21.11.19310
Device1's driver version 1.0.19310
Index for device0 is 0
Index for device1 is 1
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working