Skip to content

Commit b8a9271

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
1 parent d3e9704 commit b8a9271

33 files changed

+3651
-1002
lines changed

include/ur_api.h

Lines changed: 62 additions & 61 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-terminatedstring 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-terminatedstring 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.
@@ -1976,7 +1976,7 @@ typedef enum ur_device_info_t {
19761976
/// [uint64_t] max memory allocation size
19771977
UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE = 28,
19781978
/// [::ur_bool_t] images are supported
1979-
UR_DEVICE_INFO_IMAGE_SUPPORTED = 29,
1979+
UR_DEVICE_INFO_IMAGE_SUPPORT = 29,
19801980
/// [uint32_t] max number of image objects arguments of a kernel declared
19811981
/// with the read_only qualifier
19821982
UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS = 30,
@@ -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,
@@ -2172,7 +2173,7 @@ typedef enum ur_device_info_t {
21722173
UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT = 110,
21732174
/// [::ur_bool_t] Return true if the device supports enqueueing commands
21742175
/// to read and write pipes from the host.
2175-
UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED = 111,
2176+
UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORT = 111,
21762177
/// [uint32_t][optional-query] The maximum number of registers available
21772178
/// per block.
21782179
UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP = 112,
@@ -2211,7 +2212,7 @@ typedef enum ur_device_info_t {
22112212
/// for command synchronization outside of a command-buffer.
22122213
UR_DEVICE_INFO_COMMAND_BUFFER_EVENT_SUPPORT_EXP = 0x1002,
22132214
/// [::ur_bool_t] return true if enqueue Cluster Launch is supported
2214-
UR_DEVICE_INFO_CLUSTER_LAUNCH_EXP = 0x1111,
2215+
UR_DEVICE_INFO_CLUSTER_LAUNCH_SUPPORT_EXP = 0x1111,
22152216
/// [::ur_bool_t] returns true if the device supports the creation of
22162217
/// bindless images
22172218
UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP = 0x2000,
@@ -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,40 +2261,40 @@ 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+
/// [::ur_bool_t] returns true if the device supports fetching USM backed
2265+
/// 1D sampled image data.
2266+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_SUPPORT_EXP = 0x2012,
2267+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
22642268
/// backed 1D sampled image data.
2265-
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.
2268-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP = 0x2013,
2269-
/// [::ur_bool_t] returns true if the device is capable of fetching USM
2269+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_SUPPORT_EXP = 0x2013,
2270+
/// [::ur_bool_t] returns true if the device supports fetching USM backed
2271+
/// 2D sampled image data.
2272+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_SUPPORT_EXP = 0x2014,
2273+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
22702274
/// backed 2D sampled image data.
2271-
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.
2274-
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.
2277-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP = 0x2017,
2275+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_SUPPORT_EXP = 0x2015,
2276+
/// [::ur_bool_t] returns true if the device supports fetching non-USM
2277+
/// backed 3D sampled image data.
2278+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_SUPPORT_EXP = 0x2017,
22782279
/// [::ur_bool_t] returns true if the device supports timestamp recording
22792280
UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP = 0x2018,
22802281
/// [::ur_bool_t] returns true if the device supports allocating and
22812282
/// accessing image array resources.
22822283
UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP = 0x2019,
22832284
/// [::ur_bool_t] returns true if the device supports unique addressing
22842285
/// per dimension.
2285-
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.
2288-
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.
2291-
UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP = 0x201C,
2286+
UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_SUPPORT_EXP = 0x201A,
2287+
/// [::ur_bool_t] returns true if the device supports sampling USM backed
2288+
/// 1D sampled image data.
2289+
UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_SUPPORT_EXP = 0x201B,
2290+
/// [::ur_bool_t] returns true if the device supports sampling USM backed
2291+
/// 2D sampled image data.
2292+
UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_SUPPORT_EXP = 0x201C,
22922293
/// [::ur_bool_t] returns true if the device supports enqueueing of native
22932294
/// work
22942295
UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP = 0x2020,
22952296
/// [::ur_bool_t] returns true if the device supports low-power events.
2296-
UR_DEVICE_INFO_LOW_POWER_EVENTS_EXP = 0x2021,
2297+
UR_DEVICE_INFO_LOW_POWER_EVENTS_SUPPORT_EXP = 0x2021,
22972298
/// [::ur_exp_device_2d_block_array_capability_flags_t] return a bit-field
22982299
/// of Intel GPU 2D block array capabilities
22992300
UR_DEVICE_INFO_2D_BLOCK_ARRAY_CAPABILITIES_EXP = 0x2022,
@@ -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.
@@ -6647,7 +6648,7 @@ typedef enum ur_queue_flag_t {
66476648
/// implementation may use interrupt-driven events. May reduce CPU
66486649
/// utilization at the cost of increased event completion latency. Other
66496650
/// platforms may ignore this flag.
6650-
UR_QUEUE_FLAG_LOW_POWER_EVENTS_EXP = UR_BIT(11),
6651+
UR_QUEUE_FLAG_LOW_POWER_EVENTS_SUPPORT_EXP = UR_BIT(11),
66516652
/// @cond
66526653
UR_QUEUE_FLAG_FORCE_UINT32 = 0x7fffffff
66536654
/// @endcond
@@ -11805,10 +11806,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urUSMReleaseExp(
1180511806
typedef enum ur_exp_peer_info_t {
1180611807
/// [int] 1 if P2P access is supported otherwise P2P access is not
1180711808
/// supported.
11808-
UR_EXP_PEER_INFO_UR_PEER_ACCESS_SUPPORTED = 0,
11809+
UR_EXP_PEER_INFO_UR_PEER_ACCESS_SUPPORT = 0,
1180911810
/// [int] 1 if atomic operations are supported over the P2P link,
1181011811
/// otherwise such operations are not supported.
11811-
UR_EXP_PEER_INFO_UR_PEER_ATOMICS_SUPPORTED = 1,
11812+
UR_EXP_PEER_INFO_UR_PEER_ATOMICS_SUPPORT = 1,
1181211813
/// @cond
1181311814
UR_EXP_PEER_INFO_FORCE_UINT32 = 0x7fffffff
1181411815
/// @endcond
@@ -11918,7 +11919,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urUsmP2PDisablePeerAccessExp(
1191811919
/// + `NULL == commandDevice`
1191911920
/// + `NULL == peerDevice`
1192011921
/// - ::UR_RESULT_ERROR_INVALID_ENUMERATION
11921-
/// + `::UR_EXP_PEER_INFO_UR_PEER_ATOMICS_SUPPORTED < propName`
11922+
/// + `::UR_EXP_PEER_INFO_UR_PEER_ATOMICS_SUPPORT < propName`
1192211923
/// - ::UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION
1192311924
/// + If `propName` is not supported by the adapter.
1192411925
/// - ::UR_RESULT_ERROR_INVALID_SIZE

0 commit comments

Comments
 (0)