@@ -1998,8 +1998,35 @@ pi_result cuda_piDeviceGetInfo(pi_device device, pi_device_info param_name,
1998
1998
pi_int32{1 });
1999
1999
}
2000
2000
2001
+ case PI_DEVICE_INFO_DEVICE_ID: {
2002
+ int value = 0 ;
2003
+ sycl::detail::pi::assertion (
2004
+ cuDeviceGetAttribute (&value, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID,
2005
+ device->get ()) == CUDA_SUCCESS);
2006
+ sycl::detail::pi::assertion (value >= 0 );
2007
+ return getInfo (param_value_size, param_value, param_value_size_ret, value);
2008
+ }
2009
+
2010
+ case PI_DEVICE_INFO_UUID: {
2011
+ int driver_version = 0 ;
2012
+ cuDriverGetVersion (&driver_version);
2013
+ int major = driver_version / 1000 ;
2014
+ int minor = driver_version % 1000 / 10 ;
2015
+ CUuuid uuid;
2016
+ if ((major > 11 ) || (major == 11 && minor >= 4 )) {
2017
+ sycl::detail::pi::assertion (cuDeviceGetUuid_v2 (&uuid, device->get ()) ==
2018
+ CUDA_SUCCESS);
2019
+ } else {
2020
+ sycl::detail::pi::assertion (cuDeviceGetUuid (&uuid, device->get ()) ==
2021
+ CUDA_SUCCESS);
2022
+ }
2023
+ std::array<unsigned char , 16 > name;
2024
+ std::copy (uuid.bytes , uuid.bytes + 16 , name.begin ());
2025
+ return getInfoArray (16 , param_value_size, param_value, param_value_size_ret,
2026
+ name.data ());
2027
+ }
2028
+
2001
2029
// TODO: Investigate if this information is available on CUDA.
2002
- case PI_DEVICE_INFO_DEVICE_ID:
2003
2030
case PI_DEVICE_INFO_PCI_ADDRESS:
2004
2031
case PI_DEVICE_INFO_GPU_EU_COUNT:
2005
2032
case PI_DEVICE_INFO_GPU_EU_SIMD_WIDTH:
@@ -2008,10 +2035,6 @@ pi_result cuda_piDeviceGetInfo(pi_device device, pi_device_info param_name,
2008
2035
case PI_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE:
2009
2036
case PI_DEVICE_INFO_GPU_HW_THREADS_PER_EU:
2010
2037
case PI_DEVICE_INFO_MAX_MEM_BANDWIDTH:
2011
- // TODO: Check if Intel device UUID extension is utilized for CUDA.
2012
- // For details about this extension, see
2013
- // sycl/doc/extensions/supported/sycl_ext_intel_device_info.md
2014
- case PI_DEVICE_INFO_UUID:
2015
2038
return PI_ERROR_INVALID_VALUE;
2016
2039
2017
2040
default :
0 commit comments