diff --git a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td index 4939808595680..4fef4c918351d 100644 --- a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td +++ b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td @@ -53,8 +53,8 @@ def AspectExt_oneapi_bindless_images : Aspect<"ext_oneapi_bindless_images">; def AspectExt_oneapi_bindless_images_shared_usm : Aspect<"ext_oneapi_bindless_images_shared_usm">; def AspectExt_oneapi_bindless_images_1d_usm : Aspect<"ext_oneapi_bindless_images_1d_usm">; def AspectExt_oneapi_bindless_images_2d_usm : Aspect<"ext_oneapi_bindless_images_2d_usm">; -def AspectExt_oneapi_interop_memory_import : Aspect<"ext_oneapi_interop_memory_import">; -def AspectExt_oneapi_interop_semaphore_import : Aspect<"ext_oneapi_interop_semaphore_import">; +def AspectExt_oneapi_external_memory_import : Aspect<"ext_oneapi_external_memory_import">; +def AspectExt_oneapi_external_semaphore_import : Aspect<"ext_oneapi_external_semaphore_import">; def AspectExt_oneapi_mipmap : Aspect<"ext_oneapi_mipmap">; def AspectExt_oneapi_mipmap_anisotropy : Aspect<"ext_oneapi_mipmap_anisotropy">; def AspectExt_oneapi_mipmap_level_reference : Aspect<"ext_oneapi_mipmap_level_reference">; @@ -130,9 +130,9 @@ def : TargetInfo<"__TestAspectList", AspectExt_intel_device_id, AspectExt_intel_memory_clock_rate, AspectExt_intel_memory_bus_width, AspectEmulated, AspectExt_intel_legacy_image, AspectExt_oneapi_bindless_images, AspectExt_oneapi_bindless_images_shared_usm, AspectExt_oneapi_bindless_images_1d_usm, AspectExt_oneapi_bindless_images_2d_usm, - AspectExt_oneapi_interop_memory_import, AspectExt_oneapi_interop_semaphore_import, + AspectExt_oneapi_external_memory_import, AspectExt_oneapi_external_semaphore_import, AspectExt_oneapi_mipmap, AspectExt_oneapi_mipmap_anisotropy, AspectExt_oneapi_mipmap_level_reference, - AspectExt_oneapi_bindless_sampled_image_fetch_3d, AspectExt_oneapi_cubemap, + AspectExt_oneapi_cubemap, AspectExt_oneapi_cubemap_seamless_filtering, AspectExt_oneapi_image_array, AspectExt_oneapi_unique_addressing_per_dim, @@ -140,6 +140,7 @@ def : TargetInfo<"__TestAspectList", AspectExt_oneapi_bindless_images_sample_2d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_1d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_1d, AspectExt_oneapi_bindless_sampled_image_fetch_2d_usm, AspectExt_oneapi_bindless_sampled_image_fetch_2d, + AspectExt_oneapi_bindless_sampled_image_fetch_3d, AspectExt_intel_esimd, AspectExt_oneapi_ballot_group, AspectExt_oneapi_fixed_size_group, AspectExt_oneapi_opportunistic_group, AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component, @@ -220,8 +221,8 @@ defvar CudaMinAspects = !listconcat(AllUSMAspects, [AspectGpu, AspectFp64, Aspec AspectExt_oneapi_opportunistic_group, AspectExt_oneapi_graph, AspectExt_oneapi_limited_graph]); // Bindless images aspects are partially supported on CUDA and disabled by default at the moment. defvar CudaBindlessImagesAspects = [AspectExt_oneapi_bindless_images, AspectExt_oneapi_bindless_images_shared_usm, - AspectExt_oneapi_bindless_images_1d_usm, AspectExt_oneapi_bindless_images_2d_usm, AspectExt_oneapi_interop_memory_import, - AspectExt_oneapi_interop_semaphore_import, AspectExt_oneapi_mipmap, AspectExt_oneapi_mipmap_anisotropy, + AspectExt_oneapi_bindless_images_1d_usm, AspectExt_oneapi_bindless_images_2d_usm, AspectExt_oneapi_external_memory_import, + AspectExt_oneapi_external_semaphore_import, AspectExt_oneapi_mipmap, AspectExt_oneapi_mipmap_anisotropy, AspectExt_oneapi_mipmap_level_reference, AspectExt_oneapi_cubemap, AspectExt_oneapi_cubemap_seamless_filtering, AspectExt_oneapi_image_array, AspectExt_oneapi_unique_addressing_per_dim, AspectExt_oneapi_bindless_images_sample_2d_usm, AspectExt_oneapi_bindless_images_sample_2d_usm]; diff --git a/sycl/cmake/modules/FetchUnifiedRuntime.cmake b/sycl/cmake/modules/FetchUnifiedRuntime.cmake index 35a9142059418..6da3439a84003 100644 --- a/sycl/cmake/modules/FetchUnifiedRuntime.cmake +++ b/sycl/cmake/modules/FetchUnifiedRuntime.cmake @@ -116,13 +116,12 @@ if(SYCL_PI_UR_USE_FETCH_CONTENT) endfunction() set(UNIFIED_RUNTIME_REPO "https://github.com/oneapi-src/unified-runtime.git") - # commit a985a81dc9ba8adfcc8b54e35ad287e97766fb3e - # Merge: b7b0c8b3 f772f907 - # Author: Piotr Balcer - # Date: Mon Jul 29 09:11:29 2024 +0200 - # Merge pull request #1905 from igchor/umf_hwloc_disable - # Bump UMF version to allow disabling hwloc - set(UNIFIED_RUNTIME_TAG a985a81dc9ba8adfcc8b54e35ad287e97766fb3e) + # commit bc1a28ede0df7f837047b632e00437587672c134 + # Author: Omar Ahmed + # Date: Mon Jul 29 16:44:58 2024 +0100 + # Merge pull request #1819 from DBDuncan/sean/rename-interop-to-external + # [Bindless][Exp] Rename interop related structs/funcs with "external" + set(UNIFIED_RUNTIME_TAG bc1a28ede0df7f837047b632e00437587672c134) set(UMF_BUILD_EXAMPLES OFF CACHE INTERNAL "EXAMPLES") # Due to the use of dependentloadflag and no installer for UMF and hwloc we need diff --git a/sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc b/sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc index 866ac03436ab3..1a7a9062885db 100644 --- a/sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc +++ b/sycl/doc/extensions/experimental/sycl_ext_oneapi_bindless_images.asciidoc @@ -1591,9 +1591,9 @@ The device aspect descriptors for these queries are: [frame="none",options="header"] |====================== |Device descriptor |Description -|`aspect::ext_oneapi_interop_memory_import` | Indicates if the device supports +|`aspect::ext_oneapi_external_memory_import` | Indicates if the device supports importing external memory resources. -|`aspect::ext_oneapi_interop_semaphore_import`` | Indicates if the device +|`aspect::ext_oneapi_external_semaphore_import`` | Indicates if the device supports importing external semaphore resources. |====================== @@ -1687,35 +1687,35 @@ resource type. ```cpp namespace sycl::ext::oneapi::experimental { -struct interop_mem_handle { +struct external_mem { using raw_handle_type = /* Implementation defined */; raw_handle_type raw_handle; }; template -interop_mem_handle import_external_memory( +external_mem import_external_memory( external_mem_descriptor externalMemDescriptor, const sycl::device &syclDevice, const sycl::context &syclContext); template -interop_mem_handle import_external_memory( +external_mem import_external_memory( external_mem_descriptor externalMemDescriptor, const sycl::queue &syclQueue); image_mem_handle map_external_image_memory( - interop_mem_handle interopMemHandle, + external_mem externalMemHandle, const image_descriptor &imageDescriptor, const sycl::device &syclDevice, const sycl::context &syclContext); image_mem_handle map_external_image_memory( - interop_mem_handle interopMemHandle, + external_mem externalMemHandle, const image_descriptor &imageDescriptor, const sycl::queue &syclQueue); } ``` -The resulting `interop_mem_handle` can then be mapped, where the resulting type +The resulting `external_mem` can then be mapped, where the resulting type is an `image_mem_handle`. This can be used to construct images in the same way as memory allocated through `alloc_image_mem`. The `ext_oneapi_copy` operations also work with imported memory mapped to `image_mem_handle` types. @@ -1734,16 +1734,16 @@ behaviour. Once a user has finished operating on imported memory, they must ensure that they destroy the imported memory handle through `release_external_memory`. -`release_external_memory` can only accept `interop_mem_handles` that were +`release_external_memory` can only accept `external_mem` objects that were created through `import_external_memory`. ```cpp namespace sycl::ext::oneapi::experimental { -void release_external_memory(interop_mem_handle interopMem, +void release_external_memory(external_mem externalMem, const sycl::device &syclDevice, const sycl::context &syclContext); -void release_external_memory(interop_mem_handle interopMem, +void release_external_memory(external_mem externalMem, const sycl::queue &syclQueue); } ``` @@ -1807,27 +1807,27 @@ compatible with the `resource_fd` resource type. ```cpp namespace sycl::ext::oneapi::experimental { -struct interop_semaphore_handle { +struct external_semaphore { using raw_handle_type = /* Implementation defined */; raw_handle_type raw_handle; }; template -interop_semaphore_handle import_external_semaphore( +external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDescriptor, const sycl::device &syclDevice, const sycl::context &syclContext); template -interop_semaphore_handle import_external_semaphore( +external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDescriptor, const sycl::queue &syclQueue); } ``` -The resulting `interop_semaphore_handle` can then be used in a SYCL command +The resulting `external_semaphore` can then be used in a SYCL command group, to either wait until the semaphore signalled, or signal the semaphore. If the type of semaphore imported supports setting the state of discrete @@ -1843,77 +1843,77 @@ namespace sycl { class handler { public: void ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle); + ext::oneapi::experimental::external_semaphore + external_semaphore); void ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t wait_value); void ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle); + ext::oneapi::experimental::external_semaphore + external_semaphore); void ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t signal_value); }; class queue { public: event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle); + ext::oneapi::experimental::external_semaphore + external_semaphore); event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, event DepEvent); event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, const std::vector &DepEvents); event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t wait_value); event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t wait_value, event DepEvent); event ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t wait_value, const std::vector &DepEvents); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle); + ext::oneapi::experimental::external_semaphore + external_semaphore); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, event DepEvent); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, const std::vector &DepEvents); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t signal_value); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t signal_value, event DepEvent); event ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle - interop_semaphore_handle, + ext::oneapi::experimental::external_semaphore + external_semaphore, uint64_t signal_value, const std::vector &DepEvents); }; @@ -1952,11 +1952,11 @@ access the external semaphore once they are no longer required through ```cpp namespace sycl::ext::oneapi::experimental { -void release_external_semaphore(interop_semaphore_handle semaphoreHandle, +void release_external_semaphore(external_semaphore semaphoreHandle, const sycl::device &syclDevice, const sycl::context &syclContext); -void release_external_semaphore(interop_semaphore_handle semaphoreHandle, +void release_external_semaphore(external_semaphore semaphoreHandle, const sycl::queue &syclQueue); } @@ -2547,34 +2547,34 @@ sycl::ext::oneapi::experimental::external_semaphore_descriptor< try { // Extension: import external semaphores - sycl::ext::oneapi::experimental::interop_semaphore_handle - wait_interop_semaphore_handle = + sycl::ext::oneapi::experimental::external_semaphore + wait_external_semaphore = sycl::ext::oneapi::experimental::import_external_semaphore( wait_external_semaphore_desc, queue); - sycl::ext::oneapi::experimental::interop_semaphore_handle - done_interop_semaphore_handle = + sycl::ext::oneapi::experimental::external_semaphore + done_external_semaphore = sycl::ext::oneapi::experimental::import_external_semaphore( done_external_semaphore_desc, queue); // Extension: import external memory from descriptors - sycl::ext::oneapi::experimental::interop_mem_handle - input_interop_mem_handle = + sycl::ext::oneapi::experimental::external_mem + input_external_mem = sycl::ext::oneapi::experimental::import_external_memory( input_ext_mem_desc, queue); - sycl::ext::oneapi::experimental::interop_mem_handle - output_interop_mem_handle = + sycl::ext::oneapi::experimental::external_mem + output_external_mem = sycl::ext::oneapi::experimental::import_external_memory( output_ext_mem_desc, queue); // Extension: map imported external memory to image memory sycl::ext::oneapi::experimental::image_mem_handle input_mapped_mem_handle = sycl::ext::oneapi::experimental::map_external_image_memory( - input_interop_mem_handle, desc, queue); + input_external_mem, desc, queue); sycl::ext::oneapi::experimental::image_mem_handle output_mapped_mem_handle = sycl::ext::oneapi::experimental::map_external_image_memory( - output_interop_mem_handle, desc, queue); + output_external_mem, desc, queue); // Extension: create images from mapped memory and return the handles sycl::ext::oneapi::experimental::unsampled_image_handle img_input = @@ -2585,7 +2585,7 @@ try { output_mapped_mem_handle, desc, queue); // Extension: wait for imported semaphore - q.ext_oneapi_wait_external_semaphore(wait_interop_semaphore_handle) + q.ext_oneapi_wait_external_semaphore(wait_external_semaphore) // Submit our kernel that depends on imported "wait_semaphore_file_descriptor" q.submit([&](sycl::handler &cgh) { @@ -2610,7 +2610,7 @@ try { }); // Extension: signal imported semaphore - q.ext_oneapi_signal_external_semaphore(done_interop_semaphore_handle) + q.ext_oneapi_signal_external_semaphore(done_external_semaphore) // The external API can now use the semaphore it exported to // "done_semaphore_file_descriptor" to schedule its own command submissions @@ -2619,13 +2619,13 @@ try { // Extension: destroy all external resources sycl::ext::oneapi::experimental::release_external_memory( - input_interop_mem_handle, queue); + input_external_mem, queue); sycl::ext::oneapi::experimental::release_external_memory( - output_interop_mem_handle, queue); + output_external_mem, queue); sycl::ext::oneapi::experimental::release_external_semaphore( - wait_interop_semaphore_handle, queue); + wait_external_semaphore, queue); sycl::ext::oneapi::experimental::release_external_semaphore( - done_interop_semaphore_handle, queue); + done_external_semaphore, queue); sycl::ext::oneapi::experimental::destroy_image_handle(img_input, queue); sycl::ext::oneapi::experimental::destroy_image_handle(img_output, queue); } catch (sycl::exception e) { @@ -2859,4 +2859,11 @@ These features still need to be handled: 3D USM images as they are not supported on any platform. - Refine the description of `ext_oneapi_bindless_images` aspect to indicate support for bindless image APIs. +|5.16|2024-07-24| - Renamed interop aspect queries, handles, semaphore wait and + signal functions, by replacing `interop` with `external` for + consistency with other interop related structs/funcs and + 3rd party interop API naming. + - Removed `handle` keyword from `interop_xxx_handle` to + clear up possible confusion between 3rd party interop + handles and the imported `interop_xxx_handle`. |====================== diff --git a/sycl/include/sycl/device_aspect_macros.hpp b/sycl/include/sycl/device_aspect_macros.hpp index 385afb05c3ce4..b3b614fae58ce 100644 --- a/sycl/include/sycl/device_aspect_macros.hpp +++ b/sycl/include/sycl/device_aspect_macros.hpp @@ -233,14 +233,14 @@ #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_bindless_images_2d_usm__ 0 #endif -#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_interop_memory_import__ -//__SYCL_ASPECT(ext_oneapi_interop_memory_import, 46) -#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_interop_memory_import__ 0 +#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_external_memory_import__ +//__SYCL_ASPECT(ext_oneapi_external_memory_import, 46) +#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_external_memory_import__ 0 #endif -#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_interop_semaphore_import__ -//__SYCL_ASPECT(ext_oneapi_interop_semaphore_import, 48) -#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_interop_semaphore_import__ 0 +#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_external_semaphore_import__ +//__SYCL_ASPECT(ext_oneapi_external_semaphore_import, 48) +#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_external_semaphore_import__ 0 #endif #ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_mipmap__ @@ -615,14 +615,14 @@ #define __SYCL_ANY_DEVICE_HAS_ext_oneapi_bindless_images_2d_usm__ 0 #endif -#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_interop_memory_import__ -//__SYCL_ASPECT(ext_oneapi_interop_memory_import, 46) -#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_interop_memory_import__ 0 +#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_external_memory_import__ +//__SYCL_ASPECT(ext_oneapi_external_memory_import, 46) +#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_external_memory_import__ 0 #endif -#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_interop_semaphore_import__ -//__SYCL_ASPECT(ext_oneapi_interop_semaphore_import, 48) -#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_interop_semaphore_import__ 0 +#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_external_semaphore_import__ +//__SYCL_ASPECT(ext_oneapi_external_semaphore_import, 48) +#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_external_semaphore_import__ 0 #endif #ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_mipmap__ diff --git a/sycl/include/sycl/ext/oneapi/bindless_images.hpp b/sycl/include/sycl/ext/oneapi/bindless_images.hpp index 447e66ea50e98..dcd707aaa0be3 100644 --- a/sycl/include/sycl/ext/oneapi/bindless_images.hpp +++ b/sycl/include/sycl/ext/oneapi/bindless_images.hpp @@ -12,7 +12,7 @@ #include // for __SYCL_EXPORT #include // for device #include // for image_desc... -#include // for interop_me... +#include // for external_m... #include // for image_mem_... #include // for bindless_i... #include // for image_chan... @@ -124,150 +124,134 @@ get_mip_level_mem_handle(const image_mem_handle mipMem, unsigned int level, const sycl::queue &syclQueue); /** - * @brief Import external memory taking an external memory handle (the type - * of which is dependent on the OS & external API) and return an - * interop memory handle + * @brief Import external memory taking an external memory descriptor (the + * type of which is dependent on the OS & external API) and return an + * imported external memory object * - * @tparam ExternalMemHandleType Handle type describing external memory handle - * @param externalMem External memory descriptor - * @param syclDevice The device in which we create our interop memory - * @param syclContext The context in which we create our interop memory - * handle - * @return Interop memory handle to the external memory + * @tparam ResourceType Resource type differentiating external resource types + * @param externalMemDesc External memory descriptor + * @param syclDevice The device in which we create our external memory + * @param syclContext The context in which we create our external memory + * @return Imported opaque external memory */ -template -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, +template +__SYCL_EXPORT external_mem import_external_memory( + external_mem_descriptor externalMemDesc, const sycl::device &syclDevice, const sycl::context &syclContext); /** - * @brief Import external memory taking an external memory handle (the type - * of which is dependent on the OS & external API) and return an - * interop memory handle + * @brief Import external memory taking an external memory descriptor (the + * type of which is dependent on the OS & external API) and return an + * imported external memory object * - * @tparam ExternalMemHandleType Handle type describing external memory handle - * @param externalMem External memory descriptor - * @param syclQueue The queue in which we create our interop memory - * handle - * @return Interop memory handle to the external memory + * @tparam ResourceType Resource type differentiating external resource types + * @param externalMemDesc External memory descriptor + * @param syclQueue The queue in which we create our external memory + * @return Imported opaque external memory */ -template -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, - const sycl::queue &syclQueue); +template +__SYCL_EXPORT external_mem +import_external_memory(external_mem_descriptor externalMemDesc, + const sycl::queue &syclQueue); /** - * @brief Maps an interop memory handle to an image memory handle (which may + * @brief Maps an external memory object to an image memory handle (which may * have a device optimized memory layout) * - * @param memHandle Interop memory handle + * @param extMem External memory object * @param desc The image descriptor - * @param syclDevice The device in which we create our image memory handle + * @param syclDevice The device in which we create our image memory handle * @param syclContext The conext in which we create our image memory handle * @return Memory handle to externally allocated memory on the device */ __SYCL_EXPORT -image_mem_handle map_external_image_memory(interop_mem_handle memHandle, +image_mem_handle map_external_image_memory(external_mem extMem, const image_descriptor &desc, const sycl::device &syclDevice, const sycl::context &syclContext); /** - * @brief Maps an interop memory handle to an image memory handle (which may + * @brief Maps an external memory handle to an image memory handle (which may * have a device optimized memory layout) * - * @param memHandle Interop memory handle + * @param extMem External memory object * @param desc The image descriptor * @param syclQueue The queue in which we create our image memory handle * @return Memory handle to externally allocated memory on the device */ __SYCL_EXPORT -image_mem_handle map_external_image_memory(interop_mem_handle memHandle, +image_mem_handle map_external_image_memory(external_mem extMem, const image_descriptor &desc, const sycl::queue &syclQueue); /** - * @brief Import external semaphore taking an external semaphore handle (the - * type of which is dependent on the OS & external API) + * @brief Import external semaphore taking an external semaphore descriptor + * (the type of which is dependent on the OS & external API) * - * @tparam ExternalSemaphoreHandleType Handle type describing external - * semaphore handle + * @tparam ResourceType Resource type differentiating external resource types * @param externalSemaphoreDesc External semaphore descriptor - * @param syclDevice The device in which we create our interop semaphore - * handle - * @param syclContext The context in which we create our interop semaphore - * handle - * @return Interop semaphore handle to the external semaphore + * @param syclDevice The device in which we create our external semaphore + * @param syclContext The context in which we create our external semaphore + * @return Imported opaque external semaphore */ -template -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( - external_semaphore_descriptor - externalSemaphoreDesc, +template +__SYCL_EXPORT external_semaphore import_external_semaphore( + external_semaphore_descriptor externalSemaphoreDesc, const sycl::device &syclDevice, const sycl::context &syclContext); /** - * @brief Import external semaphore taking an external semaphore handle (the - * type of which is dependent on the OS & external API) + * @brief Import external semaphore taking an external semaphore descriptor + * (the type of which is dependent on the OS & external API) * - * @tparam ExternalSemaphoreHandleType Handle type describing external - * semaphore handle + * @tparam ResourceType Resource type differentiating external resource types * @param externalSemaphoreDesc External semaphore descriptor - * @param syclQueue The queue in which we create our interop semaphore - * handle - * @return Interop semaphore handle to the external semaphore + * @param syclQueue The queue in which we create our external semaphore + * @return Imported opaque external semaphore */ -template -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( - external_semaphore_descriptor - externalSemaphoreDesc, +template +__SYCL_EXPORT external_semaphore import_external_semaphore( + external_semaphore_descriptor externalSemaphoreDesc, const sycl::queue &syclQueue); /** * @brief Release the external semaphore * - * @param semaphoreHandle The interop semaphore handle to destroy - * @param syclDevice The device in which the interop semaphore handle was - * created - * @param syclContext The context in which the interop semaphore handle was - * created + * @param extSemaphore The external semaphore to destroy + * @param syclDevice The device in which the external semaphore was created + * @param syclContext The context in which the external semaphore was + * created */ -__SYCL_EXPORT void -release_external_semaphore(interop_semaphore_handle semaphoreHandle, - const sycl::device &syclDevice, - const sycl::context &syclContext); +__SYCL_EXPORT void release_external_semaphore(external_semaphore extSemaphore, + const sycl::device &syclDevice, + const sycl::context &syclContext); /** * @brief Release the external semaphore * - * @param semaphoreHandle The interop semaphore handle to destroy - * @param syclQueue The queue in which the interop semaphore handle was - * created + * @param extSemaphore The external semaphore to destroy + * @param syclQueue The queue in which the external semaphore was created */ -__SYCL_EXPORT void -release_external_semaphore(interop_semaphore_handle semaphoreHandle, - const sycl::queue &syclQueue); +__SYCL_EXPORT void release_external_semaphore(external_semaphore extSemaphore, + const sycl::queue &syclQueue); /** * @brief Release external memory * - * @param interopHandle The interop memory handle to release - * @param syclDevice The device in which the interop memory handle was - * created - * @param syclContext The context in which the interop memory handle was - * created + * @param externalMem The external memory to release + * @param syclDevice The device in which the external memory was created + * @param syclContext The context in which the external memory was created */ -__SYCL_EXPORT void release_external_memory(interop_mem_handle interopHandle, +__SYCL_EXPORT void release_external_memory(external_mem externalMem, const sycl::device &syclDevice, const sycl::context &syclContext); /** * @brief Release external memory * - * @param interopHandle The interop memory handle to release - * @param syclQueue The queue in which the interop memory handle was - * created + * @param externalMem The external memory to release + * @param syclQueue The queue in which the external memory was created */ -__SYCL_EXPORT void release_external_memory(interop_mem_handle interopHandle, +__SYCL_EXPORT void release_external_memory(external_mem externalMem, const sycl::queue &syclQueue); /** @@ -1642,7 +1626,7 @@ inline event queue::ext_oneapi_copy( } inline event queue::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, event DepEvent, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1654,7 +1638,7 @@ inline event queue::ext_oneapi_wait_external_semaphore( } inline event queue::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, const std::vector &DepEvents, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1666,7 +1650,7 @@ inline event queue::ext_oneapi_wait_external_semaphore( } inline event queue::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t WaitValue, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1677,7 +1661,7 @@ inline event queue::ext_oneapi_wait_external_semaphore( } inline event queue::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t WaitValue, event DepEvent, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1689,7 +1673,7 @@ inline event queue::ext_oneapi_wait_external_semaphore( } inline event queue::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t WaitValue, const std::vector &DepEvents, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); @@ -1702,7 +1686,7 @@ inline event queue::ext_oneapi_wait_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1713,7 +1697,7 @@ inline event queue::ext_oneapi_signal_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, event DepEvent, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1725,7 +1709,7 @@ inline event queue::ext_oneapi_signal_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, const std::vector &DepEvents, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1737,7 +1721,7 @@ inline event queue::ext_oneapi_signal_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t SignalValue, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( @@ -1748,7 +1732,7 @@ inline event queue::ext_oneapi_signal_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t SignalValue, event DepEvent, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); @@ -1761,7 +1745,7 @@ inline event queue::ext_oneapi_signal_external_semaphore( } inline event queue::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t SignalValue, const std::vector &DepEvents, const detail::code_location &CodeLoc) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); diff --git a/sycl/include/sycl/ext/oneapi/bindless_images_interop.hpp b/sycl/include/sycl/ext/oneapi/bindless_images_interop.hpp index a9307c069e15e..a0d6eef50c5f6 100644 --- a/sycl/include/sycl/ext/oneapi/bindless_images_interop.hpp +++ b/sycl/include/sycl/ext/oneapi/bindless_images_interop.hpp @@ -30,15 +30,15 @@ enum class external_semaphore_handle_type { win32_nt_dx12_fence = 2, }; -/// Opaque interop memory handle type -struct interop_mem_handle { - using raw_handle_type = ur_exp_interop_mem_handle_t; +/// Opaque external memory handle type +struct external_mem { + using raw_handle_type = ur_exp_external_mem_handle_t; raw_handle_type raw_handle; }; -/// Opaque interop semaphore handle type -struct interop_semaphore_handle { - using raw_handle_type = ur_exp_interop_semaphore_handle_t; +/// Imported opaque external semaphore +struct external_semaphore { + using raw_handle_type = ur_exp_external_semaphore_handle_t; raw_handle_type raw_handle; external_semaphore_handle_type handle_type; }; diff --git a/sycl/include/sycl/handler.hpp b/sycl/include/sycl/handler.hpp index 9d4038a318b78..6f2e9f9fc19b7 100644 --- a/sycl/include/sycl/handler.hpp +++ b/sycl/include/sycl/handler.hpp @@ -3303,45 +3303,45 @@ class __SYCL_EXPORT handler { /// Submit a non-blocking device-side wait on an external // semaphore to the queue. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to wait upon. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object void ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle); + sycl::ext::oneapi::experimental::external_semaphore extSemaphore); /// Submit a non-blocking device-side wait on an external // semaphore to the queue. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support waiting on an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param WaitValue is the value that this semaphore will wait upon, until it /// allows any further commands to execute on the queue. void ext_oneapi_wait_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t WaitValue); /// Instruct the queue to signal the external semaphore once all previous /// commands submitted to the queue have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to signal. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object void ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle); + sycl::ext::oneapi::experimental::external_semaphore extSemaphore); /// Instruct the queue to set the state of the external semaphore to /// \p SignalValue once all previous commands submitted to the queue have /// completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support signalling an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object. /// \param SignalValue is the value that this semaphore signal, once all /// prior opeartions on the queue complete. void ext_oneapi_signal_external_semaphore( - ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t SignalValue); private: diff --git a/sycl/include/sycl/info/aspects.def b/sycl/include/sycl/info/aspects.def index c1917cf1d7d9d..87d8c8643d422 100644 --- a/sycl/include/sycl/info/aspects.def +++ b/sycl/include/sycl/info/aspects.def @@ -39,8 +39,8 @@ __SYCL_ASPECT(ext_oneapi_bindless_images, 42) __SYCL_ASPECT(ext_oneapi_bindless_images_shared_usm, 43) __SYCL_ASPECT(ext_oneapi_bindless_images_1d_usm, 44) __SYCL_ASPECT(ext_oneapi_bindless_images_2d_usm, 45) -__SYCL_ASPECT(ext_oneapi_interop_memory_import, 46) -__SYCL_ASPECT(ext_oneapi_interop_semaphore_import, 48) +__SYCL_ASPECT(ext_oneapi_external_memory_import, 46) +__SYCL_ASPECT(ext_oneapi_external_semaphore_import, 48) __SYCL_ASPECT(ext_oneapi_mipmap, 50) __SYCL_ASPECT(ext_oneapi_mipmap_anisotropy, 51) __SYCL_ASPECT(ext_oneapi_mipmap_level_reference, 52) diff --git a/sycl/include/sycl/queue.hpp b/sycl/include/sycl/queue.hpp index 706ca59ea854b..fbab1e5ca9148 100644 --- a/sycl/include/sycl/queue.hpp +++ b/sycl/include/sycl/queue.hpp @@ -1840,169 +1840,169 @@ class __SYCL_EXPORT queue : public detail::OwnerLessBase { const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to wait upon. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle. + /// \param extSemaphore is an opaque external semaphore object. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, const detail::code_location &CodeLoc = detail::code_location::current()) { detail::tls_code_loc_t TlsCodeLocCapture(CodeLoc); return submit( [&](handler &CGH) { - CGH.ext_oneapi_wait_external_semaphore(SemaphoreHandle); + CGH.ext_oneapi_wait_external_semaphore(extSemaphore); }, CodeLoc); } /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to wait upon. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param DepEvent is an event that specifies the kernel dependencies. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, event DepEvent, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to wait upon. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle. + /// \param extSemaphore is an opaque external semaphore object. /// \param DepEvents is a vector of events that specifies the kernel /// dependencies. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, const std::vector &DepEvents, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support waiting on an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param WaitValue is the value that this semaphore will wait upon, until it /// allows any further commands to execute on the queue. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t WaitValue, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support waiting on an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param WaitValue is the value that this semaphore will wait upon, until it /// allows any further commands to execute on the queue. /// \param DepEvent is an event that specifies the kernel dependencies. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t WaitValue, event DepEvent, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue with a non-blocking wait on an external semaphore. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support waiting on an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param WaitValue is the value that this semaphore will wait upon, until it /// allows any further commands to execute on the queue. /// \param DepEvents is a vector of events that specifies the kernel /// dependencies. /// \return an event representing the wait operation. event ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t WaitValue, const std::vector &DepEvents, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to signal. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to signal. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param DepEvent is an event that specifies the kernel dependencies. /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, event DepEvent, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore requires an explicit value to signal. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param DepEvents is a vector of events that specifies the kernel /// dependencies. /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, const std::vector &DepEvents, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support signalling an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param SignalValue is the value that this semaphore signal, once all /// prior opeartions on the queue complete. /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t SignalValue, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support signalling an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param SignalValue is the value that this semaphore signal, once all /// prior opeartions on the queue complete. /// \param DepEvent is an event that specifies the kernel dependencies. /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore extSemaphore, uint64_t SignalValue, event DepEvent, const detail::code_location &CodeLoc = detail::code_location::current()); /// Instruct the queue to signal the external semaphore once all previous /// commands have completed execution. - /// An exception is thrown if \p SemaphoreHandle is incomplete, or if the + /// An exception is thrown if \p extSemaphore is incomplete, or if the /// type of semaphore does not support signalling an explicitly passed value. /// - /// \param SemaphoreHandle is an opaque external interop semaphore handle + /// \param extSemaphore is an opaque external semaphore object /// \param SignalValue is the value that this semaphore signal, once all /// prior opeartions on the queue complete. /// \param DepEvents is a vector of events that specifies the kernel /// dependencies. /// \return an event representing the signal operation. event ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore SemaphoreHandle, uint64_t SignalValue, const std::vector &DepEvents, const detail::code_location &CodeLoc = detail::code_location::current()); diff --git a/sycl/source/detail/bindless_images.cpp b/sycl/source/detail/bindless_images.cpp index 3f551d9d84ab6..775dbd0bb60fd 100644 --- a/sycl/source/detail/bindless_images.cpp +++ b/sycl/source/detail/bindless_images.cpp @@ -431,8 +431,8 @@ create_image(void *devPtr, size_t pitch, const bindless_image_sampler &sampler, } template <> -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, +__SYCL_EXPORT external_mem import_external_memory( + external_mem_descriptor externalMemDesc, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = sycl::detail::getSyclObjImpl(syclContext); @@ -442,36 +442,36 @@ __SYCL_EXPORT interop_mem_handle import_external_memory( ur_device_handle_t Device = DevImpl->getHandleRef(); const sycl::detail::PluginPtr &Plugin = CtxImpl->getPlugin(); - ur_exp_interop_mem_handle_t urInteropMem = nullptr; + ur_exp_external_mem_handle_t urExternalMem = nullptr; ur_exp_file_descriptor_t urFileDescriptor = {}; urFileDescriptor.stype = UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR; - urFileDescriptor.fd = externalMem.external_resource.file_descriptor; - ur_exp_interop_mem_desc_t urExternalMemDescriptor = {}; - urExternalMemDescriptor.stype = UR_STRUCTURE_TYPE_EXP_INTEROP_MEM_DESC; + urFileDescriptor.fd = externalMemDesc.external_resource.file_descriptor; + ur_exp_external_mem_desc_t urExternalMemDescriptor = {}; + urExternalMemDescriptor.stype = UR_STRUCTURE_TYPE_EXP_EXTERNAL_MEM_DESC; urExternalMemDescriptor.pNext = &urFileDescriptor; // For `resource_fd` external memory type, the handle type is always // `OPAQUE_FD`. No need for a switch statement like we have for win32 // resources. Plugin->call(urBindlessImagesImportExternalMemoryExp, C, - Device, externalMem.size_in_bytes, + Device, externalMemDesc.size_in_bytes, UR_EXP_EXTERNAL_MEM_TYPE_OPAQUE_FD, - &urExternalMemDescriptor, &urInteropMem); + &urExternalMemDescriptor, &urExternalMem); - return interop_mem_handle{urInteropMem}; + return external_mem{urExternalMem}; } template <> -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, +__SYCL_EXPORT external_mem import_external_memory( + external_mem_descriptor externalMemDesc, const sycl::queue &syclQueue) { return import_external_memory( - externalMem, syclQueue.get_device(), syclQueue.get_context()); + externalMemDesc, syclQueue.get_device(), syclQueue.get_context()); } template <> -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, +__SYCL_EXPORT external_mem import_external_memory( + external_mem_descriptor externalMemDesc, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = sycl::detail::getSyclObjImpl(syclContext); @@ -481,17 +481,17 @@ __SYCL_EXPORT interop_mem_handle import_external_memory( ur_device_handle_t Device = DevImpl->getHandleRef(); const sycl::detail::PluginPtr &Plugin = CtxImpl->getPlugin(); - ur_exp_interop_mem_handle_t urInteropMem = nullptr; + ur_exp_external_mem_handle_t urExternalMem = nullptr; ur_exp_win32_handle_t urWin32Handle = {}; urWin32Handle.stype = UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE; - urWin32Handle.handle = externalMem.external_resource.handle; - ur_exp_interop_mem_desc_t urExternalMemDescriptor{}; - urExternalMemDescriptor.stype = UR_STRUCTURE_TYPE_EXP_INTEROP_MEM_DESC; + urWin32Handle.handle = externalMemDesc.external_resource.handle; + ur_exp_external_mem_desc_t urExternalMemDescriptor{}; + urExternalMemDescriptor.stype = UR_STRUCTURE_TYPE_EXP_EXTERNAL_MEM_DESC; urExternalMemDescriptor.pNext = &urWin32Handle; // Select appropriate memory handle type. ur_exp_external_mem_type_t urHandleType; - switch (externalMem.handle_type) { + switch (externalMemDesc.handle_type) { case external_mem_handle_type::win32_nt_handle: urHandleType = UR_EXP_EXTERNAL_MEM_TYPE_WIN32_NT; break; @@ -504,23 +504,23 @@ __SYCL_EXPORT interop_mem_handle import_external_memory( } Plugin->call(urBindlessImagesImportExternalMemoryExp, C, - Device, externalMem.size_in_bytes, + Device, externalMemDesc.size_in_bytes, urHandleType, &urExternalMemDescriptor, - &urInteropMem); + &urExternalMem); - return interop_mem_handle{urInteropMem}; + return external_mem{urExternalMem}; } template <> -__SYCL_EXPORT interop_mem_handle import_external_memory( - external_mem_descriptor externalMem, +__SYCL_EXPORT external_mem import_external_memory( + external_mem_descriptor externalMemDesc, const sycl::queue &syclQueue) { return import_external_memory( - externalMem, syclQueue.get_device(), syclQueue.get_context()); + externalMemDesc, syclQueue.get_device(), syclQueue.get_context()); } __SYCL_EXPORT -image_mem_handle map_external_image_memory(interop_mem_handle memHandle, +image_mem_handle map_external_image_memory(external_mem extMem, const image_descriptor &desc, const sycl::device &syclDevice, const sycl::context &syclContext) { @@ -538,25 +538,25 @@ image_mem_handle map_external_image_memory(interop_mem_handle memHandle, ur_image_format_t urFormat; populate_ur_structs(desc, urDesc, urFormat); - ur_exp_interop_mem_handle_t urInteropMem{memHandle.raw_handle}; + ur_exp_external_mem_handle_t urExternalMem{extMem.raw_handle}; image_mem_handle retHandle; Plugin->call(urBindlessImagesMapExternalArrayExp, C, - Device, &urFormat, &urDesc, urInteropMem, + Device, &urFormat, &urDesc, urExternalMem, &retHandle.raw_handle); return image_mem_handle{retHandle}; } __SYCL_EXPORT -image_mem_handle map_external_image_memory(interop_mem_handle memHandle, +image_mem_handle map_external_image_memory(external_mem extMem, const image_descriptor &desc, const sycl::queue &syclQueue) { - return map_external_image_memory(memHandle, desc, syclQueue.get_device(), + return map_external_image_memory(extMem, desc, syclQueue.get_device(), syclQueue.get_context()); } -__SYCL_EXPORT void release_external_memory(interop_mem_handle interopMem, +__SYCL_EXPORT void release_external_memory(external_mem extMem, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = @@ -567,18 +567,18 @@ __SYCL_EXPORT void release_external_memory(interop_mem_handle interopMem, ur_device_handle_t Device = DevImpl->getHandleRef(); const sycl::detail::PluginPtr &Plugin = CtxImpl->getPlugin(); - Plugin->call(urBindlessImagesReleaseInteropExp, C, - Device, interopMem.raw_handle); + Plugin->call(urBindlessImagesReleaseExternalMemoryExp, C, + Device, extMem.raw_handle); } -__SYCL_EXPORT void release_external_memory(interop_mem_handle interopMem, +__SYCL_EXPORT void release_external_memory(external_mem extMem, const sycl::queue &syclQueue) { - release_external_memory(interopMem, syclQueue.get_device(), + release_external_memory(extMem, syclQueue.get_device(), syclQueue.get_context()); } template <> -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( +__SYCL_EXPORT external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDesc, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = @@ -589,27 +589,27 @@ __SYCL_EXPORT interop_semaphore_handle import_external_semaphore( sycl::detail::getSyclObjImpl(syclDevice); ur_device_handle_t Device = DevImpl->getHandleRef(); - ur_exp_interop_semaphore_handle_t urInteropSemaphore; + ur_exp_external_semaphore_handle_t urExternalSemaphore; ur_exp_file_descriptor_t urFileDescriptor = {}; urFileDescriptor.stype = UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR; urFileDescriptor.fd = externalSemaphoreDesc.external_resource.file_descriptor; - ur_exp_interop_semaphore_desc_t urInteropSemDesc = {}; - urInteropSemDesc.stype = UR_STRUCTURE_TYPE_EXP_INTEROP_SEMAPHORE_DESC; - urInteropSemDesc.pNext = &urFileDescriptor; + ur_exp_external_semaphore_desc_t urExternalSemDesc = {}; + urExternalSemDesc.stype = UR_STRUCTURE_TYPE_EXP_EXTERNAL_SEMAPHORE_DESC; + urExternalSemDesc.pNext = &urFileDescriptor; // For this specialization of `import_external_semaphore` the handleType is // always `OPAQUE_FD`. Plugin->call(urBindlessImagesImportExternalSemaphoreExp, C, Device, UR_EXP_EXTERNAL_SEMAPHORE_TYPE_OPAQUE_FD, - &urInteropSemDesc, &urInteropSemaphore); + &urExternalSemDesc, &urExternalSemaphore); - return interop_semaphore_handle{urInteropSemaphore, + return external_semaphore{urExternalSemaphore, external_semaphore_handle_type::opaque_fd}; } template <> -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( +__SYCL_EXPORT external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDesc, const sycl::queue &syclQueue) { return import_external_semaphore( @@ -617,7 +617,7 @@ __SYCL_EXPORT interop_semaphore_handle import_external_semaphore( } template <> -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( +__SYCL_EXPORT external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDesc, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = @@ -628,13 +628,13 @@ __SYCL_EXPORT interop_semaphore_handle import_external_semaphore( sycl::detail::getSyclObjImpl(syclDevice); ur_device_handle_t Device = DevImpl->getHandleRef(); - ur_exp_interop_semaphore_handle_t urInteropSemaphore; + ur_exp_external_semaphore_handle_t urExternalSemaphore; ur_exp_win32_handle_t urWin32Handle = {}; urWin32Handle.stype = UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE; urWin32Handle.handle = externalSemaphoreDesc.external_resource.handle; - ur_exp_interop_semaphore_desc_t urInteropSemDesc = {}; - urInteropSemDesc.stype = UR_STRUCTURE_TYPE_EXP_INTEROP_SEMAPHORE_DESC; - urInteropSemDesc.pNext = &urWin32Handle; + ur_exp_external_semaphore_desc_t urExternalSemDesc = {}; + urExternalSemDesc.stype = UR_STRUCTURE_TYPE_EXP_EXTERNAL_SEMAPHORE_DESC; + urExternalSemDesc.pNext = &urWin32Handle; // Select appropriate semaphore handle type. ur_exp_external_semaphore_type_t urHandleType; @@ -651,15 +651,15 @@ __SYCL_EXPORT interop_semaphore_handle import_external_semaphore( } Plugin->call(urBindlessImagesImportExternalSemaphoreExp, - C, Device, urHandleType, &urInteropSemDesc, - &urInteropSemaphore); + C, Device, urHandleType, &urExternalSemDesc, + &urExternalSemaphore); - return interop_semaphore_handle{urInteropSemaphore, + return external_semaphore{urExternalSemaphore, externalSemaphoreDesc.handle_type}; } template <> -__SYCL_EXPORT interop_semaphore_handle import_external_semaphore( +__SYCL_EXPORT external_semaphore import_external_semaphore( external_semaphore_descriptor externalSemaphoreDesc, const sycl::queue &syclQueue) { return import_external_semaphore( @@ -667,7 +667,7 @@ __SYCL_EXPORT interop_semaphore_handle import_external_semaphore( } __SYCL_EXPORT void -release_external_semaphore(interop_semaphore_handle semaphoreHandle, +release_external_semaphore(external_semaphore externalSemaphore, const sycl::device &syclDevice, const sycl::context &syclContext) { std::shared_ptr CtxImpl = @@ -679,13 +679,13 @@ release_external_semaphore(interop_semaphore_handle semaphoreHandle, ur_device_handle_t Device = DevImpl->getHandleRef(); Plugin->call(urBindlessImagesReleaseExternalSemaphoreExp, - C, Device, semaphoreHandle.raw_handle); + C, Device, externalSemaphore.raw_handle); } __SYCL_EXPORT void -release_external_semaphore(interop_semaphore_handle semaphoreHandle, +release_external_semaphore(external_semaphore externalSemaphore, const sycl::queue &syclQueue) { - release_external_semaphore(semaphoreHandle, syclQueue.get_device(), + release_external_semaphore(externalSemaphore, syclQueue.get_device(), syclQueue.get_context()); } diff --git a/sycl/source/detail/cg.hpp b/sycl/source/detail/cg.hpp index f11b67c8a5be4..42bd088427dd9 100644 --- a/sycl/source/detail/cg.hpp +++ b/sycl/source/detail/cg.hpp @@ -613,39 +613,37 @@ class CGCopyImage : public CG { /// "Semaphore Wait" command group class. class CGSemaphoreWait : public CG { - ur_exp_interop_semaphore_handle_t MInteropSemaphoreHandle; + ur_exp_external_semaphore_handle_t MExternalSemaphore; std::optional MWaitValue; public: - CGSemaphoreWait(ur_exp_interop_semaphore_handle_t InteropSemaphoreHandle, + CGSemaphoreWait(ur_exp_external_semaphore_handle_t ExternalSemaphore, std::optional WaitValue, CG::StorageInitHelper CGData, detail::code_location loc = {}) : CG(CGType::SemaphoreWait, std::move(CGData), std::move(loc)), - MInteropSemaphoreHandle(InteropSemaphoreHandle), MWaitValue(WaitValue) { - } + MExternalSemaphore(ExternalSemaphore), MWaitValue(WaitValue) {} - ur_exp_interop_semaphore_handle_t getInteropSemaphoreHandle() const { - return MInteropSemaphoreHandle; + ur_exp_external_semaphore_handle_t getExternalSemaphore() const { + return MExternalSemaphore; } std::optional getWaitValue() const { return MWaitValue; } }; /// "Semaphore Signal" command group class. class CGSemaphoreSignal : public CG { - ur_exp_interop_semaphore_handle_t MInteropSemaphoreHandle; + ur_exp_external_semaphore_handle_t MExternalSemaphore; std::optional MSignalValue; public: - CGSemaphoreSignal(ur_exp_interop_semaphore_handle_t InteropSemaphoreHandle, + CGSemaphoreSignal(ur_exp_external_semaphore_handle_t ExternalSemaphore, std::optional SignalValue, CG::StorageInitHelper CGData, detail::code_location loc = {}) : CG(CGType::SemaphoreSignal, std::move(CGData), std::move(loc)), - MInteropSemaphoreHandle(InteropSemaphoreHandle), - MSignalValue(SignalValue) {} + MExternalSemaphore(ExternalSemaphore), MSignalValue(SignalValue) {} - ur_exp_interop_semaphore_handle_t getInteropSemaphoreHandle() const { - return MInteropSemaphoreHandle; + ur_exp_external_semaphore_handle_t getExternalSemaphore() const { + return MExternalSemaphore; } std::optional getSignalValue() const { return MSignalValue; } }; diff --git a/sycl/source/detail/device_impl.cpp b/sycl/source/detail/device_impl.cpp index b88c9a8faef43..d5762c4617bb9 100644 --- a/sycl/source/detail/device_impl.cpp +++ b/sycl/source/detail/device_impl.cpp @@ -521,21 +521,21 @@ bool device_impl::has(aspect Aspect) const { sizeof(ur_bool_t), &support, nullptr) == UR_RESULT_SUCCESS; return call_successful && support; } - case aspect::ext_oneapi_interop_memory_import: { + case aspect::ext_oneapi_external_memory_import: { ur_bool_t support = false; bool call_successful = getPlugin()->call_nocheck( urDeviceGetInfo, MDevice, - UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP, sizeof(ur_bool_t), + UR_DEVICE_INFO_EXTERNAL_MEMORY_IMPORT_SUPPORT_EXP, sizeof(ur_bool_t), &support, nullptr) == UR_RESULT_SUCCESS; return call_successful && support; } - case aspect::ext_oneapi_interop_semaphore_import: { + case aspect::ext_oneapi_external_semaphore_import: { ur_bool_t support = false; bool call_successful = getPlugin()->call_nocheck( urDeviceGetInfo, MDevice, - UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP, + UR_DEVICE_INFO_EXTERNAL_SEMAPHORE_IMPORT_SUPPORT_EXP, sizeof(ur_bool_t), &support, nullptr) == UR_RESULT_SUCCESS; return call_successful && support; } diff --git a/sycl/source/detail/handler_impl.hpp b/sycl/source/detail/handler_impl.hpp index 0da70c4f86483..8978b52aaf4c1 100644 --- a/sycl/source/detail/handler_impl.hpp +++ b/sycl/source/detail/handler_impl.hpp @@ -134,7 +134,7 @@ class handler_impl { ur_rect_region_t MCopyExtent; // Extra information for semaphore interoperability - ur_exp_interop_semaphore_handle_t MInteropSemaphoreHandle; + ur_exp_external_semaphore_handle_t MExternalSemaphore; std::optional MWaitValue; std::optional MSignalValue; diff --git a/sycl/source/detail/scheduler/commands.cpp b/sycl/source/detail/scheduler/commands.cpp index 5e13f5ba5c8e0..a713783887227 100644 --- a/sycl/source/detail/scheduler/commands.cpp +++ b/sycl/source/detail/scheduler/commands.cpp @@ -3313,7 +3313,7 @@ ur_result_t ExecCGCommand::enqueueImpQueue() { auto OptWaitValue = SemWait->getWaitValue(); uint64_t WaitValue = OptWaitValue.has_value() ? OptWaitValue.value() : 0; Plugin->call(urBindlessImagesWaitExternalSemaphoreExp, - MQueue->getHandleRef(), SemWait->getInteropSemaphoreHandle(), + MQueue->getHandleRef(), SemWait->getExternalSemaphore(), OptWaitValue.has_value(), WaitValue, 0, nullptr, nullptr); return UR_RESULT_SUCCESS; @@ -3327,7 +3327,7 @@ ur_result_t ExecCGCommand::enqueueImpQueue() { uint64_t SignalValue = OptSignalValue.has_value() ? OptSignalValue.value() : 0; Plugin->call(urBindlessImagesSignalExternalSemaphoreExp, - MQueue->getHandleRef(), SemSignal->getInteropSemaphoreHandle(), + MQueue->getHandleRef(), SemSignal->getExternalSemaphore(), OptSignalValue.has_value(), SignalValue, 0, nullptr, nullptr); return UR_RESULT_SUCCESS; diff --git a/sycl/source/handler.cpp b/sycl/source/handler.cpp index b788daf78c76a..95421a80a8ce5 100644 --- a/sycl/source/handler.cpp +++ b/sycl/source/handler.cpp @@ -483,14 +483,14 @@ event handler::finalize() { std::move(impl->CGData), MCodeLoc)); break; case detail::CGType::SemaphoreWait: - CommandGroup.reset(new detail::CGSemaphoreWait( - impl->MInteropSemaphoreHandle, impl->MWaitValue, - std::move(impl->CGData), MCodeLoc)); + CommandGroup.reset( + new detail::CGSemaphoreWait(impl->MExternalSemaphore, impl->MWaitValue, + std::move(impl->CGData), MCodeLoc)); break; case detail::CGType::SemaphoreSignal: CommandGroup.reset(new detail::CGSemaphoreSignal( - impl->MInteropSemaphoreHandle, impl->MSignalValue, - std::move(impl->CGData), MCodeLoc)); + impl->MExternalSemaphore, impl->MSignalValue, std::move(impl->CGData), + MCodeLoc)); break; case detail::CGType::None: if (detail::ur::trace()) { @@ -1417,14 +1417,14 @@ void handler::ext_oneapi_copy( } void handler::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle) { + sycl::ext::oneapi::experimental::external_semaphore ExtSemaphore) { throwIfGraphAssociated< ext::oneapi::experimental::detail::UnsupportedGraphFeatures:: sycl_ext_oneapi_bindless_images>(); - if (SemaphoreHandle.handle_type != + if (ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: opaque_fd && - SemaphoreHandle.handle_type != + ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: win32_nt_handle) { throw sycl::exception( @@ -1432,19 +1432,19 @@ void handler::ext_oneapi_wait_external_semaphore( "Invalid type of semaphore for this operation. The " "type of semaphore used needs a user passed wait value."); } - impl->MInteropSemaphoreHandle = - (ur_exp_interop_semaphore_handle_t)SemaphoreHandle.raw_handle; + impl->MExternalSemaphore = + (ur_exp_external_semaphore_handle_t)ExtSemaphore.raw_handle; impl->MWaitValue = {}; setType(detail::CGType::SemaphoreWait); } void handler::ext_oneapi_wait_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore ExtSemaphore, uint64_t WaitValue) { throwIfGraphAssociated< ext::oneapi::experimental::detail::UnsupportedGraphFeatures:: sycl_ext_oneapi_bindless_images>(); - if (SemaphoreHandle.handle_type != + if (ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: win32_nt_dx12_fence) { throw sycl::exception( @@ -1452,21 +1452,21 @@ void handler::ext_oneapi_wait_external_semaphore( "Invalid type of semaphore for this operation. The " "type of semaphore does not support user passed wait values."); } - impl->MInteropSemaphoreHandle = - (ur_exp_interop_semaphore_handle_t)SemaphoreHandle.raw_handle; + impl->MExternalSemaphore = + (ur_exp_external_semaphore_handle_t)ExtSemaphore.raw_handle; impl->MWaitValue = WaitValue; setType(detail::CGType::SemaphoreWait); } void handler::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle) { + sycl::ext::oneapi::experimental::external_semaphore ExtSemaphore) { throwIfGraphAssociated< ext::oneapi::experimental::detail::UnsupportedGraphFeatures:: sycl_ext_oneapi_bindless_images>(); - if (SemaphoreHandle.handle_type != + if (ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: opaque_fd && - SemaphoreHandle.handle_type != + ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: win32_nt_handle) { throw sycl::exception( @@ -1474,19 +1474,19 @@ void handler::ext_oneapi_signal_external_semaphore( "Invalid type of semaphore for this operation. The " "type of semaphore used needs a user passed signal value."); } - impl->MInteropSemaphoreHandle = - (ur_exp_interop_semaphore_handle_t)SemaphoreHandle.raw_handle; + impl->MExternalSemaphore = + (ur_exp_external_semaphore_handle_t)ExtSemaphore.raw_handle; impl->MSignalValue = {}; setType(detail::CGType::SemaphoreSignal); } void handler::ext_oneapi_signal_external_semaphore( - sycl::ext::oneapi::experimental::interop_semaphore_handle SemaphoreHandle, + sycl::ext::oneapi::experimental::external_semaphore ExtSemaphore, uint64_t SignalValue) { throwIfGraphAssociated< ext::oneapi::experimental::detail::UnsupportedGraphFeatures:: sycl_ext_oneapi_bindless_images>(); - if (SemaphoreHandle.handle_type != + if (ExtSemaphore.handle_type != sycl::ext::oneapi::experimental::external_semaphore_handle_type:: win32_nt_dx12_fence) { throw sycl::exception( @@ -1494,8 +1494,8 @@ void handler::ext_oneapi_signal_external_semaphore( "Invalid type of semaphore for this operation. The " "type of semaphore does not support user passed signal values."); } - impl->MInteropSemaphoreHandle = - (ur_exp_interop_semaphore_handle_t)SemaphoreHandle.raw_handle; + impl->MExternalSemaphore = + (ur_exp_external_semaphore_handle_t)ExtSemaphore.raw_handle; impl->MSignalValue = SignalValue; setType(detail::CGType::SemaphoreSignal); } diff --git a/sycl/test-e2e/bindless_images/image_get_info.cpp b/sycl/test-e2e/bindless_images/image_get_info.cpp index 016f83d134110..6e5f170c08356 100644 --- a/sycl/test-e2e/bindless_images/image_get_info.cpp +++ b/sycl/test-e2e/bindless_images/image_get_info.cpp @@ -129,15 +129,15 @@ int main() { #endif // Extension: query for bindless image interop support -- device aspects - bool interopMemoryImportSupport = - dev.has(sycl::aspect::ext_oneapi_interop_memory_import); - bool interopSemaphoreImportSupport = - dev.has(sycl::aspect::ext_oneapi_interop_semaphore_import); + bool externalMemoryImportSupport = + dev.has(sycl::aspect::ext_oneapi_external_memory_import); + bool externalSemaphoreImportSupport = + dev.has(sycl::aspect::ext_oneapi_external_semaphore_import); #ifdef VERBOSE_PRINT - std::cout << "interopMemoryImportSupport: " << interopMemoryImportSupport - << "\ninteropSemaphoreImportSupport: " - << interopSemaphoreImportSupport << "\n"; + std::cout << "externalMemoryImportSupport: " << externalMemoryImportSupport + << "\nexternalSemaphoreImportSupport: " + << externalSemaphoreImportSupport << "\n"; #endif // Extension: query for bindless image array support - device aspect diff --git a/sycl/test-e2e/bindless_images/vulkan_interop/mipmaps.cpp b/sycl/test-e2e/bindless_images/vulkan_interop/mipmaps.cpp index 7cac3cce862a6..e6dbc28627852 100644 --- a/sycl/test-e2e/bindless_images/vulkan_interop/mipmaps.cpp +++ b/sycl/test-e2e/bindless_images/vulkan_interop/mipmaps.cpp @@ -20,7 +20,7 @@ namespace syclexp = sycl::ext::oneapi::experimental; struct handles_t { syclexp::sampled_image_handle imgInput; syclexp::image_mem_handle imgMem; - syclexp::interop_mem_handle inputInteropMemHandle; + syclexp::external_mem inputExternalMem; }; template @@ -42,19 +42,18 @@ handles_t create_handles(sycl::context &ctxt, sycl::device &dev, #endif // Extension: interop mem handle imported from file descriptor - syclexp::interop_mem_handle inputInteropMemHandle = + syclexp::external_mem inputExternalMem = syclexp::import_external_memory(inputExtMemDesc, dev, ctxt); // Extension: interop mem handle imported from file descriptor syclexp::image_mem_handle inputMappedMemHandle = - syclexp::map_external_image_memory(inputInteropMemHandle, desc, dev, - ctxt); + syclexp::map_external_image_memory(inputExternalMem, desc, dev, ctxt); // Extension: create the image and return the handle syclexp::sampled_image_handle imgInput = syclexp::create_image(inputMappedMemHandle, samp, desc, dev, ctxt); - return {imgInput, inputMappedMemHandle, inputInteropMemHandle}; + return {imgInput, inputMappedMemHandle, inputExternalMem}; } template globalSize, sycl::range localSize, syclexp::destroy_image_handle(handles.imgInput, dev, ctxt); syclexp::free_image_mem(handles.imgMem, syclexp::image_type::mipmap, dev, ctxt); - syclexp::release_external_memory(handles.inputInteropMemHandle, dev, ctxt); + syclexp::release_external_memory(handles.inputExternalMem, dev, ctxt); } catch (sycl::exception e) { std::cerr << "\tKernel submission failed! " << e.what() << std::endl; exit(-1); diff --git a/sycl/test-e2e/bindless_images/vulkan_interop/sampled_images.cpp b/sycl/test-e2e/bindless_images/vulkan_interop/sampled_images.cpp index 4afaff48b466b..1e89e39dd7375 100644 --- a/sycl/test-e2e/bindless_images/vulkan_interop/sampled_images.cpp +++ b/sycl/test-e2e/bindless_images/vulkan_interop/sampled_images.cpp @@ -17,7 +17,7 @@ namespace syclexp = sycl::ext::oneapi::experimental; struct handles_t { syclexp::sampled_image_handle imgInput; syclexp::image_mem_handle imgMem; - syclexp::interop_mem_handle inputInteropMemHandle; + syclexp::external_mem inputExternalMem; }; template @@ -37,20 +37,19 @@ handles_t create_test_handles(sycl::context &ctxt, sycl::device &dev, interopHandle, syclexp::external_mem_handle_type::opaque_fd, imgSize}; #endif - // Extension: interop mem handle imported from file descriptor - syclexp::interop_mem_handle inputInteropMemHandle = + // Extension: external memory imported from file descriptor + syclexp::external_mem inputExternalMem = syclexp::import_external_memory(inputExtMemDesc, dev, ctxt); - // Extension: interop mem handle imported from file descriptor + // Extension: mapped memory handle from external memory syclexp::image_mem_handle inputMappedMemHandle = - syclexp::map_external_image_memory(inputInteropMemHandle, desc, dev, - ctxt); + syclexp::map_external_image_memory(inputExternalMem, desc, dev, ctxt); // Extension: create the image and return the handle syclexp::sampled_image_handle imgInput = syclexp::create_image(inputMappedMemHandle, samp, desc, dev, ctxt); - return {imgInput, inputMappedMemHandle, inputInteropMemHandle}; + return {imgInput, inputMappedMemHandle, inputExternalMem}; } template global_size, sycl_done_semaphore_handle, img_size, desc); // Extension: wait for imported semaphore - q.ext_oneapi_wait_external_semaphore( - handles.sycl_wait_interop_semaphore_handle); + q.ext_oneapi_wait_external_semaphore(handles.sycl_wait_external_semaphore); try { q.submit([&](sycl::handler &cgh) { @@ -246,7 +239,7 @@ void run_ndim_test(sycl::range global_size, // Extension: signal imported semaphore q.submit([&](sycl::handler &cgh) { cgh.ext_oneapi_signal_external_semaphore( - handles.sycl_done_interop_semaphore_handle); + handles.sycl_done_external_semaphore); }); // Wait for kernel completion before destroying external objects diff --git a/sycl/test/abi/sycl_symbols_linux.dump b/sycl/test/abi/sycl_symbols_linux.dump index e5e3d93237251..091fc56494f1d 100644 --- a/sycl/test/abi/sycl_symbols_linux.dump +++ b/sycl/test/abi/sycl_symbols_linux.dump @@ -3027,26 +3027,26 @@ _ZN4sycl3_V13ext6oneapi12experimental22get_image_channel_typeENS3_16image_mem_ha _ZN4sycl3_V13ext6oneapi12experimental22get_image_channel_typeENS3_16image_mem_handleERKNS0_6deviceERKNS0_7contextE _ZN4sycl3_V13ext6oneapi12experimental22get_image_num_channelsENS3_16image_mem_handleERKNS0_5queueE _ZN4sycl3_V13ext6oneapi12experimental22get_image_num_channelsENS3_16image_mem_handleERKNS0_6deviceERKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_11resource_fdEEENS3_18interop_mem_handleENS3_23external_mem_descriptorIT_EERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_11resource_fdEEENS3_18interop_mem_handleENS3_23external_mem_descriptorIT_EERKNS0_6deviceERKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_21resource_win32_handleEEENS3_18interop_mem_handleENS3_23external_mem_descriptorIT_EERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_21resource_win32_handleEEENS3_18interop_mem_handleENS3_23external_mem_descriptorIT_EERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_11resource_fdEEENS3_12external_memENS3_23external_mem_descriptorIT_EERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_11resource_fdEEENS3_12external_memENS3_23external_mem_descriptorIT_EERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_21resource_win32_handleEEENS3_12external_memENS3_23external_mem_descriptorIT_EERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental22import_external_memoryINS3_21resource_win32_handleEEENS3_12external_memENS3_23external_mem_descriptorIT_EERKNS0_6deviceERKNS0_7contextE _ZN4sycl3_V13ext6oneapi12experimental23prepare_for_device_copyEPKvmRKNS0_5queueE _ZN4sycl3_V13ext6oneapi12experimental23prepare_for_device_copyEPKvmRKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental23release_external_memoryENS3_18interop_mem_handleERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental23release_external_memoryENS3_18interop_mem_handleERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental23release_external_memoryENS3_12external_memERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental23release_external_memoryENS3_12external_memERKNS0_6deviceERKNS0_7contextE _ZN4sycl3_V13ext6oneapi12experimental24get_mip_level_mem_handleENS3_16image_mem_handleEjRKNS0_5queueE _ZN4sycl3_V13ext6oneapi12experimental24get_mip_level_mem_handleENS3_16image_mem_handleEjRKNS0_6deviceERKNS0_7contextE _ZN4sycl3_V13ext6oneapi12experimental24release_from_device_copyEPKvRKNS0_5queueE _ZN4sycl3_V13ext6oneapi12experimental24release_from_device_copyEPKvRKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_11resource_fdEEENS3_24interop_semaphore_handleENS3_29external_semaphore_descriptorIT_EERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_11resource_fdEEENS3_24interop_semaphore_handleENS3_29external_semaphore_descriptorIT_EERKNS0_6deviceERKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_21resource_win32_handleEEENS3_24interop_semaphore_handleENS3_29external_semaphore_descriptorIT_EERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_21resource_win32_handleEEENS3_24interop_semaphore_handleENS3_29external_semaphore_descriptorIT_EERKNS0_6deviceERKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental25map_external_image_memoryENS3_18interop_mem_handleERKNS3_16image_descriptorERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental25map_external_image_memoryENS3_18interop_mem_handleERKNS3_16image_descriptorERKNS0_6deviceERKNS0_7contextE -_ZN4sycl3_V13ext6oneapi12experimental26release_external_semaphoreENS3_24interop_semaphore_handleERKNS0_5queueE -_ZN4sycl3_V13ext6oneapi12experimental26release_external_semaphoreENS3_24interop_semaphore_handleERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_11resource_fdEEENS3_18external_semaphoreENS3_29external_semaphore_descriptorIT_EERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_11resource_fdEEENS3_18external_semaphoreENS3_29external_semaphore_descriptorIT_EERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_21resource_win32_handleEEENS3_18external_semaphoreENS3_29external_semaphore_descriptorIT_EERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental25import_external_semaphoreINS3_21resource_win32_handleEEENS3_18external_semaphoreENS3_29external_semaphore_descriptorIT_EERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental25map_external_image_memoryENS3_12external_memERKNS3_16image_descriptorERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental25map_external_image_memoryENS3_12external_memERKNS3_16image_descriptorERKNS0_6deviceERKNS0_7contextE +_ZN4sycl3_V13ext6oneapi12experimental26release_external_semaphoreENS3_18external_semaphoreERKNS0_5queueE +_ZN4sycl3_V13ext6oneapi12experimental26release_external_semaphoreENS3_18external_semaphoreERKNS0_6deviceERKNS0_7contextE _ZN4sycl3_V13ext6oneapi12experimental4node12update_rangeILi1EEEvNS0_5rangeIXT_EEE _ZN4sycl3_V13ext6oneapi12experimental4node12update_rangeILi2EEEvNS0_5rangeIXT_EEE _ZN4sycl3_V13ext6oneapi12experimental4node12update_rangeILi3EEEvNS0_5rangeIXT_EEE @@ -3518,10 +3518,10 @@ _ZN4sycl3_V17handler28setStateExplicitKernelBundleEv _ZN4sycl3_V17handler30memcpyFromHostOnlyDeviceGlobalEPvPKvbmm _ZN4sycl3_V17handler30verifyUsedKernelBundleInternalENS0_6detail11string_viewE _ZN4sycl3_V17handler32verifyDeviceHasProgressGuaranteeENS0_3ext6oneapi12experimental26forward_progress_guaranteeENS4_15execution_scopeES6_ -_ZN4sycl3_V17handler34ext_oneapi_wait_external_semaphoreENS0_3ext6oneapi12experimental24interop_semaphore_handleE -_ZN4sycl3_V17handler34ext_oneapi_wait_external_semaphoreENS0_3ext6oneapi12experimental24interop_semaphore_handleEm -_ZN4sycl3_V17handler36ext_oneapi_signal_external_semaphoreENS0_3ext6oneapi12experimental24interop_semaphore_handleE -_ZN4sycl3_V17handler36ext_oneapi_signal_external_semaphoreENS0_3ext6oneapi12experimental24interop_semaphore_handleEm +_ZN4sycl3_V17handler34ext_oneapi_wait_external_semaphoreENS0_3ext6oneapi12experimental18external_semaphoreE +_ZN4sycl3_V17handler34ext_oneapi_wait_external_semaphoreENS0_3ext6oneapi12experimental18external_semaphoreEm +_ZN4sycl3_V17handler36ext_oneapi_signal_external_semaphoreENS0_3ext6oneapi12experimental18external_semaphoreE +_ZN4sycl3_V17handler36ext_oneapi_signal_external_semaphoreENS0_3ext6oneapi12experimental18external_semaphoreEm _ZN4sycl3_V17handler6addArgENS0_6detail19kernel_param_kind_tEPvii _ZN4sycl3_V17handler6memcpyEPvPKvm _ZN4sycl3_V17handler6memsetEPvim diff --git a/sycl/test/abi/sycl_symbols_windows.dump b/sycl/test/abi/sycl_symbols_windows.dump index 2957c2aabf5fd..72fe0ebad1ed8 100644 --- a/sycl/test/abi/sycl_symbols_windows.dump +++ b/sycl/test/abi/sycl_symbols_windows.dump @@ -247,14 +247,14 @@ ??$get_profiling_info@Ucommand_end@event_profiling@info@_V1@sycl@@@event@_V1@sycl@@QEBA_KXZ ??$get_profiling_info@Ucommand_start@event_profiling@info@_V1@sycl@@@event@_V1@sycl@@QEBA_KXZ ??$get_profiling_info@Ucommand_submit@event_profiling@info@_V1@sycl@@@event@_V1@sycl@@QEBA_KXZ -??$import_external_memory@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_mem_handle@01234@U?$external_mem_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z -??$import_external_memory@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_mem_handle@01234@U?$external_mem_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z -??$import_external_memory@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_mem_handle@01234@U?$external_mem_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z -??$import_external_memory@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_mem_handle@01234@U?$external_mem_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z -??$import_external_semaphore@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_semaphore_handle@01234@U?$external_semaphore_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z -??$import_external_semaphore@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_semaphore_handle@01234@U?$external_semaphore_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z -??$import_external_semaphore@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_semaphore_handle@01234@U?$external_semaphore_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z -??$import_external_semaphore@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUinterop_semaphore_handle@01234@U?$external_semaphore_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z +??$import_external_memory@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_mem@01234@U?$external_mem_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z +??$import_external_memory@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_mem@01234@U?$external_mem_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z +??$import_external_memory@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_mem@01234@U?$external_mem_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z +??$import_external_memory@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_mem@01234@U?$external_mem_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z +??$import_external_semaphore@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_semaphore@01234@U?$external_semaphore_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z +??$import_external_semaphore@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_semaphore@01234@U?$external_semaphore_descriptor@Uresource_fd@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z +??$import_external_semaphore@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_semaphore@01234@U?$external_semaphore_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVdevice@34@AEBVcontext@34@@Z +??$import_external_semaphore@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@experimental@oneapi@ext@_V1@sycl@@YA?AUexternal_semaphore@01234@U?$external_semaphore_descriptor@Uresource_win32_handle@experimental@oneapi@ext@_V1@sycl@@@01234@AEBVqueue@34@@Z ??$update_nd_range@$00@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$00@45@@Z ??$update_nd_range@$01@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$01@45@@Z ??$update_nd_range@$02@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$02@45@@Z @@ -3837,14 +3837,14 @@ ?ext_oneapi_owner_before@?$OwnerLessBase@Vstream@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVstream@34@@Z ?ext_oneapi_prod@queue@_V1@sycl@@QEAAXXZ ?ext_oneapi_set_external_event@queue@_V1@sycl@@QEAAXAEBVevent@23@@Z -?ext_oneapi_signal_external_semaphore@handler@_V1@sycl@@QEAAXUinterop_semaphore_handle@experimental@oneapi@ext@23@@Z -?ext_oneapi_signal_external_semaphore@handler@_V1@sycl@@QEAAXUinterop_semaphore_handle@experimental@oneapi@ext@23@_K@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@AEBUcode_location@detail@23@@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@AEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@V423@AEBUcode_location@detail@23@@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KAEBUcode_location@detail@23@@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KAEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z -?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KV423@AEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@handler@_V1@sycl@@QEAAXUexternal_semaphore@experimental@oneapi@ext@23@@Z +?ext_oneapi_signal_external_semaphore@handler@_V1@sycl@@QEAAXUexternal_semaphore@experimental@oneapi@ext@23@_K@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@AEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@AEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@V423@AEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KAEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KAEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z +?ext_oneapi_signal_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KV423@AEBUcode_location@detail@23@@Z ?ext_oneapi_submit_barrier@queue@_V1@sycl@@QEAA?AVevent@23@AEBUcode_location@detail@23@@Z ?ext_oneapi_submit_barrier@queue@_V1@sycl@@QEAA?AVevent@23@AEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z ?ext_oneapi_supports_cl_c_feature@device@_V1@sycl@@AEAA_NVstring_view@detail@23@@Z @@ -3852,14 +3852,14 @@ ?ext_oneapi_supports_cl_c_version@device@_V1@sycl@@QEBA_NAEBUcl_version@experimental@oneapi@ext@23@@Z ?ext_oneapi_supports_cl_extension@device@_V1@sycl@@AEBA_NVstring_view@detail@23@PEAUcl_version@experimental@oneapi@ext@23@@Z ?ext_oneapi_supports_cl_extension@device@_V1@sycl@@QEBA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAUcl_version@experimental@oneapi@ext@23@@Z -?ext_oneapi_wait_external_semaphore@handler@_V1@sycl@@QEAAXUinterop_semaphore_handle@experimental@oneapi@ext@23@@Z -?ext_oneapi_wait_external_semaphore@handler@_V1@sycl@@QEAAXUinterop_semaphore_handle@experimental@oneapi@ext@23@_K@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@AEBUcode_location@detail@23@@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@AEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@V423@AEBUcode_location@detail@23@@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KAEBUcode_location@detail@23@@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KAEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z -?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uinterop_semaphore_handle@experimental@oneapi@ext@23@_KV423@AEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@handler@_V1@sycl@@QEAAXUexternal_semaphore@experimental@oneapi@ext@23@@Z +?ext_oneapi_wait_external_semaphore@handler@_V1@sycl@@QEAAXUexternal_semaphore@experimental@oneapi@ext@23@_K@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@AEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@AEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@V423@AEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KAEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KAEBV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@AEBUcode_location@detail@23@@Z +?ext_oneapi_wait_external_semaphore@queue@_V1@sycl@@QEAA?AVevent@23@Uexternal_semaphore@experimental@oneapi@ext@23@_KV423@AEBUcode_location@detail@23@@Z ?extractArgsAndReqs@handler@_V1@sycl@@AEAAXXZ ?extractArgsAndReqsFromLambda@handler@_V1@sycl@@AEAAXPEAD_KPEBUkernel_param_desc_t@detail@23@_N@Z ?fill_impl@handler@_V1@sycl@@AEAAXPEAXPEBX_K2@Z @@ -4126,8 +4126,8 @@ ?malloc_shared@_V1@sycl@@YAPEAX_KAEBVqueue@12@AEBUcode_location@detail@12@@Z ?malloc_shared@_V1@sycl@@YAPEAX_KAEBVqueue@12@AEBVproperty_list@12@AEBUcode_location@detail@12@@Z ?map@physical_mem@experimental@oneapi@ext@_V1@sycl@@QEBAPEAX_K0W4address_access_mode@23456@0@Z -?map_external_image_memory@experimental@oneapi@ext@_V1@sycl@@YA?AUimage_mem_handle@12345@Uinterop_mem_handle@12345@AEBUimage_descriptor@12345@AEBVdevice@45@AEBVcontext@45@@Z -?map_external_image_memory@experimental@oneapi@ext@_V1@sycl@@YA?AUimage_mem_handle@12345@Uinterop_mem_handle@12345@AEBUimage_descriptor@12345@AEBVqueue@45@@Z +?map_external_image_memory@experimental@oneapi@ext@_V1@sycl@@YA?AUimage_mem_handle@12345@Uexternal_mem@12345@AEBUimage_descriptor@12345@AEBVdevice@45@AEBVcontext@45@@Z +?map_external_image_memory@experimental@oneapi@ext@_V1@sycl@@YA?AUimage_mem_handle@12345@Uexternal_mem@12345@AEBUimage_descriptor@12345@AEBVqueue@45@@Z ?markBufferAsInternal@detail@_V1@sycl@@YAXAEBV?$shared_ptr@Vbuffer_impl@detail@_V1@sycl@@@std@@@Z ?mem_advise@experimental@oneapi@ext@_V1@sycl@@YAXVqueue@45@PEAX_KHAEBUcode_location@detail@45@@Z ?mem_advise@handler@_V1@sycl@@QEAAXPEBX_KH@Z @@ -4177,10 +4177,10 @@ ?reduGetMaxWGSize@detail@_V1@sycl@@YA_KV?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@_K@Z ?reduGetPreferredWGSize@detail@_V1@sycl@@YA_KAEAV?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@_K@Z ?registerDynamicParameter@handler@_V1@sycl@@AEAAXAEAVdynamic_parameter_base@detail@experimental@oneapi@ext@23@H@Z -?release_external_memory@experimental@oneapi@ext@_V1@sycl@@YAXUinterop_mem_handle@12345@AEBVdevice@45@AEBVcontext@45@@Z -?release_external_memory@experimental@oneapi@ext@_V1@sycl@@YAXUinterop_mem_handle@12345@AEBVqueue@45@@Z -?release_external_semaphore@experimental@oneapi@ext@_V1@sycl@@YAXUinterop_semaphore_handle@12345@AEBVdevice@45@AEBVcontext@45@@Z -?release_external_semaphore@experimental@oneapi@ext@_V1@sycl@@YAXUinterop_semaphore_handle@12345@AEBVqueue@45@@Z +?release_external_memory@experimental@oneapi@ext@_V1@sycl@@YAXUexternal_mem@12345@AEBVdevice@45@AEBVcontext@45@@Z +?release_external_memory@experimental@oneapi@ext@_V1@sycl@@YAXUexternal_mem@12345@AEBVqueue@45@@Z +?release_external_semaphore@experimental@oneapi@ext@_V1@sycl@@YAXUexternal_semaphore@12345@AEBVdevice@45@AEBVcontext@45@@Z +?release_external_semaphore@experimental@oneapi@ext@_V1@sycl@@YAXUexternal_semaphore@12345@AEBVqueue@45@@Z ?release_from_device_copy@experimental@oneapi@ext@_V1@sycl@@YAXPEBXAEBVcontext@45@@Z ?release_from_device_copy@experimental@oneapi@ext@_V1@sycl@@YAXPEBXAEBVqueue@45@@Z ?removeDuplicateDevices@detail@_V1@sycl@@YA?BV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@AEBV45@@Z