@@ -1639,6 +1639,9 @@ typedef enum ur_device_info_t {
1639
1639
UR_DEVICE_INFO_GLOBAL_VARIABLE_SUPPORT = 118, ///< [::ur_bool_t] return true if the device supports the
1640
1640
///< `EnqueueDeviceGlobalVariableWrite` and
1641
1641
///< `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.
1642
1645
UR_DEVICE_INFO_COMMAND_BUFFER_SUPPORT_EXP = 0x1000, ///< [::ur_bool_t] Returns true if the device supports the use of
1643
1646
///< command-buffers.
1644
1647
UR_DEVICE_INFO_COMMAND_BUFFER_UPDATE_CAPABILITIES_EXP = 0x1001, ///< [::ur_device_command_buffer_update_capability_flags_t] Command-buffer
@@ -3503,7 +3506,6 @@ typedef struct ur_usm_pool_limits_desc_t {
3503
3506
/// @brief USM allocate host memory
3504
3507
///
3505
3508
/// @details
3506
- /// - This function must support memory pooling.
3507
3509
/// - If pUSMDesc is not NULL and pUSMDesc->pool is not NULL the allocation
3508
3510
/// will be served from a specified memory pool.
3509
3511
/// - Otherwise, the behavior is implementation-defined.
@@ -3536,6 +3538,8 @@ typedef struct ur_usm_pool_limits_desc_t {
3536
3538
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
3537
3539
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3538
3540
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3541
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3542
+ /// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
3539
3543
UR_APIEXPORT ur_result_t UR_APICALL
3540
3544
urUSMHostAlloc(
3541
3545
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3549,7 +3553,6 @@ urUSMHostAlloc(
3549
3553
/// @brief USM allocate device memory
3550
3554
///
3551
3555
/// @details
3552
- /// - This function must support memory pooling.
3553
3556
/// - If pUSMDesc is not NULL and pUSMDesc->pool is not NULL the allocation
3554
3557
/// will be served from a specified memory pool.
3555
3558
/// - Otherwise, the behavior is implementation-defined.
@@ -3583,6 +3586,8 @@ urUSMHostAlloc(
3583
3586
/// + `size` is greater than ::UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE.
3584
3587
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3585
3588
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3589
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3590
+ /// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
3586
3591
UR_APIEXPORT ur_result_t UR_APICALL
3587
3592
urUSMDeviceAlloc(
3588
3593
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3597,7 +3602,6 @@ urUSMDeviceAlloc(
3597
3602
/// @brief USM allocate shared memory
3598
3603
///
3599
3604
/// @details
3600
- /// - This function must support memory pooling.
3601
3605
/// - If pUSMDesc is not NULL and pUSMDesc->pool is not NULL the allocation
3602
3606
/// will be served from a specified memory pool.
3603
3607
/// - Otherwise, the behavior is implementation-defined.
@@ -3632,6 +3636,8 @@ urUSMDeviceAlloc(
3632
3636
/// + If `UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT` and `UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT` are both false.
3633
3637
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3634
3638
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3639
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3640
+ /// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
3635
3641
UR_APIEXPORT ur_result_t UR_APICALL
3636
3642
urUSMSharedAlloc(
3637
3643
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3713,6 +3719,8 @@ urUSMGetMemAllocInfo(
3713
3719
/// + `::UR_USM_POOL_FLAGS_MASK & pPoolDesc->flags`
3714
3720
/// - ::UR_RESULT_ERROR_INVALID_VALUE
3715
3721
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3722
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3723
+ /// + If any device associated with `hContext` reports `false` for ::UR_DEVICE_INFO_USM_POOL_SUPPORT
3716
3724
UR_APIEXPORT ur_result_t UR_APICALL
3717
3725
urUSMPoolCreate(
3718
3726
ur_context_handle_t hContext, ///< [in] handle of the context object
@@ -3731,6 +3739,7 @@ urUSMPoolCreate(
3731
3739
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
3732
3740
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
3733
3741
/// + `NULL == pPool`
3742
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3734
3743
UR_APIEXPORT ur_result_t UR_APICALL
3735
3744
urUSMPoolRetain(
3736
3745
ur_usm_pool_handle_t pPool ///< [in][retain] pointer to USM memory pool
@@ -3753,6 +3762,7 @@ urUSMPoolRetain(
3753
3762
/// - ::UR_RESULT_ERROR_ADAPTER_SPECIFIC
3754
3763
/// - ::UR_RESULT_ERROR_INVALID_NULL_HANDLE
3755
3764
/// + `NULL == pPool`
3765
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3756
3766
UR_APIEXPORT ur_result_t UR_APICALL
3757
3767
urUSMPoolRelease(
3758
3768
ur_usm_pool_handle_t pPool ///< [in][release] pointer to USM memory pool
@@ -3794,6 +3804,7 @@ typedef enum ur_usm_pool_info_t {
3794
3804
/// + `pPropValue == NULL && pPropSizeRet == NULL`
3795
3805
/// - ::UR_RESULT_ERROR_OUT_OF_HOST_MEMORY
3796
3806
/// - ::UR_RESULT_ERROR_OUT_OF_RESOURCES
3807
+ /// - ::UR_RESULT_ERROR_UNSUPPORTED_FEATURE
3797
3808
UR_APIEXPORT ur_result_t UR_APICALL
3798
3809
urUSMPoolGetInfo(
3799
3810
ur_usm_pool_handle_t hPool, ///< [in] handle of the USM memory pool
0 commit comments