Skip to content

Commit caa66b2

Browse files
committed
Improvements to align CTS and Spec for Device:
- Rework urDeviceGetInfoTest to move all enums to their own tests instead of a switch case - #2290 - Remove the UR/OpenCL Device enum map function - no point maintaining both a switch case and a separate mapping function - Update some spec wording for consistency - Add missing Device info enums to OpenCL adapater - Add new urDevicePartition test for checking UR_DEVICE_INFO_PARENT_DEVICE - Move UUR_RETURN_ON_FATAL_FAILURE and UUR_ASSERT_SUCCESS_OR_UNSUPPORTED to join similar macros in checks.h - Update spec to say info queries that return char[] are null-terminated - Update UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH/HEIGHT/PITCH should be uint32_t, matching SYCL RT - Add missing unsupported device enums to HIP adapter wip
1 parent 04cb8f1 commit caa66b2

File tree

18 files changed

+3505
-848
lines changed

18 files changed

+3505
-848
lines changed

include/ur_api.h

Lines changed: 48 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1451,20 +1451,20 @@ UR_APIEXPORT ur_result_t UR_APICALL urPlatformGet(
14511451
///////////////////////////////////////////////////////////////////////////////
14521452
/// @brief Supported platform info
14531453
typedef enum ur_platform_info_t {
1454-
/// [char[]] The string denoting name of the platform. The size of the
1455-
/// info needs to be dynamically queried.
1456-
UR_PLATFORM_INFO_NAME = 1,
1457-
/// [char[]] The string denoting name of the vendor of the platform. The
1454+
/// [char[]] The null-terminated string denoting name of the platform. The
14581455
/// size of the info needs to be dynamically queried.
1456+
UR_PLATFORM_INFO_NAME = 1,
1457+
/// [char[]] The null-terminated string denoting name of the vendor of the
1458+
/// platform. The size of the info needs to be dynamically queried.
14591459
UR_PLATFORM_INFO_VENDOR_NAME = 2,
1460-
/// [char[]] The string denoting the version of the platform. The size of
1461-
/// the info needs to be dynamically queried.
1460+
/// [char[]] The null-terminated string denoting the version of the
1461+
/// platform. The size of the info needs to be dynamically queried.
14621462
UR_PLATFORM_INFO_VERSION = 3,
1463-
/// [char[]] The string denoting extensions supported by the platform. The
1464-
/// size of the info needs to be dynamically queried.
1463+
/// [char[]] The null-terminated string denoting extensions supported by
1464+
/// the platform. The size of the info needs to be dynamically queried.
14651465
UR_PLATFORM_INFO_EXTENSIONS = 4,
1466-
/// [char[]] The string denoting profile of the platform. The size of the
1467-
/// info needs to be dynamically queried.
1466+
/// [char[]] The null-terminated string denoting profile of the platform.
1467+
/// The size of the info needs to be dynamically queried.
14681468
UR_PLATFORM_INFO_PROFILE = 5,
14691469
/// [::ur_platform_backend_t] The backend of the platform. Identifies the
14701470
/// native backend adapter implementing this platform.
@@ -2046,7 +2046,8 @@ typedef enum ur_device_info_t {
20462046
UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES = 60,
20472047
/// [::ur_queue_flags_t] host queue property bit-field
20482048
UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES = 61,
2049-
/// [char[]] a semi-colon separated list of built-in kernels
2049+
/// [char[]] a null-terminated semi-colon separated list of built-in
2050+
/// kernels
20502051
UR_DEVICE_INFO_BUILT_IN_KERNELS = 62,
20512052
/// [::ur_platform_handle_t] the platform associated with the device
20522053
UR_DEVICE_INFO_PLATFORM = 63,
@@ -2055,21 +2056,22 @@ typedef enum ur_device_info_t {
20552056
/// It is unsuitable for general use in applications. This feature is
20562057
/// provided for identifying memory leaks.
20572058
UR_DEVICE_INFO_REFERENCE_COUNT = 64,
2058-
/// [char[]] IL version
2059+
/// [char[]] null-terminated IL version
20592060
UR_DEVICE_INFO_IL_VERSION = 65,
2060-
/// [char[]] Device name
2061+
/// [char[]] null-terminated device name
20612062
UR_DEVICE_INFO_NAME = 66,
2062-
/// [char[]] Device vendor
2063+
/// [char[]] null-terminated device vendor
20632064
UR_DEVICE_INFO_VENDOR = 67,
2064-
/// [char[]] Driver version
2065+
/// [char[]] null-terminated driver version
20652066
UR_DEVICE_INFO_DRIVER_VERSION = 68,
2066-
/// [char[]] Device profile
2067+
/// [char[]] null-terminated device profile
20672068
UR_DEVICE_INFO_PROFILE = 69,
2068-
/// [char[]] Device version
2069+
/// [char[]] null-terminated device version
20692070
UR_DEVICE_INFO_VERSION = 70,
2070-
/// [char[]] Version of backend runtime
2071+
/// [char[]] null-terminated version of backend runtime
20712072
UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION = 71,
2072-
/// [char[]] Return a space separated list of extension names
2073+
/// [char[]] Return a null-terminated space separated list of extension
2074+
/// names
20732075
UR_DEVICE_INFO_EXTENSIONS = 72,
20742076
/// [size_t] Maximum size in bytes of internal printf buffer
20752077
UR_DEVICE_INFO_PRINTF_BUFFER_SIZE = 73,
@@ -2089,9 +2091,8 @@ typedef enum ur_device_info_t {
20892091
/// If the device does not support any affinity domains, then 0 will be
20902092
/// returned.
20912093
UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN = 78,
2092-
/// [::ur_device_partition_property_t[]] return an array of
2093-
/// ::ur_device_partition_property_t for properties specified in
2094-
/// ::urDevicePartition
2094+
/// [::ur_device_partition_property_t[]] returns an array of properties
2095+
/// specified in ::urDevicePartition
20952096
UR_DEVICE_INFO_PARTITION_TYPE = 79,
20962097
/// [uint32_t] max number of sub groups
20972098
UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS = 80,
@@ -2116,7 +2117,7 @@ typedef enum ur_device_info_t {
21162117
UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT = 87,
21172118
/// [uint8_t[]][optional-query] return device UUID
21182119
UR_DEVICE_INFO_UUID = 88,
2119-
/// [char[]][optional-query] return device PCI address
2120+
/// [char[]][optional-query] return null-terminated device PCI address
21202121
UR_DEVICE_INFO_PCI_ADDRESS = 89,
21212122
/// [uint32_t][optional-query] return Intel GPU EU count
21222123
UR_DEVICE_INFO_GPU_EU_COUNT = 90,
@@ -2227,14 +2228,14 @@ typedef enum ur_device_info_t {
22272228
/// [uint32_t] returns the required alignment of the pitch between two
22282229
/// rows of an image in bytes
22292230
UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP = 0x2004,
2230-
/// [size_t] returns the maximum linear width allowed for images allocated
2231-
/// using USM
2231+
/// [uint32_t] returns the maximum linear width allowed for images
2232+
/// allocated using USM
22322233
UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP = 0x2005,
2233-
/// [size_t] returns the maximum linear height allowed for images
2234+
/// [uint32_t] returns the maximum linear height allowed for images
22342235
/// allocated using USM
22352236
UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP = 0x2006,
2236-
/// [size_t] returns the maximum linear pitch allowed for images allocated
2237-
/// using USM
2237+
/// [uint32_t] returns the maximum linear pitch allowed for images
2238+
/// allocated using USM
22382239
UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP = 0x2007,
22392240
/// [::ur_bool_t] returns true if the device supports allocating mipmap
22402241
/// resources
@@ -2260,20 +2261,20 @@ typedef enum ur_device_info_t {
22602261
/// [::ur_bool_t] returns true if the device supports sampling cubemapped
22612262
/// images across face boundaries
22622263
UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP = 0x2011,
2263-
/// [::ur_bool_t] returns true if the device is capable of fetching USM
2264-
/// backed 1D sampled image data.
2264+
/// [::ur_bool_t] returns true if the device supports fetching USM backed
2265+
/// 1D sampled image data.
22652266
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP = 0x2012,
2266-
/// [::ur_bool_t] returns true if the device is capable of fetching
2267-
/// non-USM backed 1D sampled image data.
2267+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
2268+
/// backed 1D sampled image data.
22682269
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP = 0x2013,
2269-
/// [::ur_bool_t] returns true if the device is capable of fetching USM
2270-
/// backed 2D sampled image data.
2270+
/// [::ur_bool_t] returns true if the device supports fetching USM backed
2271+
/// 2D sampled image data.
22712272
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP = 0x2014,
2272-
/// [::ur_bool_t] returns true if the device is capable of fetching
2273-
/// non-USM backed 2D sampled image data.
2273+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
2274+
/// backed 2D sampled image data.
22742275
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP = 0x2015,
2275-
/// [::ur_bool_t] returns true if the device is capable of fetching
2276-
/// non-USM backed 3D sampled image data.
2276+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
2277+
/// backed 3D sampled image data.
22772278
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP = 0x2017,
22782279
/// [::ur_bool_t] returns true if the device supports timestamp recording
22792280
UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP = 0x2018,
@@ -2283,11 +2284,11 @@ typedef enum ur_device_info_t {
22832284
/// [::ur_bool_t] returns true if the device supports unique addressing
22842285
/// per dimension.
22852286
UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP = 0x201A,
2286-
/// [::ur_bool_t] returns true if the device is capable of sampling USM
2287-
/// backed 1D sampled image data.
2287+
/// [::ur_bool_t] returns true if the device supports sampling USM backed
2288+
/// 1D sampled image data.
22882289
UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP = 0x201B,
2289-
/// [::ur_bool_t] returns true if the device is capable of sampling USM
2290-
/// backed 2D sampled image data.
2290+
/// [::ur_bool_t] returns true if the device supports sampling USM backed
2291+
/// 2D sampled image data.
22912292
UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP = 0x201C,
22922293
/// [::ur_bool_t] returns true if the device supports enqueueing of native
22932294
/// work
@@ -5571,14 +5572,14 @@ typedef enum ur_program_info_t {
55715572
/// subset of those devices when the program is created using
55725573
/// ::urProgramCreateWithBinary.
55735574
UR_PROGRAM_INFO_DEVICES = 3,
5574-
/// [char[]] Return program IL if the program was created with
5575-
/// ::urProgramCreateWithIL, otherwise return size will be set to 0 and
5576-
/// nothing will be returned.
5575+
/// [char[]] Return null-terminated program IL if the program was created
5576+
/// with ::urProgramCreateWithIL, otherwise return size will be set to 0
5577+
/// and nothing will be returned.
55775578
UR_PROGRAM_INFO_IL = 4,
55785579
/// [size_t[]] Return program binary sizes for each device.
55795580
UR_PROGRAM_INFO_BINARY_SIZES = 5,
5580-
/// [unsigned char[]] Return program binaries for all devices for this
5581-
/// Program.
5581+
/// [unsigned char[]] Return null-terminated program binaries for all
5582+
/// devices for this Program.
55825583
UR_PROGRAM_INFO_BINARIES = 6,
55835584
/// [size_t][optional-query] Number of kernels in Program, return type
55845585
/// size_t.

include/ur_print.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4684,9 +4684,9 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr,
46844684
os << ")";
46854685
} break;
46864686
case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: {
4687-
const size_t *tptr = (const size_t *)ptr;
4688-
if (sizeof(size_t) > size) {
4689-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(size_t)
4687+
const uint32_t *tptr = (const uint32_t *)ptr;
4688+
if (sizeof(uint32_t) > size) {
4689+
os << "invalid size (is: " << size << ", expected: >=" << sizeof(uint32_t)
46904690
<< ")";
46914691
return UR_RESULT_ERROR_INVALID_SIZE;
46924692
}
@@ -4697,9 +4697,9 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr,
46974697
os << ")";
46984698
} break;
46994699
case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: {
4700-
const size_t *tptr = (const size_t *)ptr;
4701-
if (sizeof(size_t) > size) {
4702-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(size_t)
4700+
const uint32_t *tptr = (const uint32_t *)ptr;
4701+
if (sizeof(uint32_t) > size) {
4702+
os << "invalid size (is: " << size << ", expected: >=" << sizeof(uint32_t)
47034703
<< ")";
47044704
return UR_RESULT_ERROR_INVALID_SIZE;
47054705
}
@@ -4710,9 +4710,9 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr,
47104710
os << ")";
47114711
} break;
47124712
case UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: {
4713-
const size_t *tptr = (const size_t *)ptr;
4714-
if (sizeof(size_t) > size) {
4715-
os << "invalid size (is: " << size << ", expected: >=" << sizeof(size_t)
4713+
const uint32_t *tptr = (const uint32_t *)ptr;
4714+
if (sizeof(uint32_t) > size) {
4715+
os << "invalid size (is: " << size << ", expected: >=" << sizeof(uint32_t)
47164716
<< ")";
47174717
return UR_RESULT_ERROR_INVALID_SIZE;
47184718
}

scripts/core/device.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ etors:
320320
- name: QUEUE_ON_HOST_PROPERTIES
321321
desc: "[$x_queue_flags_t] host queue property bit-field"
322322
- name: BUILT_IN_KERNELS
323-
desc: "[char[]] a semi-colon separated list of built-in kernels"
323+
desc: "[char[]] a null-terminated semi-colon separated list of built-in kernels"
324324
- name: PLATFORM
325325
desc: "[$x_platform_handle_t] the platform associated with the device"
326326
- name: REFERENCE_COUNT
@@ -329,21 +329,21 @@ etors:
329329
The reference count returned should be considered immediately stale.
330330
It is unsuitable for general use in applications. This feature is provided for identifying memory leaks.
331331
- name: IL_VERSION
332-
desc: "[char[]] IL version"
332+
desc: "[char[]] null-terminated IL version"
333333
- name: NAME
334-
desc: "[char[]] Device name"
334+
desc: "[char[]] null-terminated device name"
335335
- name: VENDOR
336-
desc: "[char[]] Device vendor"
336+
desc: "[char[]] null-terminated device vendor"
337337
- name: DRIVER_VERSION
338-
desc: "[char[]] Driver version"
338+
desc: "[char[]] null-terminated driver version"
339339
- name: PROFILE
340-
desc: "[char[]] Device profile"
340+
desc: "[char[]] null-terminated device profile"
341341
- name: VERSION
342-
desc: "[char[]] Device version"
342+
desc: "[char[]] null-terminated device version"
343343
- name: BACKEND_RUNTIME_VERSION
344-
desc: "[char[]] Version of backend runtime"
344+
desc: "[char[]] null-terminated version of backend runtime"
345345
- name: EXTENSIONS
346-
desc: "[char[]] Return a space separated list of extension names"
346+
desc: "[char[]] Return a null-terminated space separated list of extension names"
347347
- name: PRINTF_BUFFER_SIZE
348348
desc: "[size_t] Maximum size in bytes of internal printf buffer"
349349
- name: PREFERRED_INTEROP_USER_SYNC
@@ -359,7 +359,7 @@ etors:
359359
[$x_device_affinity_domain_flags_t] Returns a bit-field of the supported affinity domains for partitioning.
360360
If the device does not support any affinity domains, then 0 will be returned.
361361
- name: PARTITION_TYPE
362-
desc: "[$x_device_partition_property_t[]] return an array of $x_device_partition_property_t for properties specified in $xDevicePartition"
362+
desc: "[$x_device_partition_property_t[]] returns an array of properties specified in $xDevicePartition"
363363
- name: MAX_NUM_SUB_GROUPS
364364
desc: "[uint32_t] max number of sub groups"
365365
- name: SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS
@@ -379,7 +379,7 @@ etors:
379379
- name: UUID
380380
desc: "[uint8_t[]][optional-query] return device UUID"
381381
- name: PCI_ADDRESS
382-
desc: "[char[]][optional-query] return device PCI address"
382+
desc: "[char[]][optional-query] return null-terminated device PCI address"
383383
- name: GPU_EU_COUNT
384384
desc: "[uint32_t][optional-query] return Intel GPU EU count"
385385
- name: GPU_EU_SIMD_WIDTH

scripts/core/exp-bindless-images.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ etors:
5555
desc: "[uint32_t] returns the required alignment of the pitch between two rows of an image in bytes"
5656
- name: MAX_IMAGE_LINEAR_WIDTH_EXP
5757
value: "0x2005"
58-
desc: "[size_t] returns the maximum linear width allowed for images allocated using USM"
58+
desc: "[uint32_t] returns the maximum linear width allowed for images allocated using USM"
5959
- name: MAX_IMAGE_LINEAR_HEIGHT_EXP
6060
value: "0x2006"
61-
desc: "[size_t] returns the maximum linear height allowed for images allocated using USM"
61+
desc: "[uint32_t] returns the maximum linear height allowed for images allocated using USM"
6262
- name: MAX_IMAGE_LINEAR_PITCH_EXP
6363
value: "0x2007"
64-
desc: "[size_t] returns the maximum linear pitch allowed for images allocated using USM"
64+
desc: "[uint32_t] returns the maximum linear pitch allowed for images allocated using USM"
6565
- name: MIPMAP_SUPPORT_EXP
6666
value: "0x2008"
6767
desc: "[$x_bool_t] returns true if the device supports allocating mipmap resources"
@@ -88,19 +88,19 @@ etors:
8888
desc: "[$x_bool_t] returns true if the device supports sampling cubemapped images across face boundaries"
8989
- name: BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP
9090
value: "0x2012"
91-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 1D sampled image data."
91+
desc: "[$x_bool_t] returns true if the device supports fetching USM backed 1D sampled image data."
9292
- name: BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP
9393
value: "0x2013"
94-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 1D sampled image data."
94+
desc: "[$x_bool_t] returns true if the device supports fetching non-USM backed 1D sampled image data."
9595
- name: BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP
9696
value: "0x2014"
97-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 2D sampled image data."
97+
desc: "[$x_bool_t] returns true if the device supports fetching USM backed 2D sampled image data."
9898
- name: BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP
9999
value: "0x2015"
100-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 2D sampled image data."
100+
desc: "[$x_bool_t] returns true if the device supports fetching non-USM backed 2D sampled image data."
101101
- name: BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP
102102
value: "0x2017"
103-
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 3D sampled image data."
103+
desc: "[$x_bool_t] returns true if the device supports fetching non-USM backed 3D sampled image data."
104104
- name: IMAGE_ARRAY_SUPPORT_EXP
105105
value: "0x2019"
106106
desc: "[$x_bool_t] returns true if the device supports allocating and accessing image array resources."
@@ -109,10 +109,10 @@ etors:
109109
desc: "[$x_bool_t] returns true if the device supports unique addressing per dimension."
110110
- name: BINDLESS_SAMPLE_1D_USM_EXP
111111
value: "0x201B"
112-
desc: "[$x_bool_t] returns true if the device is capable of sampling USM backed 1D sampled image data."
112+
desc: "[$x_bool_t] returns true if the device supports sampling USM backed 1D sampled image data."
113113
- name: BINDLESS_SAMPLE_2D_USM_EXP
114114
value: "0x201C"
115-
desc: "[$x_bool_t] returns true if the device is capable of sampling USM backed 2D sampled image data."
115+
desc: "[$x_bool_t] returns true if the device supports sampling USM backed 2D sampled image data."
116116
--- #--------------------------------------------------------------------------
117117
type: enum
118118
extend: true

scripts/core/platform.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,20 +59,20 @@ typed_etors: True
5959
etors:
6060
- name: NAME
6161
value: "1"
62-
desc: "[char[]] The string denoting name of the platform. The size of the info needs to be dynamically queried."
62+
desc: "[char[]] The null-terminated string denoting name of the platform. The size of the info needs to be dynamically queried."
6363
- name: VENDOR_NAME
6464
value: "2"
65-
desc: "[char[]] The string denoting name of the vendor of the platform. The size of the info needs to be dynamically queried."
65+
desc: "[char[]] The null-terminated string denoting name of the vendor of the platform. The size of the info needs to be dynamically queried."
6666
- name: VERSION
6767
value: "3"
68-
desc: "[char[]] The string denoting the version of the platform. The size of the info needs to be dynamically queried."
68+
desc: "[char[]] The null-terminated string denoting the version of the platform. The size of the info needs to be dynamically queried."
6969
- name: EXTENSIONS
7070
value: "4"
71-
desc: "[char[]] The string denoting extensions supported by the platform. The size of the info needs to be dynamically queried."
71+
desc: "[char[]] The null-terminated string denoting extensions supported by the platform. The size of the info needs to be dynamically queried."
7272
todo: "document extensions names and their meaning"
7373
- name: PROFILE
7474
value: "5"
75-
desc: "[char[]] The string denoting profile of the platform. The size of the info needs to be dynamically queried."
75+
desc: "[char[]] The null-terminated string denoting profile of the platform. The size of the info needs to be dynamically queried."
7676
todo: "currently always return FULL_PROFILE, deprecate?"
7777
- name: BACKEND
7878
value: "6"

0 commit comments

Comments
 (0)