|
197 | 197 | // pi_virtual_access_flags bit flags. |
198 | 198 | // 15.55 Added piextEnqueueNativeCommand as well as associated types and enums |
199 | 199 | // 16.56 Replaced piextUSMEnqueueMemset with piextUSMEnqueueFill |
| 200 | +// 16.57 Added mappings to UR launch properties extension |
| 201 | +// (piextEnqueueKernelLaunchCustom) |
200 | 202 |
|
201 | 203 | #define _PI_H_VERSION_MAJOR 16 |
202 | | -#define _PI_H_VERSION_MINOR 56 |
| 204 | +#define _PI_H_VERSION_MINOR 57 |
203 | 205 |
|
204 | 206 | #define _PI_STRING_HELPER(a) #a |
205 | 207 | #define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b) |
@@ -514,8 +516,12 @@ typedef enum { |
514 | 516 |
|
515 | 517 | // Virtual memory support |
516 | 518 | PI_EXT_ONEAPI_DEVICE_INFO_SUPPORTS_VIRTUAL_MEM = 0x2011E, |
| 519 | + |
517 | 520 | // Native enqueue |
518 | 521 | PI_EXT_ONEAPI_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT = 0x2011F, |
| 522 | + |
| 523 | + // Return whether cluster launch is supported by device |
| 524 | + PI_EXT_ONEAPI_DEVICE_INFO_CLUSTER_LAUNCH = 0x2021, |
519 | 525 | } _pi_device_info; |
520 | 526 |
|
521 | 527 | typedef enum { |
@@ -1317,8 +1323,28 @@ typedef enum { |
1317 | 1323 | ///< P2P link, otherwise such operations are not supported. |
1318 | 1324 | } _pi_peer_attr; |
1319 | 1325 |
|
| 1326 | +typedef enum { |
| 1327 | + PI_LAUNCH_PROPERTY_IGNORE = 0x0, |
| 1328 | + PI_LAUNCH_PROPERTY_COOPERATIVE = 0x1, |
| 1329 | + PI_LAUNCH_PROPERTY_CLUSTER_DIMENSION = 0x2, |
| 1330 | +} _pi_launch_property_id; |
| 1331 | + |
| 1332 | +typedef union { |
| 1333 | + int cooperative; |
| 1334 | + int32_t cluster_dims[3]; |
| 1335 | +} _pi_launch_property_value; |
| 1336 | + |
1320 | 1337 | using pi_mem_info = _pi_mem_info; |
1321 | 1338 | using pi_peer_attr = _pi_peer_attr; |
| 1339 | +using pi_launch_property_id = _pi_launch_property_id; |
| 1340 | +using pi_launch_property_value = _pi_launch_property_value; |
| 1341 | + |
| 1342 | +typedef struct { |
| 1343 | + pi_launch_property_id id; |
| 1344 | + pi_launch_property_value value; |
| 1345 | +} _pi_launch_property; |
| 1346 | + |
| 1347 | +using pi_launch_property = _pi_launch_property; |
1322 | 1348 |
|
1323 | 1349 | // |
1324 | 1350 | // Following section contains SYCL RT Plugin Interface (PI) functions. |
@@ -1933,6 +1959,14 @@ __SYCL_EXPORT pi_result piextEnqueueCooperativeKernelLaunch( |
1933 | 1959 | const size_t *local_work_size, pi_uint32 num_events_in_wait_list, |
1934 | 1960 | const pi_event *event_wait_list, pi_event *event); |
1935 | 1961 |
|
| 1962 | +__SYCL_EXPORT pi_result piextEnqueueKernelLaunchCustom( |
| 1963 | + pi_queue queue, pi_kernel kernel, pi_uint32 work_dim, |
| 1964 | + const size_t *global_work_size, const size_t *local_work_size, |
| 1965 | + pi_uint32 num_props_in_launch_prop_list, |
| 1966 | + const pi_launch_property *launch_prop_list, |
| 1967 | + pi_uint32 num_events_in_wait_list, const pi_event *event_wait_list, |
| 1968 | + pi_event *event); |
| 1969 | + |
1936 | 1970 | __SYCL_EXPORT pi_result piEnqueueEventsWait(pi_queue command_queue, |
1937 | 1971 | pi_uint32 num_events_in_wait_list, |
1938 | 1972 | const pi_event *event_wait_list, |
|
0 commit comments