Skip to content

Commit 8af747d

Browse files
committed
Make USM pools optional with a device query to report support.
1 parent 1a949ab commit 8af747d

26 files changed

+162
-173
lines changed

include/ur_api.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,6 +1639,9 @@ typedef enum ur_device_info_t {
16391639
UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT = 118, ///< [::ur_bool_t] return true if the device supports the
16401640
///< `EnqueueDeviceGlobalVariableWrite` and
16411641
///< `EnqueueDeviceGlobalVariableRead` entry points.
1642+
UR_DEVICE_INFO_USM_POOL_SUPPORT = 119, ///< [::ur_bool_t] return true if the device supports USM pooling. Pertains
1643+
///< to the `USMPool` entry points and usage of the `pool` parameter of the
1644+
///< USM alloc entry points.
16421645
UR_DEVICE_INFO_COMMAND_BUFFER_SUPPORT_EXP = 0x1000, ///< [::ur_bool_t] Returns true if the device supports the use of
16431646
///< command-buffers.
16441647
UR_DEVICE_INFO_COMMAND_BUFFER_UPDATE_CAPABILITIES_EXP = 0x1001, ///< [::ur_device_command_buffer_update_capability_flags_t] Command-buffer
@@ -3536,6 +3539,8 @@ typedef struct ur_usm_pool_limits_desc_t {
35363539
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
35373540
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
35383541
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3542+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3543+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
35393544
UR_APIEXPORT ur_result_t UR_APICALL
35403545
urUSMHostAlloc(
35413546
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3583,6 +3588,8 @@ urUSMHostAlloc(
35833588
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
35843589
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
35853590
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3591+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3592+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
35863593
UR_APIEXPORT ur_result_t UR_APICALL
35873594
urUSMDeviceAlloc(
35883595
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3632,6 +3639,8 @@ urUSMDeviceAlloc(
36323639
/// + If `UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT` and `UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT` are both false.
36333640
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
36343641
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3642+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3643+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
36353644
UR_APIEXPORT ur_result_t UR_APICALL
36363645
urUSMSharedAlloc(
36373646
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3713,6 +3722,8 @@ urUSMGetMemAllocInfo(
37133722
/// + `::UR_USM_POOL_FLAGS_MASK & pPoolDesc->flags`
37143723
/// - ::UR_RESULT_ERROR_INVALID_VALUE
37153724
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3725+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3726+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
37163727
UR_APIEXPORT ur_result_t UR_APICALL
37173728
urUSMPoolCreate(
37183729
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3731,6 +3742,7 @@ urUSMPoolCreate(
37313742
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
37323743
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
37333744
/// + `NULL == pPool`
3745+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
37343746
UR_APIEXPORT ur_result_t UR_APICALL
37353747
urUSMPoolRetain(
37363748
ur_usm_pool_handle_t pPool ///< [in][retain] pointer to USM memory pool
@@ -3753,6 +3765,7 @@ urUSMPoolRetain(
37533765
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
37543766
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
37553767
/// + `NULL == pPool`
3768+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
37563769
UR_APIEXPORT ur_result_t UR_APICALL
37573770
urUSMPoolRelease(
37583771
ur_usm_pool_handle_t pPool ///< [in][release] pointer to USM memory pool
@@ -3794,6 +3807,7 @@ typedef enum ur_usm_pool_info_t {
37943807
/// + `pPropValue == NULL && pPropSizeRet == NULL`
37953808
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
37963809
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3810+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
37973811
UR_APIEXPORT ur_result_t UR_APICALL
37983812
urUSMPoolGetInfo(
37993813
ur_usm_pool_handle_t hPool, ///< [in] handle of the USM memory pool

include/ur_print.hpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2550,6 +2550,9 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) {
25502550
case UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT:
25512551
os << "UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT";
25522552
break;
2553+
case UR_DEVICE_INFO_USM_POOL_SUPPORT:
2554+
os << "UR_DEVICE_INFO_USM_POOL_SUPPORT";
2555+
break;
25532556
case UR_DEVICE_INFO_COMMAND_BUFFER_SUPPORT_EXP:
25542557
os << "UR_DEVICE_INFO_COMMAND_BUFFER_SUPPORT_EXP";
25552558
break;
@@ -4052,6 +4055,18 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
40524055

40534056
os << ")";
40544057
} break;
4058+
case UR_DEVICE_INFO_USM_POOL_SUPPORT: {
4059+
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4060+
if (sizeof(ur_bool_t) > size) {
4061+
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4062+
return UR_RESULT_ERROR_INVALID_SIZE;
4063+
}
4064+
os << (const void *)(tptr) << " (";
4065+
4066+
os << *tptr;
4067+
4068+
os << ")";
4069+
} break;
40554070
case UR_DEVICE_INFO_COMMAND_BUFFER_SUPPORT_EXP: {
40564071
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
40574072
if (sizeof(ur_bool_t) > size) {

scripts/core/device.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,8 @@ etors:
441441
desc: "[$x_device_handle_t] The composite device containing this component device."
442442
- name: GLOBAL_VARIABLE_SUPPORT
443443
desc: "[$x_bool_t] return true if the device supports the `EnqueueDeviceGlobalVariableWrite` and `EnqueueDeviceGlobalVariableRead` entry points."
444+
- name: USM_POOL_SUPPORT
445+
desc: "[$x_bool_t] return true if the device supports USM pooling. Pertains to the `USMPool` entry points and usage of the `pool` parameter of the USM alloc entry points."
444446
--- #--------------------------------------------------------------------------
445447
type: function
446448
desc: "Retrieves various information about device"

scripts/core/usm.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,8 @@ returns:
264264
- "`size` is greater than $X_DEVICE_INFO_MAX_MEM_ALLOC_SIZE."
265265
- $X_RESULT_ERROR_OUT_OF_HOST_MEMORY
266266
- $X_RESULT_ERROR_OUT_OF_RESOURCES
267+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE:
268+
- "If any device associated with `hContext` reports `false` for $X_DEVICE_INFO_USM_POOL_SUPPORT"
267269
--- #--------------------------------------------------------------------------
268270
type: function
269271
desc: "USM allocate device memory"
@@ -309,6 +311,8 @@ returns:
309311
- "`size` is greater than $X_DEVICE_INFO_MAX_MEM_ALLOC_SIZE."
310312
- $X_RESULT_ERROR_OUT_OF_HOST_MEMORY
311313
- $X_RESULT_ERROR_OUT_OF_RESOURCES
314+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE:
315+
- "If any device associated with `hContext` reports `false` for $X_DEVICE_INFO_USM_POOL_SUPPORT"
312316
--- #--------------------------------------------------------------------------
313317
type: function
314318
desc: "USM allocate shared memory"
@@ -355,6 +359,8 @@ returns:
355359
- "If `UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT` and `UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT` are both false."
356360
- $X_RESULT_ERROR_OUT_OF_HOST_MEMORY
357361
- $X_RESULT_ERROR_OUT_OF_RESOURCES
362+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE:
363+
- "If any device associated with `hContext` reports `false` for $X_DEVICE_INFO_USM_POOL_SUPPORT"
358364
--- #--------------------------------------------------------------------------
359365
type: function
360366
desc: "Free the USM memory object"
@@ -424,6 +430,8 @@ returns:
424430
- $X_RESULT_ERROR_INVALID_NULL_HANDLE
425431
- $X_RESULT_ERROR_INVALID_VALUE
426432
- $X_RESULT_ERROR_OUT_OF_HOST_MEMORY
433+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE:
434+
- "If any device associated with `hContext` reports `false` for $X_DEVICE_INFO_USM_POOL_SUPPORT"
427435
--- #--------------------------------------------------------------------------
428436
type: function
429437
desc: "Get a reference to the pool handle. Increment its reference count"
@@ -436,6 +444,7 @@ params:
436444
desc: "[in][retain] pointer to USM memory pool"
437445
returns:
438446
- $X_RESULT_ERROR_INVALID_NULL_HANDLE
447+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE
439448
--- #--------------------------------------------------------------------------
440449
type: function
441450
desc: "Decrement the pool's reference count and delete the pool if the reference count becomes zero."
@@ -452,6 +461,7 @@ params:
452461
desc: "[in][release] pointer to USM memory pool"
453462
returns:
454463
- $X_RESULT_ERROR_INVALID_NULL_HANDLE
464+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE
455465
--- #--------------------------------------------------------------------------
456466
type: enum
457467
desc: "Get USM memory pool information"
@@ -499,3 +509,4 @@ returns:
499509
- "`pPropValue == NULL && pPropSizeRet == NULL`"
500510
- $X_RESULT_ERROR_OUT_OF_HOST_MEMORY
501511
- $X_RESULT_ERROR_OUT_OF_RESOURCES
512+
- $X_RESULT_ERROR_UNSUPPORTED_FEATURE

source/adapters/cuda/device.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
10761076
return ReturnValue(static_cast<ur_bool_t>(false));
10771077
case UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT:
10781078
return ReturnValue(static_cast<ur_bool_t>(true));
1079+
case UR_DEVICE_INFO_USM_POOL_SUPPORT:
1080+
return ReturnValue(static_cast<ur_bool_t>(true));
10791081
case UR_DEVICE_INFO_COMPONENT_DEVICES:
10801082
case UR_DEVICE_INFO_COMPOSITE_DEVICE:
10811083
case UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS:

source/adapters/hip/device.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -889,6 +889,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
889889

890890
case UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT:
891891
return ReturnValue(ur_bool_t{false});
892+
case UR_DEVICE_INFO_USM_POOL_SUPPORT:
893+
return ReturnValue(ur_bool_t{true});
892894
// TODO: Investigate if this information is available on HIP.
893895
case UR_DEVICE_INFO_COMPONENT_DEVICES:
894896
case UR_DEVICE_INFO_COMPOSITE_DEVICE:

source/adapters/level_zero/device.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,8 @@ ur_result_t urDeviceGetInfo(
11551155
return ReturnValue(false);
11561156
case UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT:
11571157
return ReturnValue(true);
1158+
case UR_DEVICE_INFO_USM_POOL_SUPPORT:
1159+
return ReturnValue(true);
11581160
default:
11591161
logger::error("Unsupported ParamName in urGetDeviceInfo");
11601162
logger::error("ParamNameParamName={}(0x{})", ParamName,

source/adapters/native_cpu/device.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
414414
case UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP:
415415
return ReturnValue(false);
416416

417+
case UR_DEVICE_INFO_USM_POOL_SUPPORT:
418+
return ReturnValue(false);
419+
417420
default:
418421
DIE_NO_IMPLEMENTATION;
419422
}

source/adapters/opencl/device.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
10481048
case UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: {
10491049
return ReturnValue(false);
10501050
}
1051+
1052+
case UR_DEVICE_INFO_USM_POOL_SUPPORT: {
1053+
return ReturnValue(false);
1054+
}
1055+
10511056
/* TODO: Check regularly to see if support is enabled in OpenCL. Intel GPU
10521057
* EU device-specific information extensions. Some of the queries are
10531058
* enabled by cl_intel_device_attribute_query extension, but it's not yet in

source/adapters/opencl/ur_interface_loader.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,10 @@ urGetUSMProcAddrTable(ur_api_version_t Version, ur_usm_dditable_t *pDdiTable) {
238238
pDdiTable->pfnFree = urUSMFree;
239239
pDdiTable->pfnGetMemAllocInfo = urUSMGetMemAllocInfo;
240240
pDdiTable->pfnHostAlloc = urUSMHostAlloc;
241-
pDdiTable->pfnPoolCreate = nullptr;
242-
pDdiTable->pfnPoolRetain = nullptr;
243-
pDdiTable->pfnPoolRelease = nullptr;
244-
pDdiTable->pfnPoolGetInfo = nullptr;
241+
pDdiTable->pfnPoolCreate = urUSMPoolCreate;
242+
pDdiTable->pfnPoolRetain = urUSMPoolRetain;
243+
pDdiTable->pfnPoolRelease = urUSMPoolRelease;
244+
pDdiTable->pfnPoolGetInfo = urUSMPoolGetInfo;
245245
pDdiTable->pfnSharedAlloc = urUSMSharedAlloc;
246246
return UR_RESULT_SUCCESS;
247247
}

source/adapters/opencl/usm.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,3 +703,28 @@ urUSMReleaseExp([[maybe_unused]] ur_context_handle_t Context,
703703
[[maybe_unused]] void *HostPtr) {
704704
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
705705
}
706+
707+
UR_APIEXPORT ur_result_t UR_APICALL
708+
urUSMPoolCreate([[maybe_unused]] ur_context_handle_t hContext,
709+
[[maybe_unused]] ur_usm_pool_desc_t *pPoolDesc,
710+
[[maybe_unused]] ur_usm_pool_handle_t *ppPool) {
711+
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
712+
}
713+
714+
UR_APIEXPORT ur_result_t UR_APICALL
715+
urUSMPoolRetain([[maybe_unused]] ur_usm_pool_handle_t pPool) {
716+
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
717+
}
718+
719+
UR_APIEXPORT ur_result_t UR_APICALL
720+
urUSMPoolRelease([[maybe_unused]] ur_usm_pool_handle_t pPool) {
721+
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
722+
}
723+
724+
UR_APIEXPORT ur_result_t UR_APICALL urUSMPoolGetInfo(
725+
[[maybe_unused]] ur_usm_pool_handle_t hPool,
726+
[[maybe_unused]] ur_usm_pool_info_t propName,
727+
[[maybe_unused]] size_t propSize, [[maybe_unused]] void *pPropValue,
728+
[[maybe_unused]] size_t *pPropSizeRet) {
729+
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
730+
}

source/loader/ur_libapi.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2258,6 +2258,8 @@ ur_result_t UR_APICALL urSamplerCreateWithNativeHandle(
22582258
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
22592259
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
22602260
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2261+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2262+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
22612263
ur_result_t UR_APICALL urUSMHostAlloc(
22622264
ur_context_handle_t hContext, ///< [in] handle of the context object
22632265
const ur_usm_desc_t
@@ -2316,6 +2318,8 @@ ur_result_t UR_APICALL urUSMHostAlloc(
23162318
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
23172319
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
23182320
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2321+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2322+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
23192323
ur_result_t UR_APICALL urUSMDeviceAlloc(
23202324
ur_context_handle_t hContext, ///< [in] handle of the context object
23212325
ur_device_handle_t hDevice, ///< [in] handle of the device object
@@ -2376,6 +2380,8 @@ ur_result_t UR_APICALL urUSMDeviceAlloc(
23762380
/// + If `UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT` and `UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT` are both false.
23772381
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
23782382
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2383+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2384+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
23792385
ur_result_t UR_APICALL urUSMSharedAlloc(
23802386
ur_context_handle_t hContext, ///< [in] handle of the context object
23812387
ur_device_handle_t hDevice, ///< [in] handle of the device object
@@ -2490,6 +2496,8 @@ ur_result_t UR_APICALL urUSMGetMemAllocInfo(
24902496
/// + `::UR_USM_POOL_FLAGS_MASK & pPoolDesc->flags`
24912497
/// - ::UR_RESULT_ERROR_INVALID_VALUE
24922498
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
2499+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2500+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
24932501
ur_result_t UR_APICALL urUSMPoolCreate(
24942502
ur_context_handle_t hContext, ///< [in] handle of the context object
24952503
ur_usm_pool_desc_t *
@@ -2517,6 +2525,7 @@ ur_result_t UR_APICALL urUSMPoolCreate(
25172525
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
25182526
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
25192527
/// + `NULL == pPool`
2528+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
25202529
ur_result_t UR_APICALL urUSMPoolRetain(
25212530
ur_usm_pool_handle_t pPool ///< [in][retain] pointer to USM memory pool
25222531
) try {
@@ -2547,6 +2556,7 @@ ur_result_t UR_APICALL urUSMPoolRetain(
25472556
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
25482557
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
25492558
/// + `NULL == pPool`
2559+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
25502560
ur_result_t UR_APICALL urUSMPoolRelease(
25512561
ur_usm_pool_handle_t pPool ///< [in][release] pointer to USM memory pool
25522562
) try {
@@ -2582,6 +2592,7 @@ ur_result_t UR_APICALL urUSMPoolRelease(
25822592
/// + `pPropValue == NULL && pPropSizeRet == NULL`
25832593
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
25842594
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2595+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
25852596
ur_result_t UR_APICALL urUSMPoolGetInfo(
25862597
ur_usm_pool_handle_t hPool, ///< [in] handle of the USM memory pool
25872598
ur_usm_pool_info_t propName, ///< [in] name of the pool property to query

source/ur_api.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1952,6 +1952,8 @@ ur_result_t UR_APICALL urSamplerCreateWithNativeHandle(
19521952
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
19531953
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
19541954
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
1955+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
1956+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
19551957
ur_result_t UR_APICALL urUSMHostAlloc(
19561958
ur_context_handle_t hContext, ///< [in] handle of the context object
19571959
const ur_usm_desc_t
@@ -2004,6 +2006,8 @@ ur_result_t UR_APICALL urUSMHostAlloc(
20042006
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
20052007
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
20062008
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2009+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2010+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
20072011
ur_result_t UR_APICALL urUSMDeviceAlloc(
20082012
ur_context_handle_t hContext, ///< [in] handle of the context object
20092013
ur_device_handle_t hDevice, ///< [in] handle of the device object
@@ -2058,6 +2062,8 @@ ur_result_t UR_APICALL urUSMDeviceAlloc(
20582062
/// + If `UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT` and `UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT` are both false.
20592063
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
20602064
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2065+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2066+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
20612067
ur_result_t UR_APICALL urUSMSharedAlloc(
20622068
ur_context_handle_t hContext, ///< [in] handle of the context object
20632069
ur_device_handle_t hDevice, ///< [in] handle of the device object
@@ -2152,6 +2158,8 @@ ur_result_t UR_APICALL urUSMGetMemAllocInfo(
21522158
/// + `::UR_USM_POOL_FLAGS_MASK & pPoolDesc->flags`
21532159
/// - ::UR_RESULT_ERROR_INVALID_VALUE
21542160
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
2161+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
2162+
/// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
21552163
ur_result_t UR_APICALL urUSMPoolCreate(
21562164
ur_context_handle_t hContext, ///< [in] handle of the context object
21572165
ur_usm_pool_desc_t *
@@ -2173,6 +2181,7 @@ ur_result_t UR_APICALL urUSMPoolCreate(
21732181
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
21742182
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
21752183
/// + `NULL == pPool`
2184+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
21762185
ur_result_t UR_APICALL urUSMPoolRetain(
21772186
ur_usm_pool_handle_t pPool ///< [in][retain] pointer to USM memory pool
21782187
) {
@@ -2197,6 +2206,7 @@ ur_result_t UR_APICALL urUSMPoolRetain(
21972206
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
21982207
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
21992208
/// + `NULL == pPool`
2209+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
22002210
ur_result_t UR_APICALL urUSMPoolRelease(
22012211
ur_usm_pool_handle_t pPool ///< [in][release] pointer to USM memory pool
22022212
) {
@@ -2226,6 +2236,7 @@ ur_result_t UR_APICALL urUSMPoolRelease(
22262236
/// + `pPropValue == NULL && pPropSizeRet == NULL`
22272237
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
22282238
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
2239+
/// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
22292240
ur_result_t UR_APICALL urUSMPoolGetInfo(
22302241
ur_usm_pool_handle_t hPool, ///< [in] handle of the USM memory pool
22312242
ur_usm_pool_info_t propName, ///< [in] name of the pool property to query

0 commit comments

Comments
 (0)