@@ -1863,9 +1863,33 @@ pi_result hip_piDeviceGetInfo(pi_device device, pi_device_info param_name,
1863
1863
return getInfo (param_value_size, param_value, param_value_size_ret,
1864
1864
capabilities);
1865
1865
}
1866
+
1867
+ case PI_DEVICE_INFO_DEVICE_ID: {
1868
+ int value = 0 ;
1869
+ sycl::detail::pi::assertion (
1870
+ hipDeviceGetAttribute (&value, hipDeviceAttributePciDeviceId,
1871
+ device->get ()) == hipSuccess);
1872
+ sycl::detail::pi::assertion (value >= 0 );
1873
+ return getInfo (param_value_size, param_value, param_value_size_ret, value);
1874
+ }
1875
+
1876
+ case PI_DEVICE_INFO_UUID: {
1877
+ #if ((HIP_VERSION_MAJOR == 5 && HIP_VERSION_MINOR >= 2) || \
1878
+ HIP_VERSION_MAJOR > 5 )
1879
+ hipUUID uuid = {};
1880
+ // Supported since 5.2+
1881
+ sycl::detail::pi::assertion (hipDeviceGetUuid (&uuid, device->get ()) ==
1882
+ hipSuccess);
1883
+ std::array<unsigned char , 16 > name;
1884
+ std::copy (uuid.bytes , uuid.bytes + 16 , name.begin ());
1885
+ return getInfoArray (16 , param_value_size, param_value, param_value_size_ret,
1886
+ name.data ());
1887
+ #endif
1888
+ return PI_ERROR_INVALID_VALUE;
1889
+ }
1890
+
1866
1891
// TODO: Investigate if this information is available on HIP.
1867
1892
case PI_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES:
1868
- case PI_DEVICE_INFO_DEVICE_ID:
1869
1893
case PI_DEVICE_INFO_PCI_ADDRESS:
1870
1894
case PI_DEVICE_INFO_GPU_EU_COUNT:
1871
1895
case PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH:
0 commit comments