diff --git a/sycl/doc/extensions/supported/sycl_ext_oneapi_backend_level_zero.md b/sycl/doc/extensions/supported/sycl_ext_oneapi_backend_level_zero.md index d0112c3bc4123..710bb52f8a726 100644 --- a/sycl/doc/extensions/supported/sycl_ext_oneapi_backend_level_zero.md +++ b/sycl/doc/extensions/supported/sycl_ext_oneapi_backend_level_zero.md @@ -639,4 +639,4 @@ The behavior of the SYCL buffer destructor depends on the Ownership flag. As wit |9|2022-05-12|Steffen Larsen|Added device member to queue input type |10|2022-08-18|Sergey Maslov|Moved free_memory device info query to be sycl_ext_intel_device_info extension |11|2023-03-14|Rajiv Deodhar|Added support for Level Zero immediate command lists -|12|2023-04-06|Chris Perkins|Introduced make_image() API \ No newline at end of file +|12|2023-04-06|Chris Perkins|Introduced make_image() API diff --git a/sycl/include/sycl/backend.hpp b/sycl/include/sycl/backend.hpp index bcafbe3efc8e6..8ed58d3625a7c 100644 --- a/sycl/include/sycl/backend.hpp +++ b/sycl/include/sycl/backend.hpp @@ -135,6 +135,28 @@ auto get_native(const SyclObjectT &Obj) Obj.getNative()); } +template +auto get_native(const queue &Obj) -> backend_return_t { + // TODO use SYCL 2020 exception when implemented + if (Obj.get_backend() != BackendName) { + throw sycl::runtime_error(errc::backend_mismatch, "Backends mismatch", + PI_ERROR_INVALID_OPERATION); + } + int32_t IsImmCmdList; + pi_native_handle Handle = Obj.getNative(IsImmCmdList); + backend_return_t RetVal; + if constexpr (BackendName == backend::ext_oneapi_level_zero) + RetVal = IsImmCmdList + ? backend_return_t{reinterpret_cast< + ze_command_list_handle_t>(Handle)} + : backend_return_t{ + reinterpret_cast(Handle)}; + else + RetVal = reinterpret_cast>(Handle); + + return RetVal; +} + template auto get_native(const kernel_bundle &Obj) -> backend_return_t> { @@ -211,21 +233,11 @@ __SYCL_EXPORT context make_context(pi_native_handle NativeHandle, const async_handler &Handler, backend Backend); __SYCL_EXPORT queue make_queue(pi_native_handle NativeHandle, + int32_t nativeHandleDesc, const context &TargetContext, const device *TargetDevice, bool KeepOwnership, + const property_list &PropList, const async_handler &Handler, backend Backend); - -// The make_queue2 and getNative2 functions are added as a temporary measure so -// that the existing make_queue and getNative functions can co-exist with them. -// At the next ABI redefinition the current make_queue and getNative definitions -// will be removed. "make_queue2" will be renamed "make_queue" and "getNative2" -// will be renamed "getNative". -__SYCL_EXPORT queue make_queue2(pi_native_handle NativeHandle, - int32_t nativeHandleDesc, - const context &TargetContext, - const device *TargetDevice, bool KeepOwnership, - const property_list &PropList, - const async_handler &Handler, backend Backend); __SYCL_EXPORT event make_event(pi_native_handle NativeHandle, const context &TargetContext, backend Backend); __SYCL_EXPORT event make_event(pi_native_handle NativeHandle, @@ -283,22 +295,9 @@ std::enable_if_t::MakeQueue == true, make_queue(const typename backend_traits::template input_type &BackendObject, const context &TargetContext, const async_handler Handler = {}) { - if constexpr (Backend == backend::ext_oneapi_level_zero) { - bool IsImmCmdList = std::holds_alternative( - BackendObject.NativeHandle); - pi_native_handle Handle = - IsImmCmdList ? reinterpret_cast( - *(std::get_if( - &BackendObject.NativeHandle))) - : reinterpret_cast( - *(std::get_if( - &BackendObject.NativeHandle))); - return sycl::detail::make_queue2(Handle, IsImmCmdList, TargetContext, - nullptr, false, BackendObject.Properties, - Handler, Backend); - } return detail::make_queue(detail::pi::cast(BackendObject), - TargetContext, nullptr, false, Handler, Backend); + false, TargetContext, nullptr, false, {}, Handler, + Backend); } template diff --git a/sycl/include/sycl/detail/pi.def b/sycl/include/sycl/detail/pi.def index 148a6abcb9f9d..c97e82fb24733 100644 --- a/sycl/include/sycl/detail/pi.def +++ b/sycl/include/sycl/detail/pi.def @@ -158,9 +158,4 @@ _PI_API(piextEnqueueDeviceGlobalVariableRead) _PI_API(piPluginGetBackendOption) -// Queue create and get APIs for immediate commandlists -_PI_API(piextQueueCreate2) -_PI_API(piextQueueGetNativeHandle2) -_PI_API(piextQueueCreateWithNativeHandle2) - #undef _PI_API diff --git a/sycl/include/sycl/detail/pi.h b/sycl/include/sycl/detail/pi.h index 799e820a1946c..9ae07e72c4d5e 100644 --- a/sycl/include/sycl/detail/pi.h +++ b/sycl/include/sycl/detail/pi.h @@ -83,18 +83,20 @@ // 12.25 Added PI_EXT_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES and // PI_EXT_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES for piDeviceGetInfo. // 12.26 Added piextEnqueueReadHostPipe and piextEnqueueWriteHostPipe functions. -// 12.27 Added new queue create and get APIs for immediate commandlists -// piextQueueCreate2, piextQueueCreateWithNativeHandle2, -// piextQueueGetNativeHandle2 +// 12.27 Added properties parameter to piextQueueCreateWithNativeHandle and +// changed native handle type of piextQueueCreateWithNativeHandle and +// piextQueueGetNativeHandle // 12.28 Added piextMemImageCreateWithNativeHandle for creating images from // native handles. // 12.29 Support PI_EXT_PLATFORM_INFO_BACKEND query in piPlatformGetInfo // 12.30 Added PI_EXT_INTEL_DEVICE_INFO_MEM_CHANNEL_SUPPORT device info query. // 12.31 Added PI_EXT_CODEPLAY_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP device // info query. +// 12.32 Removed backwards compatibility of piextQueueCreateWithNativeHandle and +// piextQueueGetNativeHandle -#define _PI_H_VERSION_MAJOR 12 -#define _PI_H_VERSION_MINOR 31 +#define _PI_H_VERSION_MAJOR 13 +#define _PI_H_VERSION_MINOR 32 #define _PI_STRING_HELPER(a) #a #define _PI_CONCAT(a, b) _PI_STRING_HELPER(a.b) @@ -1210,12 +1212,6 @@ __SYCL_EXPORT pi_result piQueueCreate(pi_context context, pi_device device, __SYCL_EXPORT pi_result piextQueueCreate(pi_context context, pi_device device, pi_queue_properties *properties, pi_queue *queue); -/// \param properties points to a zero-terminated array of extra data describing -/// desired queue properties. Format is -/// {[PROPERTY[, property-specific elements of data]*,]* 0} -__SYCL_EXPORT pi_result piextQueueCreate2(pi_context context, pi_device device, - pi_queue_properties *properties, - pi_queue *queue); __SYCL_EXPORT pi_result piQueueGetInfo(pi_queue command_queue, pi_queue_info param_name, @@ -1231,36 +1227,14 @@ __SYCL_EXPORT pi_result piQueueFinish(pi_queue command_queue); __SYCL_EXPORT pi_result piQueueFlush(pi_queue command_queue); -/// Gets the native handle of a PI queue object. -/// -/// \param queue is the PI queue to get the native handle of. -/// \param nativeHandle is the native handle of queue. -__SYCL_EXPORT pi_result -piextQueueGetNativeHandle(pi_queue queue, pi_native_handle *nativeHandle); - /// Gets the native handle of a PI queue object. /// /// \param queue is the PI queue to get the native handle of. /// \param nativeHandle is the native handle of queue or commandlist. /// \param nativeHandleDesc provides additional properties of the native handle. -__SYCL_EXPORT pi_result piextQueueGetNativeHandle2( +__SYCL_EXPORT pi_result piextQueueGetNativeHandle( pi_queue queue, pi_native_handle *nativeHandle, int32_t *nativeHandleDesc); -/// Creates PI queue object from a native handle. -/// NOTE: The created PI object takes ownership of the native handle. -/// -/// \param nativeHandle is the native handle to create PI queue from. -/// \param context is the PI context of the queue. -/// \param device is the PI device associated with the native device used when -/// creating the native queue. This parameter is optional but some backends -/// may fail to create the right PI queue if omitted. -/// \param pluginOwnsNativeHandle Indicates whether the created PI object -/// should take ownership of the native handle. -/// \param queue is the PI queue created from the native handle. -__SYCL_EXPORT pi_result piextQueueCreateWithNativeHandle( - pi_native_handle nativeHandle, pi_context context, pi_device device, - bool pluginOwnsNativeHandle, pi_queue *queue); - /// Creates PI queue object from a native handle. /// NOTE: The created PI object takes ownership of the native handle. /// @@ -1274,7 +1248,7 @@ __SYCL_EXPORT pi_result piextQueueCreateWithNativeHandle( /// should take ownership of the native handle. /// \param Properties holds queue properties. /// \param queue is the PI queue created from the native handle. -__SYCL_EXPORT pi_result piextQueueCreateWithNativeHandle2( +__SYCL_EXPORT pi_result piextQueueCreateWithNativeHandle( pi_native_handle nativeHandle, int32_t nativeHandleDesc, pi_context context, pi_device device, bool pluginOwnsNativeHandle, pi_queue_properties *Properties, pi_queue *queue); diff --git a/sycl/include/sycl/ext/oneapi/backend/level_zero.hpp b/sycl/include/sycl/ext/oneapi/backend/level_zero.hpp index b857b97f01850..9095e2f87a2be 100644 --- a/sycl/include/sycl/ext/oneapi/backend/level_zero.hpp +++ b/sycl/include/sycl/ext/oneapi/backend/level_zero.hpp @@ -24,17 +24,10 @@ __SYCL_EXPORT device make_device(const platform &Platform, __SYCL_EXPORT context make_context(const std::vector &DeviceList, pi_native_handle NativeHandle, bool keep_ownership = false); -__SYCL_DEPRECATED("Use make_queue with device parameter") -__SYCL_EXPORT queue make_queue(const context &Context, - pi_native_handle InteropHandle, - bool keep_ownership = false); __SYCL_EXPORT queue make_queue(const context &Context, const device &Device, pi_native_handle InteropHandle, - bool keep_ownership = false); -__SYCL_EXPORT queue make_queue2(const context &Context, const device &Device, - pi_native_handle InteropHandle, - bool IsImmCmdList, bool keep_ownership, - const property_list &Properties); + bool IsImmCmdList, bool keep_ownership, + const property_list &Properties); __SYCL_EXPORT event make_event(const context &Context, pi_native_handle InteropHandle, bool keep_ownership = false); @@ -78,19 +71,6 @@ T make(const std::vector &DeviceList, Ownership == ownership::keep); } -// Construction of SYCL queue. -template > * = nullptr> -__SYCL_DEPRECATED("Use SYCL 2020 sycl::make_queue free function") -T make(const context &Context, - typename sycl::detail::interop::type - Interop, - ownership Ownership = ownership::transfer) { - return make_queue(Context, Context.get_devices()[0], - *(reinterpret_cast(&Interop)), - Ownership == ownership::keep); -} - // Construction of SYCL event. template > * = nullptr> @@ -102,6 +82,7 @@ T make(const context &Context, return make_event(Context, reinterpret_cast(Interop), Ownership == ownership::keep); } + } // namespace ext::oneapi::level_zero // Specialization of sycl::make_context for Level-Zero backend. @@ -133,7 +114,7 @@ inline queue make_queue( : reinterpret_cast( *(std::get_if( &BackendObject.NativeHandle))); - return ext::oneapi::level_zero::make_queue2( + return ext::oneapi::level_zero::make_queue( TargetContext, Device, Handle, IsImmCmdList, BackendObject.Ownership == ext::oneapi::level_zero::ownership::keep, BackendObject.Properties); @@ -144,16 +125,13 @@ template <> inline auto get_native(const queue &Obj) -> backend_return_t { int32_t IsImmCmdList; - pi_native_handle Handle = Obj.getNative2(IsImmCmdList); - if (IsImmCmdList) { - return backend_return_t{ - std::in_place_index<1>, - reinterpret_cast(Handle)}; - } else { - return backend_return_t{ - std::in_place_index<0>, - reinterpret_cast(Handle)}; - } + pi_native_handle Handle = Obj.getNative(IsImmCmdList); + return IsImmCmdList + ? backend_return_t< + backend::ext_oneapi_level_zero, + queue>{reinterpret_cast(Handle)} + : backend_return_t{ + reinterpret_cast(Handle)}; } // Specialization of sycl::make_event for Level-Zero backend. diff --git a/sycl/include/sycl/ext/oneapi/experimental/backend/cuda.hpp b/sycl/include/sycl/ext/oneapi/experimental/backend/cuda.hpp index 1850b76aaf4df..2cc326946415d 100644 --- a/sycl/include/sycl/ext/oneapi/experimental/backend/cuda.hpp +++ b/sycl/include/sycl/ext/oneapi/experimental/backend/cuda.hpp @@ -91,8 +91,11 @@ template <> inline queue make_queue( const backend_input_t &BackendObject, const context &TargetContext, const async_handler Handler) { + int32_t nativeHandleDesc = 0; + const property_list &PropList{}; return detail::make_queue(detail::pi::cast(BackendObject), - TargetContext, nullptr, true, Handler, + nativeHandleDesc, TargetContext, nullptr, true, + PropList, Handler, /*Backend*/ backend::ext_oneapi_cuda); } diff --git a/sycl/include/sycl/interop_handle.hpp b/sycl/include/sycl/interop_handle.hpp index e44d4be65d3fd..478ea5a69cc4e 100644 --- a/sycl/include/sycl/interop_handle.hpp +++ b/sycl/include/sycl/interop_handle.hpp @@ -117,7 +117,9 @@ class interop_handle { if (Backend != get_backend()) throw invalid_object_error("Incorrect backend argument was passed", PI_ERROR_INVALID_MEM_OBJECT); - return reinterpret_cast>(getNativeQueue()); + int32_t NativeHandleDesc; + return reinterpret_cast>( + getNativeQueue(NativeHandleDesc)); #else // we believe this won't be ever called on device side return 0; @@ -197,7 +199,8 @@ class interop_handle { __SYCL_EXPORT pi_native_handle getNativeMem(detail::AccessorImplHost *Req) const; - __SYCL_EXPORT pi_native_handle getNativeQueue() const; + __SYCL_EXPORT pi_native_handle + getNativeQueue(int32_t &NativeHandleDesc) const; __SYCL_EXPORT pi_native_handle getNativeDevice() const; __SYCL_EXPORT pi_native_handle getNativeContext() const; diff --git a/sycl/include/sycl/interop_handler.hpp b/sycl/include/sycl/interop_handler.hpp index ec185dd715f22..fc7bf6754bd30 100644 --- a/sycl/include/sycl/interop_handler.hpp +++ b/sycl/include/sycl/interop_handler.hpp @@ -33,8 +33,9 @@ class __SYCL_DEPRECATED("interop_handler class is deprecated, use" template auto get_queue() const -> typename detail::interop::type { + int32_t NativeHandleDesc; return reinterpret_cast::type>( - GetNativeQueue()); + GetNativeQueue(NativeHandleDesc)); } template { public: -#ifdef __SYCL_EXT_ONEAPI_BACKEND_LEVEL_ZERO_V3 - /// Constructs a SYCL queue instance using the device returned by an instance /// of default_selector. /// @@ -247,183 +245,6 @@ class __SYCL_EXPORT queue : public detail::OwnerLessBase { queue(const context &SyclContext, const device &SyclDevice, const async_handler &AsyncHandler, const property_list &PropList = {}); -#else // __SYCL_EXT_ONEAPI_BACKEND_LEVEL_ZERO_V3 - -private: - // This class is used as an additional internal parameter to distinguish older - // constructors from current ones. - class Discriminator { - public: - Discriminator(){}; - }; - -public: - /// Constructs a SYCL queue instance using the device returned by an instance - /// of default_selector. - /// - /// \param PropList is a list of properties for queue construction. - explicit queue(const property_list &PropList = {}, Discriminator Disc = {}) - : queue(default_selector(), detail::defaultAsyncHandler, PropList, Disc) { - } - - /// Constructs a SYCL queue instance with an async_handler using the device - /// returned by an instance of default_selector. - /// - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - queue(const async_handler &AsyncHandler, const property_list &PropList = {}, - Discriminator Disc = {}) - : queue(default_selector(), AsyncHandler, PropList, Disc) {} - - /// Constructs a SYCL queue instance using the device identified by the - /// device selector provided. - /// \param DeviceSelector is SYCL 2020 Device Selector, a simple callable that - /// takes a device and returns an int - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - template > - explicit queue(const DeviceSelector &deviceSelector, - const async_handler &AsyncHandler, - const property_list &PropList = {}, Discriminator Disc = {}) - : queue(detail::select_device(deviceSelector), AsyncHandler, PropList, - Disc) {} - - /// Constructs a SYCL queue instance using the device identified by the - /// device selector provided. - /// \param DeviceSelector is SYCL 2020 Device Selector, a simple callable that - /// takes a device and returns an int - /// \param PropList is a list of properties for queue construction. - template > - explicit queue(const DeviceSelector &deviceSelector, - const property_list &PropList = {}, Discriminator Disc = {}) - : queue(detail::select_device(deviceSelector), - detail::defaultAsyncHandler, PropList, Disc) {} - - /// Constructs a SYCL queue instance using the device identified by the - /// device selector provided. - /// \param SyclContext is an instance of SYCL context. - /// \param DeviceSelector is SYCL 2020 Device Selector, a simple callable that - /// takes a device and returns an int - /// \param PropList is a list of properties for queue construction. - template > - explicit queue(const context &syclContext, - const DeviceSelector &deviceSelector, - const property_list &propList = {}, Discriminator Disc = {}) - : queue(syclContext, detail::select_device(deviceSelector, syclContext), - propList, Disc) {} - - /// Constructs a SYCL queue instance using the device identified by the - /// device selector provided. - /// \param SyclContext is an instance of SYCL context. - /// \param DeviceSelector is SYCL 2020 Device Selector, a simple callable that - /// takes a device and returns an int - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - template > - explicit queue(const context &syclContext, - const DeviceSelector &deviceSelector, - const async_handler &AsyncHandler, - const property_list &propList = {}, Discriminator Disc = {}) - : queue(syclContext, detail::select_device(deviceSelector, syclContext), - AsyncHandler, propList, Disc) {} - - /// Constructs a SYCL queue instance using the device returned by the - /// DeviceSelector provided. - /// - /// \param DeviceSelector is an instance of a SYCL 1.2.1 device_selector. - /// \param PropList is a list of properties for queue construction. - __SYCL2020_DEPRECATED("SYCL 1.2.1 device selectors are deprecated. Please " - "use SYCL 2020 device selectors instead.") - queue(const device_selector &DeviceSelector, - const property_list &PropList = {}, Discriminator Disc = {}) - : queue(DeviceSelector.select_device(), detail::defaultAsyncHandler, - PropList, Disc) {} - - /// Constructs a SYCL queue instance with an async_handler using the device - /// returned by the DeviceSelector provided. - /// - /// \param DeviceSelector is an instance of SYCL 1.2.1 device_selector. - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - __SYCL2020_DEPRECATED("SYCL 1.2.1 device selectors are deprecated. Please " - "use SYCL 2020 device selectors instead.") - queue(const device_selector &DeviceSelector, - const async_handler &AsyncHandler, const property_list &PropList = {}, - Discriminator Disc = {}) - : queue(DeviceSelector.select_device(), AsyncHandler, PropList, Disc) {} - - /// Constructs a SYCL queue instance using the device provided. - /// - /// \param SyclDevice is an instance of SYCL device. - /// \param PropList is a list of properties for queue construction. - explicit queue(const device &SyclDevice, const property_list &PropList = {}, - Discriminator Disc = {}) - : queue(SyclDevice, detail::defaultAsyncHandler, PropList, Disc) {} - - /// Constructs a SYCL queue instance with an async_handler using the device - /// provided. - /// - /// \param SyclDevice is an instance of SYCL device. - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - explicit queue(const device &SyclDevice, const async_handler &AsyncHandler, - const property_list &PropList = {}, Discriminator Disc = {}); - - /// Constructs a SYCL queue instance that is associated with the context - /// provided, using the device returned by the device selector. - /// - /// \param SyclContext is an instance of SYCL context. - /// \param DeviceSelector is an instance of SYCL device selector. - /// \param PropList is a list of properties for queue construction. - __SYCL2020_DEPRECATED("SYCL 1.2.1 device selectors are deprecated. Please " - "use SYCL 2020 device selectors instead.") - queue(const context &SyclContext, const device_selector &DeviceSelector, - const property_list &PropList = {}, Discriminator Disc = {}); - - /// Constructs a SYCL queue instance with an async_handler that is associated - /// with the context provided, using the device returned by the device - /// selector. - /// - /// \param SyclContext is an instance of SYCL context. - /// \param DeviceSelector is an instance of SYCL device selector. - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - __SYCL2020_DEPRECATED("SYCL 1.2.1 device selectors are deprecated. Please " - "use SYCL 2020 device selectors instead.") - queue(const context &SyclContext, const device_selector &DeviceSelector, - const async_handler &AsyncHandler, const property_list &PropList = {}, - Discriminator Disc = {}); - - /// Constructs a SYCL queue associated with the given context, device - /// and optional properties list. - /// - /// \param SyclContext is an instance of SYCL context. - /// \param SyclDevice is an instance of SYCL device. - /// \param PropList is a list of properties for queue construction. - queue(const context &SyclContext, const device &SyclDevice, - const property_list &PropList = {}, Discriminator Disc = {}); - - /// Constructs a SYCL queue associated with the given context, device, - /// asynchronous exception handler and optional properties list. - /// - /// \param SyclContext is an instance of SYCL context. - /// \param SyclDevice is an instance of SYCL device. - /// \param AsyncHandler is a SYCL asynchronous exception handler. - /// \param PropList is a list of properties for queue construction. - queue(const context &SyclContext, const device &SyclDevice, - const async_handler &AsyncHandler, const property_list &PropList = {}, - Discriminator Disc = {}); - -#endif // __SYCL_EXT_ONEAPI_BACKEND_LEVEL_ZERO_V3 - /// Constructs a SYCL queue with an optional async_handler from an OpenCL /// cl_command_queue. /// @@ -2092,10 +1913,9 @@ class __SYCL_EXPORT queue : public detail::OwnerLessBase { /// completed, otherwise returns false. bool ext_oneapi_empty() const; -private: - pi_native_handle getNative() const; - pi_native_handle getNative2(int32_t &NativeHandleDesc) const; + pi_native_handle getNative(int32_t &NativeHandleDesc) const; +private: std::shared_ptr impl; queue(std::shared_ptr impl) : impl(impl) {} diff --git a/sycl/plugins/cuda/pi_cuda.cpp b/sycl/plugins/cuda/pi_cuda.cpp index b53b0ad894db0..19818cc8cc40b 100644 --- a/sycl/plugins/cuda/pi_cuda.cpp +++ b/sycl/plugins/cuda/pi_cuda.cpp @@ -2773,41 +2773,39 @@ pi_result cuda_piQueueFlush(pi_queue command_queue) { /// Gets the native CUDA handle of a PI queue object /// /// \param[in] queue The PI queue to get the native CUDA object of. +/// \param[in] NativeHandleDesc Pointer to additional native handle info. /// \param[out] nativeHandle Set to the native handle of the PI queue object. /// /// \return PI_SUCCESS pi_result cuda_piextQueueGetNativeHandle(pi_queue queue, - pi_native_handle *nativeHandle) { + pi_native_handle *nativeHandle, + int32_t *NativeHandleDesc) { + *NativeHandleDesc = 0; ScopedContext active(queue->get_context()); *nativeHandle = reinterpret_cast(queue->get_next_compute_stream()); return PI_SUCCESS; } -pi_result cuda_piextQueueGetNativeHandle2(pi_queue queue, - pi_native_handle *nativeHandle, - int32_t *NativeHandleDesc) { - (void)NativeHandleDesc; - return cuda_piextQueueGetNativeHandle(queue, nativeHandle); -} - /// Created a PI queue object from a CUDA queue handle. /// NOTE: The created PI object does not take ownership of the native handle. /// /// \param[in] nativeHandle The native handle to create PI queue object from. +/// \param[in] nativeHandleDesc Info about the native handle. /// \param[in] context is the PI context of the queue. /// \param[out] queue Set to the PI queue object created from native handle. /// \param ownNativeHandle tells if SYCL RT should assume the ownership of /// the native handle, if it can. /// /// \return TBD -pi_result cuda_piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, - pi_context context, - pi_device device, - bool ownNativeHandle, - pi_queue *queue) { +pi_result cuda_piextQueueCreateWithNativeHandle( + pi_native_handle nativeHandle, int32_t NativeHandleDesc, pi_context context, + pi_device device, bool ownNativeHandle, pi_queue_properties *Properties, + pi_queue *queue) { + (void)NativeHandleDesc; (void)device; (void)ownNativeHandle; + (void)Properties; assert(ownNativeHandle == false); unsigned int flags; @@ -2840,16 +2838,6 @@ pi_result cuda_piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, return retErr; } -pi_result cuda_piextQueueCreateWithNativeHandle2( - pi_native_handle nativeHandle, int32_t NativeHandleDesc, pi_context context, - pi_device device, bool ownNativeHandle, pi_queue_properties *Properties, - pi_queue *queue) { - (void)NativeHandleDesc; - (void)Properties; - return cuda_piextQueueCreateWithNativeHandle(nativeHandle, context, device, - ownNativeHandle, queue); -} - pi_result cuda_piEnqueueMemBufferWrite(pi_queue command_queue, pi_mem buffer, pi_bool blocking_write, size_t offset, size_t size, const void *ptr, @@ -5894,18 +5882,14 @@ pi_result piPluginInit(pi_plugin *PluginInit) { // Queue _PI_CL(piQueueCreate, cuda_piQueueCreate) _PI_CL(piextQueueCreate, cuda_piextQueueCreate) - _PI_CL(piextQueueCreate2, cuda_piextQueueCreate) _PI_CL(piQueueGetInfo, cuda_piQueueGetInfo) _PI_CL(piQueueFinish, cuda_piQueueFinish) _PI_CL(piQueueFlush, cuda_piQueueFlush) _PI_CL(piQueueRetain, cuda_piQueueRetain) _PI_CL(piQueueRelease, cuda_piQueueRelease) _PI_CL(piextQueueGetNativeHandle, cuda_piextQueueGetNativeHandle) - _PI_CL(piextQueueGetNativeHandle2, cuda_piextQueueGetNativeHandle2) _PI_CL(piextQueueCreateWithNativeHandle, cuda_piextQueueCreateWithNativeHandle) - _PI_CL(piextQueueCreateWithNativeHandle2, - cuda_piextQueueCreateWithNativeHandle2) // Memory _PI_CL(piMemBufferCreate, cuda_piMemBufferCreate) _PI_CL(piMemImageCreate, cuda_piMemImageCreate) diff --git a/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp b/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp index 322958833e5aa..8d77323f465ed 100644 --- a/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp +++ b/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp @@ -972,10 +972,7 @@ pi_result piextQueueCreate(pi_context Context, pi_device Device, return PI_ERROR_INVALID_VALUE; return piQueueCreate(Context, Device, Flags, Queue); } -pi_result piextQueueCreate2(pi_context Context, pi_device Device, - pi_queue_properties *Properties, pi_queue *Queue) { - return piextQueueCreate(Context, Device, Properties, Queue); -} + pi_result piQueueCreate(pi_context Context, pi_device Device, pi_queue_properties Properties, pi_queue *Queue) { ARG_UNUSED(Device); @@ -1044,22 +1041,13 @@ pi_result piQueueFlush(pi_queue) { CONTINUE_NO_IMPLEMENTATION; } -pi_result piextQueueGetNativeHandle(pi_queue, pi_native_handle *) { - DIE_NO_IMPLEMENTATION; -} - -pi_result piextQueueGetNativeHandle2(pi_queue, pi_native_handle *, int32_t *) { - DIE_NO_IMPLEMENTATION; -} - -pi_result piextQueueCreateWithNativeHandle(pi_native_handle, pi_context, - pi_device, bool, pi_queue *) { +pi_result piextQueueGetNativeHandle(pi_queue, pi_native_handle *, int32_t *) { DIE_NO_IMPLEMENTATION; } -pi_result piextQueueCreateWithNativeHandle2(pi_native_handle, int32_t, - pi_context, pi_device, bool, - pi_queue_properties *, pi_queue *) { +pi_result piextQueueCreateWithNativeHandle(pi_native_handle, int32_t, + pi_context, pi_device, bool, + pi_queue_properties *, pi_queue *) { DIE_NO_IMPLEMENTATION; } diff --git a/sycl/plugins/hip/pi_hip.cpp b/sycl/plugins/hip/pi_hip.cpp index 760a2a09eccd1..e255a69d78802 100644 --- a/sycl/plugins/hip/pi_hip.cpp +++ b/sycl/plugins/hip/pi_hip.cpp @@ -2708,20 +2708,15 @@ pi_result hip_piQueueFlush(pi_queue command_queue) { /// /// \return PI_SUCCESS pi_result hip_piextQueueGetNativeHandle(pi_queue queue, - pi_native_handle *nativeHandle) { + pi_native_handle *nativeHandle, + int32_t *NativeHandleDesc) { + *NativeHandleDesc = 0; ScopedContext active(queue->get_context()); *nativeHandle = reinterpret_cast(queue->get_next_compute_stream()); return PI_SUCCESS; } -pi_result hip_piextQueueGetNativeHandle2(pi_queue queue, - pi_native_handle *nativeHandle, - int32_t *NativeHandleDesc) { - (void)NativeHandleDesc; - return hip_piextQueueGetNativeHandle(queue, nativeHandle); -} - /// Created a PI queue object from a HIP queue handle. /// TODO: Implement this. /// NOTE: The created PI object takes ownership of the native handle. @@ -2734,31 +2729,22 @@ pi_result hip_piextQueueGetNativeHandle2(pi_queue queue, /// /// /// \return TBD -pi_result hip_piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, - pi_context context, - pi_device device, - bool ownNativeHandle, - pi_queue *queue) { +pi_result hip_piextQueueCreateWithNativeHandle( + pi_native_handle nativeHandle, int32_t NativeHandleDesc, pi_context context, + pi_device device, bool ownNativeHandle, pi_queue_properties *Properties, + pi_queue *queue) { (void)nativeHandle; + (void)NativeHandleDesc; (void)context; (void)device; - (void)queue; (void)ownNativeHandle; + (void)Properties; + (void)queue; sycl::detail::pi::die( "Creation of PI queue from native handle not implemented"); return {}; } -pi_result hip_piextQueueCreateWithNativeHandle2( - pi_native_handle nativeHandle, int32_t NativeHandleDesc, pi_context context, - pi_device device, bool ownNativeHandle, pi_queue_properties *Properties, - pi_queue *queue) { - (void)NativeHandleDesc; - (void)Properties; - return hip_piextQueueCreateWithNativeHandle(nativeHandle, context, device, - ownNativeHandle, queue); -} - pi_result hip_piEnqueueMemBufferWrite(pi_queue command_queue, pi_mem buffer, pi_bool blocking_write, size_t offset, size_t size, void *ptr, @@ -5649,17 +5635,13 @@ pi_result piPluginInit(pi_plugin *PluginInit) { // Queue _PI_CL(piQueueCreate, hip_piQueueCreate) _PI_CL(piextQueueCreate, hip_piextQueueCreate) - _PI_CL(piextQueueCreate2, hip_piextQueueCreate) _PI_CL(piQueueGetInfo, hip_piQueueGetInfo) _PI_CL(piQueueFinish, hip_piQueueFinish) _PI_CL(piQueueFlush, hip_piQueueFlush) _PI_CL(piQueueRetain, hip_piQueueRetain) _PI_CL(piQueueRelease, hip_piQueueRelease) _PI_CL(piextQueueGetNativeHandle, hip_piextQueueGetNativeHandle) - _PI_CL(piextQueueGetNativeHandle2, hip_piextQueueGetNativeHandle2) _PI_CL(piextQueueCreateWithNativeHandle, hip_piextQueueCreateWithNativeHandle) - _PI_CL(piextQueueCreateWithNativeHandle2, - hip_piextQueueCreateWithNativeHandle2) // Memory _PI_CL(piMemBufferCreate, hip_piMemBufferCreate) _PI_CL(piMemImageCreate, hip_piMemImageCreate) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index fde97657ff641..b03b45ac8a00a 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2683,11 +2683,6 @@ pi_result piextQueueCreate(pi_context Context, pi_device Device, return piextQueueCreateInternal(Context, Device, Properties, Queue, true); } -pi_result piextQueueCreate2(pi_context Context, pi_device Device, - pi_queue_properties *Properties, pi_queue *Queue) { - return piextQueueCreateInternal(Context, Device, Properties, Queue, false); -} - pi_result piQueueGetInfo(pi_queue Queue, pi_queue_info ParamName, size_t ParamValueSize, void *ParamValue, size_t *ParamValueSizeRet) { @@ -2991,30 +2986,8 @@ pi_result piQueueFlush(pi_queue Queue) { } pi_result piextQueueGetNativeHandle(pi_queue Queue, - pi_native_handle *NativeHandle) { - PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE); - PI_ASSERT(NativeHandle, PI_ERROR_INVALID_VALUE); - - // For a call from SYCL_EXT_ONEAPI_BACKEND_LEVEL_ZERO V3 or older code if the - // queue is using immediate command lists then we generate an error because we - // cannot return a command queue. - PI_ASSERT(!Queue->UsingImmCmdLists, PI_ERROR_INVALID_QUEUE); - - // Lock automatically releases when this goes out of scope. - std::shared_lock lock(Queue->Mutex); - - auto ZeQueue = ur_cast(NativeHandle); - - // Extract a Level Zero compute queue handle from the given PI queue - auto &QueueGroup = Queue->getQueueGroup(false /*compute*/); - uint32_t QueueGroupOrdinalUnused; - *ZeQueue = QueueGroup.getZeQueue(&QueueGroupOrdinalUnused); - return PI_SUCCESS; -} - -pi_result piextQueueGetNativeHandle2(pi_queue Queue, - pi_native_handle *NativeHandle, - int32_t *NativeHandleDesc) { + pi_native_handle *NativeHandle, + int32_t *NativeHandleDesc) { PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE); PI_ASSERT(NativeHandle, PI_ERROR_INVALID_VALUE); PI_ASSERT(NativeHandleDesc, PI_ERROR_INVALID_VALUE); @@ -3040,28 +3013,6 @@ pi_result piextQueueGetNativeHandle2(pi_queue Queue, return PI_SUCCESS; } -pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, - pi_context Context, pi_device Device, - bool OwnNativeHandle, - pi_queue *Queue) { - PI_ASSERT(Context, PI_ERROR_INVALID_CONTEXT); - PI_ASSERT(NativeHandle, PI_ERROR_INVALID_VALUE); - PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE); - PI_ASSERT(Device, PI_ERROR_INVALID_DEVICE); - - auto ZeQueue = ur_cast(NativeHandle); - // Assume this is the "0" index queue in the compute command-group. - std::vector ZeQueues{ZeQueue}; - - // TODO: see what we can do to correctly initialize PI queue for - // compute vs. copy Level-Zero queue. Currently we will send - // all commands to the "ZeQueue". - std::vector ZeroCopyQueues; - *Queue = - new _pi_queue(ZeQueues, ZeroCopyQueues, Context, Device, OwnNativeHandle); - return PI_SUCCESS; -} - void _pi_queue::pi_queue_group_t::setImmCmdList( ze_command_list_handle_t ZeCommandList) { ImmCmdLists = std::vector( @@ -3072,10 +3023,12 @@ void _pi_queue::pi_queue_group_t::setImmCmdList( .first); } -pi_result piextQueueCreateWithNativeHandle2( - pi_native_handle NativeHandle, int32_t NativeHandleDesc, pi_context Context, - pi_device Device, bool OwnNativeHandle, pi_queue_properties *Properties, - pi_queue *Queue) { +pi_result piextQueueCreateWithNativeHandle(pi_native_handle NativeHandle, + int32_t NativeHandleDesc, + pi_context Context, pi_device Device, + bool OwnNativeHandle, + pi_queue_properties *Properties, + pi_queue *Queue) { PI_ASSERT(Context, PI_ERROR_INVALID_CONTEXT); PI_ASSERT(NativeHandle, PI_ERROR_INVALID_VALUE); PI_ASSERT(Queue, PI_ERROR_INVALID_QUEUE); diff --git a/sycl/plugins/opencl/pi_opencl.cpp b/sycl/plugins/opencl/pi_opencl.cpp index 0b5953eca9a49..e1b2eb4aa4303 100644 --- a/sycl/plugins/opencl/pi_opencl.cpp +++ b/sycl/plugins/opencl/pi_opencl.cpp @@ -962,26 +962,19 @@ pi_result piQueueGetInfo(pi_queue queue, pi_queue_info param_name, } pi_result piextQueueCreateWithNativeHandle(pi_native_handle nativeHandle, - pi_context, pi_device, - bool ownNativeHandle, + int32_t NativeHandleDesc, pi_context, + pi_device, bool ownNativeHandle, + pi_queue_properties *Properties, pi_queue *piQueue) { + (void)NativeHandleDesc; (void)ownNativeHandle; + (void)Properties; assert(piQueue != nullptr); *piQueue = reinterpret_cast(nativeHandle); clRetainCommandQueue(cast(nativeHandle)); return PI_SUCCESS; } -pi_result piextQueueCreateWithNativeHandle2( - pi_native_handle nativeHandle, int32_t NativeHandleDesc, pi_context context, - pi_device device, bool ownNativeHandle, pi_queue_properties *Properties, - pi_queue *piQueue) { - (void)NativeHandleDesc; - (void)Properties; - return piextQueueCreateWithNativeHandle(nativeHandle, context, device, - ownNativeHandle, piQueue); -} - pi_result piProgramCreate(pi_context context, const void *il, size_t length, pi_program *res_program) { cl_uint deviceCount; @@ -2245,14 +2238,9 @@ pi_result piextContextGetNativeHandle(pi_context context, } pi_result piextQueueGetNativeHandle(pi_queue queue, - pi_native_handle *nativeHandle) { - return piextGetNativeHandle(queue, nativeHandle); -} - -pi_result piextQueueGetNativeHandle2(pi_queue queue, - pi_native_handle *nativeHandle, - int32_t *NativeHandleDesc) { - (void)NativeHandleDesc; + pi_native_handle *nativeHandle, + int32_t *nativeHandleDesc) { + *nativeHandleDesc = 0; return piextGetNativeHandle(queue, nativeHandle); } @@ -2365,16 +2353,13 @@ pi_result piPluginInit(pi_plugin *PluginInit) { // Queue _PI_CL(piQueueCreate, piQueueCreate) _PI_CL(piextQueueCreate, piextQueueCreate) - _PI_CL(piextQueueCreate2, piextQueueCreate) _PI_CL(piQueueGetInfo, piQueueGetInfo) _PI_CL(piQueueFinish, clFinish) _PI_CL(piQueueFlush, clFlush) _PI_CL(piQueueRetain, clRetainCommandQueue) _PI_CL(piQueueRelease, clReleaseCommandQueue) _PI_CL(piextQueueGetNativeHandle, piextQueueGetNativeHandle) - _PI_CL(piextQueueGetNativeHandle2, piextQueueGetNativeHandle2) _PI_CL(piextQueueCreateWithNativeHandle, piextQueueCreateWithNativeHandle) - _PI_CL(piextQueueCreateWithNativeHandle2, piextQueueCreateWithNativeHandle2) // Memory _PI_CL(piMemBufferCreate, piMemBufferCreate) _PI_CL(piMemImageCreate, piMemImageCreate) diff --git a/sycl/source/CMakeLists.txt b/sycl/source/CMakeLists.txt index 17c938cce35e2..99112641aeda2 100644 --- a/sycl/source/CMakeLists.txt +++ b/sycl/source/CMakeLists.txt @@ -222,7 +222,6 @@ set(SYCL_SOURCES "kernel_bundle.cpp" "platform.cpp" "queue.cpp" - "queue_v3.cpp" "sampler.cpp" "stream.cpp" "spirv_ops.cpp" diff --git a/sycl/source/backend.cpp b/sycl/source/backend.cpp index 499616fd6dcfa..408384fba72ae 100644 --- a/sycl/source/backend.cpp +++ b/sycl/source/backend.cpp @@ -99,43 +99,13 @@ __SYCL_EXPORT context make_context(pi_native_handle NativeHandle, std::make_shared(PiContext, Handler, Plugin)); } -queue make_queue_impl(pi_native_handle NativeHandle, const context &Context, - RT::PiDevice Device, bool KeepOwnership, - const async_handler &Handler, backend Backend) { - const auto &Plugin = getPlugin(Backend); - const auto &ContextImpl = getSyclObjImpl(Context); - // Create PI queue first. - pi::PiQueue PiQueue = nullptr; - Plugin->call( - NativeHandle, ContextImpl->getHandleRef(), Device, !KeepOwnership, - &PiQueue); - // Construct the SYCL queue from PI queue. - return detail::createSyclObjFromImpl( - std::make_shared(PiQueue, ContextImpl, Handler)); -} - __SYCL_EXPORT queue make_queue(pi_native_handle NativeHandle, - const context &Context, const device *Device, - bool KeepOwnership, const async_handler &Handler, - backend Backend) { - if (Device) { - const auto &DeviceImpl = getSyclObjImpl(*Device); - return make_queue_impl(NativeHandle, Context, DeviceImpl->getHandleRef(), - KeepOwnership, Handler, Backend); - } else { - return make_queue_impl(NativeHandle, Context, nullptr, KeepOwnership, - Handler, Backend); - } -} - -__SYCL_EXPORT queue make_queue2(pi_native_handle NativeHandle, - int32_t NativeHandleDesc, - const context &Context, const device *Device, - bool KeepOwnership, - const property_list &PropList, - const async_handler &Handler, backend Backend) { - const auto &DeviceImpl = getSyclObjImpl(*Device); - RT::PiDevice PiDevice = DeviceImpl->getHandleRef(); + int32_t NativeHandleDesc, const context &Context, + const device *Device, bool KeepOwnership, + const property_list &PropList, + const async_handler &Handler, backend Backend) { + RT::PiDevice PiDevice = + Device ? getSyclObjImpl(*Device)->getHandleRef() : nullptr; const auto &Plugin = getPlugin(Backend); const auto &ContextImpl = getSyclObjImpl(Context); @@ -155,7 +125,7 @@ __SYCL_EXPORT queue make_queue2(pi_native_handle NativeHandle, // Create PI queue first. pi::PiQueue PiQueue = nullptr; - Plugin->call( + Plugin->call( NativeHandle, NativeHandleDesc, ContextImpl->getHandleRef(), PiDevice, !KeepOwnership, Properties, &PiQueue); // Construct the SYCL queue from PI queue. diff --git a/sycl/source/backend/level_zero.cpp b/sycl/source/backend/level_zero.cpp index 3b03e24b4a5c7..a38a8c1674566 100644 --- a/sycl/source/backend/level_zero.cpp +++ b/sycl/source/backend/level_zero.cpp @@ -61,30 +61,12 @@ __SYCL_EXPORT context make_context(const std::vector &DeviceList, //---------------------------------------------------------------------------- // Implementation of level_zero::make -__SYCL_EXPORT queue make_queue(const context &Context, - pi_native_handle NativeHandle, - bool KeepOwnership) { - const auto &ContextImpl = getSyclObjImpl(Context); - return detail::make_queue(NativeHandle, Context, nullptr, KeepOwnership, - ContextImpl->get_async_handler(), - backend::ext_oneapi_level_zero); -} - __SYCL_EXPORT queue make_queue(const context &Context, const device &Device, - pi_native_handle NativeHandle, - bool KeepOwnership) { - const auto &ContextImpl = getSyclObjImpl(Context); - return detail::make_queue(NativeHandle, Context, &Device, KeepOwnership, - ContextImpl->get_async_handler(), - backend::ext_oneapi_level_zero); -} - -__SYCL_EXPORT queue make_queue2(const context &Context, const device &Device, - pi_native_handle NativeHandle, - bool IsImmCmdList, bool KeepOwnership, - const property_list &Properties) { + pi_native_handle NativeHandle, bool IsImmCmdList, + bool KeepOwnership, + const property_list &Properties) { const auto &ContextImpl = getSyclObjImpl(Context); - return detail::make_queue2( + return detail::make_queue( NativeHandle, IsImmCmdList, Context, &Device, KeepOwnership, Properties, ContextImpl->get_async_handler(), backend::ext_oneapi_level_zero); } diff --git a/sycl/source/backend/opencl.cpp b/sycl/source/backend/opencl.cpp index 8b3a9570858e3..b5d0ffd94db3e 100644 --- a/sycl/source/backend/opencl.cpp +++ b/sycl/source/backend/opencl.cpp @@ -45,7 +45,7 @@ __SYCL_EXPORT context make_context(pi_native_handle NativeHandle) { __SYCL_EXPORT queue make_queue(const context &Context, pi_native_handle NativeHandle) { const auto &ContextImpl = getSyclObjImpl(Context); - return detail::make_queue(NativeHandle, Context, nullptr, false, + return detail::make_queue(NativeHandle, 0, Context, nullptr, false, {}, ContextImpl->get_async_handler(), backend::opencl); } diff --git a/sycl/source/detail/queue_impl.cpp b/sycl/source/detail/queue_impl.cpp index 9c6d71bb3314b..e4bf984e25c25 100644 --- a/sycl/source/detail/queue_impl.cpp +++ b/sycl/source/detail/queue_impl.cpp @@ -517,22 +517,13 @@ void queue_impl::wait(const detail::code_location &CodeLoc) { #endif } -pi_native_handle queue_impl::getNative() const { +pi_native_handle queue_impl::getNative(int32_t &NativeHandleDesc) const { const PluginPtr &Plugin = getPlugin(); if (getContextImplPtr()->getBackend() == backend::opencl) Plugin->call(MQueues[0]); pi_native_handle Handle{}; - Plugin->call(MQueues[0], &Handle); - return Handle; -} - -pi_native_handle queue_impl::getNative2(int32_t &NativeHandleDesc) const { - const PluginPtr &Plugin = getPlugin(); - if (getContextImplPtr()->getBackend() == backend::opencl) - Plugin->call(MQueues[0]); - pi_native_handle Handle{}; - Plugin->call(MQueues[0], &Handle, - &NativeHandleDesc); + Plugin->call(MQueues[0], &Handle, + &NativeHandleDesc); return Handle; } diff --git a/sycl/source/detail/queue_impl.hpp b/sycl/source/detail/queue_impl.hpp index f497b3fd84327..42084e78a6b52 100644 --- a/sycl/source/detail/queue_impl.hpp +++ b/sycl/source/detail/queue_impl.hpp @@ -82,9 +82,8 @@ class queue_impl { /// \param AsyncHandler is a SYCL asynchronous exception handler. /// \param PropList is a list of properties to use for queue construction. queue_impl(const DeviceImplPtr &Device, const async_handler &AsyncHandler, - const property_list &PropList, bool Backend_L0_V3 = false) - : queue_impl(Device, getDefaultOrNew(Device), AsyncHandler, PropList, - Backend_L0_V3){}; + const property_list &PropList) + : queue_impl(Device, getDefaultOrNew(Device), AsyncHandler, PropList){}; /// Constructs a SYCL queue with an async_handler and property_list provided /// form a device and a context. @@ -96,11 +95,10 @@ class queue_impl { /// \param AsyncHandler is a SYCL asynchronous exception handler. /// \param PropList is a list of properties to use for queue construction. queue_impl(const DeviceImplPtr &Device, const ContextImplPtr &Context, - const async_handler &AsyncHandler, const property_list &PropList, - bool Backend_L0_V3 = false) - : MBackend_L0_V3(Backend_L0_V3), MDevice(Device), MContext(Context), - MAsyncHandler(AsyncHandler), MPropList(PropList), - MHostQueue(MDevice->is_host()), MAssertHappenedBuffer(range<1>{1}), + const async_handler &AsyncHandler, const property_list &PropList) + : MDevice(Device), MContext(Context), MAsyncHandler(AsyncHandler), + MPropList(PropList), MHostQueue(MDevice->is_host()), + MAssertHappenedBuffer(range<1>{1}), MIsInorder(has_property()), MDiscardEvents( has_property()), @@ -490,11 +488,8 @@ class queue_impl { Properties[2] = PI_QUEUE_COMPUTE_INDEX; Properties[3] = static_cast(Idx); } - RT::PiResult Error = - MBackend_L0_V3 ? Plugin->call_nocheck( - Context, Device, Properties, &Queue) - : Plugin->call_nocheck( - Context, Device, Properties, &Queue); + RT::PiResult Error = Plugin->call_nocheck( + Context, Device, Properties, &Queue); // If creating out-of-order queue failed and this property is not // supported (for example, on FPGA), it will return @@ -615,13 +610,7 @@ class queue_impl { /// Gets the native handle of the SYCL queue. /// /// \return a native handle. - pi_native_handle getNative() const; - - // The getNative2 function is added as a temporary measure so that the - // existing getNative function can co-exist with it. At the next ABI - // redefinition getNative will be removed and getNative2 will be renamed as - // getNative. - pi_native_handle getNative2(int32_t &NativeHandleDesc) const; + pi_native_handle getNative(int32_t &NativeHandleDesc) const; buffer &getAssertHappenedBuffer() { return MAssertHappenedBuffer; @@ -762,12 +751,6 @@ class queue_impl { /// Protects all the fields that can be changed by class' methods. mutable std::mutex MMutex; - // This flag indicates whether we are dealing with queues constructed by code - // that predates this release. This is a temporary fix to be able to - // distinguish between old and new binaries and build queues in different - // ways. - bool MBackend_L0_V3; - DeviceImplPtr MDevice; const ContextImplPtr MContext; diff --git a/sycl/source/interop_handle.cpp b/sycl/source/interop_handle.cpp index 110ae33944d7b..2e0d6a40afa47 100644 --- a/sycl/source/interop_handle.cpp +++ b/sycl/source/interop_handle.cpp @@ -47,8 +47,9 @@ pi_native_handle interop_handle::getNativeContext() const { return MContext->getNative(); } -pi_native_handle interop_handle::getNativeQueue() const { - return MQueue->getNative(); +pi_native_handle +interop_handle::getNativeQueue(int32_t &NativeHandleDesc) const { + return MQueue->getNative(NativeHandleDesc); } } // __SYCL_INLINE_VER_NAMESPACE(_V1) diff --git a/sycl/source/interop_handler.cpp b/sycl/source/interop_handler.cpp index 981266abea9c4..7e586ea06f641 100644 --- a/sycl/source/interop_handler.cpp +++ b/sycl/source/interop_handler.cpp @@ -14,8 +14,9 @@ namespace sycl { __SYCL_INLINE_VER_NAMESPACE(_V1) { -pi_native_handle interop_handler::GetNativeQueue() const { - return MQueue->getNative(); +pi_native_handle +interop_handler::GetNativeQueue(int32_t &NativeHandleDesc) const { + return MQueue->getNative(NativeHandleDesc); } pi_native_handle interop_handler::GetNativeMem(detail::Requirement *Req) const { diff --git a/sycl/source/queue.cpp b/sycl/source/queue.cpp index 24dd991df1619..29978fc76b5a7 100644 --- a/sycl/source/queue.cpp +++ b/sycl/source/queue.cpp @@ -23,9 +23,7 @@ namespace sycl { __SYCL_INLINE_VER_NAMESPACE(_V1) { queue::queue(const context &SyclContext, const device_selector &DeviceSelector, - const async_handler &AsyncHandler, const property_list &PropList, - Discriminator Disc) { - (void)Disc; + const async_handler &AsyncHandler, const property_list &PropList) { const std::vector Devs = SyclContext.get_devices(); auto Comp = [&DeviceSelector](const device &d1, const device &d2) { @@ -36,42 +34,40 @@ queue::queue(const context &SyclContext, const device_selector &DeviceSelector, impl = std::make_shared( detail::getSyclObjImpl(SyclDevice), detail::getSyclObjImpl(SyclContext), - AsyncHandler, PropList, false); + AsyncHandler, PropList); } queue::queue(const context &SyclContext, const device &SyclDevice, - const async_handler &AsyncHandler, const property_list &PropList, - Discriminator Disc) { - (void)Disc; + const async_handler &AsyncHandler, const property_list &PropList) { impl = std::make_shared( detail::getSyclObjImpl(SyclDevice), detail::getSyclObjImpl(SyclContext), - AsyncHandler, PropList, false); + AsyncHandler, PropList); } queue::queue(const device &SyclDevice, const async_handler &AsyncHandler, - const property_list &PropList, Discriminator Disc) { - (void)Disc; + const property_list &PropList) { impl = std::make_shared( - detail::getSyclObjImpl(SyclDevice), AsyncHandler, PropList, false); + detail::getSyclObjImpl(SyclDevice), AsyncHandler, PropList); } queue::queue(const context &SyclContext, const device_selector &deviceSelector, - const property_list &PropList, Discriminator Disc) + const property_list &PropList) : queue(SyclContext, deviceSelector, - detail::getSyclObjImpl(SyclContext)->get_async_handler(), PropList, - Disc) {} + detail::getSyclObjImpl(SyclContext)->get_async_handler(), + PropList) {} queue::queue(const context &SyclContext, const device &SyclDevice, - const property_list &PropList, Discriminator Disc) + const property_list &PropList) : queue(SyclContext, SyclDevice, - detail::getSyclObjImpl(SyclContext)->get_async_handler(), PropList, - Disc) {} + detail::getSyclObjImpl(SyclContext)->get_async_handler(), + PropList) {} queue::queue(cl_command_queue clQueue, const context &SyclContext, const async_handler &AsyncHandler) { + const property_list PropList{}; impl = std::make_shared( reinterpret_cast(clQueue), - detail::getSyclObjImpl(SyclContext), AsyncHandler); + detail::getSyclObjImpl(SyclContext), AsyncHandler, PropList); } cl_command_queue queue::get() const { return impl->get(); } @@ -211,10 +207,8 @@ backend queue::get_backend() const noexcept { return getImplBackend(impl); } bool queue::ext_oneapi_empty() const { return impl->ext_oneapi_empty(); } -pi_native_handle queue::getNative() const { return impl->getNative(); } - -pi_native_handle queue::getNative2(int32_t &NativeHandleDesc) const { - return impl->getNative2(NativeHandleDesc); +pi_native_handle queue::getNative(int32_t &NativeHandleDesc) const { + return impl->getNative(NativeHandleDesc); } buffer &queue::getAssertHappenedBuffer() { diff --git a/sycl/test/abi/pi_level_zero_symbol_check.dump b/sycl/test/abi/pi_level_zero_symbol_check.dump index 82afa38487fe1..5c536543cd057 100644 --- a/sycl/test/abi/pi_level_zero_symbol_check.dump +++ b/sycl/test/abi/pi_level_zero_symbol_check.dump @@ -109,11 +109,8 @@ piextProgramCreateWithNativeHandle piextProgramGetNativeHandle piextProgramSetSpecializationConstant piextQueueCreate -piextQueueCreate2 piextQueueCreateWithNativeHandle -piextQueueCreateWithNativeHandle2 piextQueueGetNativeHandle -piextQueueGetNativeHandle2 piextUSMDeviceAlloc piextUSMEnqueueFill2D piextUSMEnqueueMemAdvise diff --git a/sycl/test/abi/pi_opencl_symbol_check.dump b/sycl/test/abi/pi_opencl_symbol_check.dump index 75ebeeb3519fa..f9b40932b74be 100644 --- a/sycl/test/abi/pi_opencl_symbol_check.dump +++ b/sycl/test/abi/pi_opencl_symbol_check.dump @@ -58,9 +58,7 @@ piextProgramGetNativeHandle piextProgramSetSpecializationConstant piextQueueCreate piextQueueCreateWithNativeHandle -piextQueueCreateWithNativeHandle2 piextQueueGetNativeHandle -piextQueueGetNativeHandle2 piextUSMDeviceAlloc piextUSMEnqueueFill2D piextUSMEnqueueMemAdvise diff --git a/sycl/test/abi/sycl_symbols_linux.dump b/sycl/test/abi/sycl_symbols_linux.dump index 9a870619fb8b6..bf362be8fe262 100644 --- a/sycl/test/abi/sycl_symbols_linux.dump +++ b/sycl/test/abi/sycl_symbols_linux.dump @@ -3657,10 +3657,8 @@ _ZN4sycl3_V13ext5intel12experimental15online_compilerILNS3_15source_languageE0EE _ZN4sycl3_V13ext5intel12experimental15online_compilerILNS3_15source_languageE1EE7compileIJSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EEEEES8_IhSaIhEERKSE_DpRKT_ _ZN4sycl3_V13ext5intel12experimental9pipe_base13get_pipe_nameB5cxx11EPKv _ZN4sycl3_V13ext6oneapi10level_zero10make_eventERKNS0_7contextEmb -_ZN4sycl3_V13ext6oneapi10level_zero10make_queueERKNS0_7contextERKNS0_6deviceEmb -_ZN4sycl3_V13ext6oneapi10level_zero10make_queueERKNS0_7contextEmb +_ZN4sycl3_V13ext6oneapi10level_zero10make_queueERKNS0_7contextERKNS0_6deviceEmbbRKNS0_13property_listE _ZN4sycl3_V13ext6oneapi10level_zero11make_deviceERKNS0_8platformEm -_ZN4sycl3_V13ext6oneapi10level_zero11make_queue2ERKNS0_7contextERKNS0_6deviceEmbbRKNS0_13property_listE _ZN4sycl3_V13ext6oneapi10level_zero12make_contextERKSt6vectorINS0_6deviceESaIS5_EEmb _ZN4sycl3_V13ext6oneapi10level_zero13make_platformEm _ZN4sycl3_V13ext6oneapi15filter_selectorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE @@ -3706,26 +3704,16 @@ _ZN4sycl3_V15queue6memsetEPvimNS0_5eventE _ZN4sycl3_V15queue6memsetEPvimRKSt6vectorINS0_5eventESaIS4_EE _ZN4sycl3_V15queueC1EP17_cl_command_queueRKNS0_7contextERKSt8functionIFvNS0_14exception_listEEE _ZN4sycl3_V15queueC1ERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC1ERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_15device_selectorERKNS0_13property_listE -_ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_15device_selectorERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_15device_selectorERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_15device_selectorERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_6deviceERKNS0_13property_listE -_ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_6deviceERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC1ERKNS0_7contextERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC2EP17_cl_command_queueRKNS0_7contextERKSt8functionIFvNS0_14exception_listEEE _ZN4sycl3_V15queueC2ERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC2ERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_15device_selectorERKNS0_13property_listE -_ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_15device_selectorERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_15device_selectorERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_15device_selectorERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_6deviceERKNS0_13property_listE -_ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_6deviceERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listE -_ZN4sycl3_V15queueC2ERKNS0_7contextERKNS0_6deviceERKSt8functionIFvNS0_14exception_listEEERKNS0_13property_listENS1_13DiscriminatorE _ZN4sycl3_V16ONEAPI15filter_selectorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE _ZN4sycl3_V16ONEAPI15filter_selectorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE _ZN4sycl3_V16detail10build_implERKNS0_13kernel_bundleILNS0_12bundle_stateE0EEERKSt6vectorINS0_6deviceESaIS8_EERKNS0_13property_listE @@ -3739,7 +3727,7 @@ _ZN4sycl3_V16detail10image_implC2EP7_cl_memRKNS0_7contextENS0_5eventESt10unique_ _ZN4sycl3_V16detail10image_implC2EmRKNS0_7contextENS0_5eventESt10unique_ptrINS1_19SYCLMemObjAllocatorESt14default_deleteIS8_EEhNS0_19image_channel_orderENS0_18image_channel_typeEbNS0_5rangeILi3EEE _ZN4sycl3_V16detail10make_eventEmRKNS0_7contextENS0_7backendE _ZN4sycl3_V16detail10make_eventEmRKNS0_7contextEbNS0_7backendE -_ZN4sycl3_V16detail10make_queueEmRKNS0_7contextEPKNS0_6deviceEbRKSt8functionIFvNS0_14exception_listEEENS0_7backendE +_ZN4sycl3_V16detail10make_queueEmiRKNS0_7contextEPKNS0_6deviceEbRKNS0_13property_listERKSt8functionIFvNS0_14exception_listEEENS0_7backendE _ZN4sycl3_V16detail10waitEventsESt6vectorINS0_5eventESaIS3_EE _ZN4sycl3_V16detail11SYCLMemObjT10releaseMemESt10shared_ptrINS1_12context_implEEPv _ZN4sycl3_V16detail11SYCLMemObjT16determineHostPtrERKSt10shared_ptrINS1_12context_implEEbRPvRb @@ -3787,7 +3775,6 @@ _ZN4sycl3_V16detail11image_plainC2EmRKNS0_7contextENS0_5eventESt10unique_ptrINS1 _ZN4sycl3_V16detail11make_deviceEmNS0_7backendE _ZN4sycl3_V16detail11make_kernelERKNS0_7contextERKNS0_13kernel_bundleILNS0_12bundle_stateE2EEEmbNS0_7backendE _ZN4sycl3_V16detail11make_kernelEmRKNS0_7contextENS0_7backendE -_ZN4sycl3_V16detail11make_queue2EmiRKNS0_7contextEPKNS0_6deviceEbRKNS0_13property_listERKSt8functionIFvNS0_14exception_listEEENS0_7backendE _ZN4sycl3_V16detail11stream_impl14initStreamHostESt10shared_ptrINS1_10queue_implEE _ZN4sycl3_V16detail11stream_impl15accessGlobalBufERNS0_7handlerE _ZN4sycl3_V16detail11stream_impl18accessGlobalOffsetERNS0_7handlerE @@ -4071,12 +4058,12 @@ _ZNK4sycl3_V114exception_list4sizeEv _ZNK4sycl3_V114exception_list5beginEv _ZNK4sycl3_V114interop_handle11get_backendEv _ZNK4sycl3_V114interop_handle12getNativeMemEPNS0_6detail16AccessorImplHostE -_ZNK4sycl3_V114interop_handle14getNativeQueueEv +_ZNK4sycl3_V114interop_handle14getNativeQueueERi _ZNK4sycl3_V114interop_handle15getNativeDeviceEv _ZNK4sycl3_V114interop_handle16getNativeContextEv _ZNK4sycl3_V115device_selector13select_deviceEv _ZNK4sycl3_V115interop_handler12GetNativeMemEPNS0_6detail16AccessorImplHostE -_ZNK4sycl3_V115interop_handler14GetNativeQueueEv +_ZNK4sycl3_V115interop_handler14GetNativeQueueERi _ZNK4sycl3_V116default_selectorclERKNS0_6deviceE _ZNK4sycl3_V120accelerator_selectorclERKNS0_6deviceE _ZNK4sycl3_V13ext6oneapi15filter_selector13select_deviceEv @@ -4096,7 +4083,6 @@ _ZNK4sycl3_V15event9getNativeEv _ZNK4sycl3_V15eventeqERKS1_ _ZNK4sycl3_V15eventneERKS1_ _ZNK4sycl3_V15queue10device_hasENS0_6aspectE -_ZNK4sycl3_V15queue10getNative2ERi _ZNK4sycl3_V15queue10get_deviceEv _ZNK4sycl3_V15queue11get_backendEv _ZNK4sycl3_V15queue11get_contextEv @@ -4126,7 +4112,7 @@ _ZNK4sycl3_V15queue7is_hostEv _ZNK4sycl3_V15queue8get_infoINS0_4info5queue15reference_countEEENS0_6detail18is_queue_info_descIT_E11return_typeEv _ZNK4sycl3_V15queue8get_infoINS0_4info5queue6deviceEEENS0_6detail18is_queue_info_descIT_E11return_typeEv _ZNK4sycl3_V15queue8get_infoINS0_4info5queue7contextEEENS0_6detail18is_queue_info_descIT_E11return_typeEv -_ZNK4sycl3_V15queue9getNativeEv +_ZNK4sycl3_V15queue9getNativeERi _ZNK4sycl3_V16ONEAPI15filter_selector13select_deviceEv _ZNK4sycl3_V16ONEAPI15filter_selector5resetEv _ZNK4sycl3_V16ONEAPI15filter_selectorclERKNS0_6deviceE diff --git a/sycl/test/abi/sycl_symbols_windows.dump b/sycl/test/abi/sycl_symbols_windows.dump index 2cb94e1270c38..52f4508e483a0 100644 --- a/sycl/test/abi/sycl_symbols_windows.dump +++ b/sycl/test/abi/sycl_symbols_windows.dump @@ -15,32 +15,15 @@ ??$create_sub_devices@$0BAIJ@@device@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@XZ ??$getPlugin@$00@pi@detail@_V1@sycl@@YAAEBV?$shared_ptr@Vplugin@detail@_V1@sycl@@@std@@XZ ??$getPlugin@$01@pi@detail@_V1@sycl@@YAAEBV?$shared_ptr@Vplugin@detail@_V1@sycl@@@std@@XZ -??$getPlugin@$04@pi@detail@_V1@sycl@@YAAEBV?$shared_ptr@Vplugin@detail@_V1@sycl@@@std@@XZ ??$getPlugin@$02@pi@detail@_V1@sycl@@YAAEBV?$shared_ptr@Vplugin@detail@_V1@sycl@@@std@@XZ +??$getPlugin@$04@pi@detail@_V1@sycl@@YAAEBV?$shared_ptr@Vplugin@detail@_V1@sycl@@@std@@XZ ??$getPluginOpaqueData@$04@detail@_V1@sycl@@YAPEAXPEAX@Z -??$get_info@Umemory_clock_rate@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Umemory_bus_width@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Ufree_memory@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@U?$max_work_groups@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$01@23@XZ -??$get_info@Usupports_fusion@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_NXZ -??$get_info@Umax_registers_per_work_group@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@U?$max_work_groups@$00@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$00@23@XZ -??$get_info@Ugpu_eu_simd_width@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Ugpu_slices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Uuuid@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$array@E$0BA@@std@@XZ -??$get_info@Ugpu_eu_count@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Umax_compute_queue_indices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ -??$get_info@Ugpu_subslices_per_slice@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Upci_address@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ -??$get_info@Ugpu_eu_count_per_subslice@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@U?$max_work_groups@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$02@23@XZ -??$get_info@Umax_mem_bandwidth@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@Umax_global_work_groups@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@Udevice_id@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Ugpu_hw_threads_per_eu@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@U?$max_work_groups@$00@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$00@12@XZ +??$get_info@U?$max_work_groups@$00@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$00@23@XZ ??$get_info@U?$max_work_groups@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$01@12@XZ +??$get_info@U?$max_work_groups@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$01@23@XZ ??$get_info@U?$max_work_groups@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$02@12@XZ +??$get_info@U?$max_work_groups@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$id@$02@23@XZ ??$get_info@U?$max_work_item_sizes@$00@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$00@12@XZ ??$get_info@U?$max_work_item_sizes@$01@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$01@12@XZ ??$get_info@U?$max_work_item_sizes@$02@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$id@$02@12@XZ @@ -67,6 +50,7 @@ ??$get_info@Ucontext@queue@info@_V1@sycl@@@queue@_V1@sycl@@QEBA?AVcontext@12@XZ ??$get_info@Udevice@queue@info@_V1@sycl@@@queue@_V1@sycl@@QEBA?AVdevice@12@XZ ??$get_info@Udevice_id@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Udevice_id@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Udevice_type@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AW4device_type@info@12@XZ ??$get_info@Udevices@context@info@_V1@sycl@@@context@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@XZ ??$get_info@Udouble_fp_config@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$vector@W4fp_config@info@_V1@sycl@@V?$allocator@W4fp_config@info@_V1@sycl@@@std@@@std@@XZ @@ -93,6 +77,7 @@ ??$get_info@Uextensions@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@XZ ??$get_info@Uextensions@platform@info@_V1@sycl@@@platform@_V1@sycl@@QEBA?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@XZ ??$get_info@Ufree_memory@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ +??$get_info@Ufree_memory@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ ??$get_info@Ufunction_name@kernel@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Uglobal_mem_cache_line_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Uglobal_mem_cache_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ @@ -100,11 +85,17 @@ ??$get_info@Uglobal_mem_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ ??$get_info@Uglobal_work_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$range@$02@12@AEBVdevice@12@@Z ??$get_info@Ugpu_eu_count@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_eu_count@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_eu_count_per_subslice@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_eu_count_per_subslice@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_eu_simd_width@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_eu_simd_width@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_hw_threads_per_eu@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_hw_threads_per_eu@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_slices@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_slices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_subslices_per_slice@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Ugpu_subslices_per_slice@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Uhalf_fp_config@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$vector@W4fp_config@info@_V1@sycl@@V?$allocator@W4fp_config@info@_V1@sycl@@@std@@@std@@XZ ??$get_info@Uhost_unified_memory@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uimage2d_max_height@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ @@ -124,16 +115,21 @@ ??$get_info@Ulocal_mem_type@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AW4local_mem_type@info@12@XZ ??$get_info@Umax_clock_frequency@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umax_compute_queue_indices@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAHXZ +??$get_info@Umax_compute_queue_indices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ ??$get_info@Umax_compute_units@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umax_constant_args@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umax_constant_buffer_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ ??$get_info@Umax_global_work_groups@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ +??$get_info@Umax_global_work_groups@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ ??$get_info@Umax_mem_alloc_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ ??$get_info@Umax_mem_bandwidth@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ +??$get_info@Umax_mem_bandwidth@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ ??$get_info@Umax_num_sub_groups@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umax_num_sub_groups@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z ??$get_info@Umax_parameter_size@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ ??$get_info@Umax_read_image_args@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Umax_registers_per_work_group@device@info@experimental@codeplay@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Umax_registers_per_work_group@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Umax_samplers@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umax_sub_group_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z ??$get_info@Umax_sub_group_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@AEBV?$range@$02@12@@Z @@ -142,7 +138,9 @@ ??$get_info@Umax_write_image_args@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umem_base_addr_align@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Umemory_bus_width@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Umemory_bus_width@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Umemory_clock_rate@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Umemory_clock_rate@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Uname@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Uname@platform@info@_V1@sycl@@@platform@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Unative_vector_width_char@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ @@ -161,6 +159,7 @@ ??$get_info@Upartition_type_affinity_domain@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AW4partition_affinity_domain@info@12@XZ ??$get_info@Upartition_type_property@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AW4partition_property@info@12@XZ ??$get_info@Upci_address@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ +??$get_info@Upci_address@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Uplatform@context@info@_V1@sycl@@@context@_V1@sycl@@QEBA?AVplatform@12@XZ ??$get_info@Uplatform@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AVplatform@12@XZ ??$get_info@Upreferred_interop_user_sync@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ @@ -187,13 +186,14 @@ ??$get_info@Usub_group_independent_forward_progress@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Usub_group_sizes@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$vector@_KV?$allocator@_K@std@@@std@@XZ ??$get_info@Usupports_fusion@device@info@experimental@codeplay@ext@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ -??$get_info@Umax_registers_per_work_group@device@info@experimental@codeplay@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ +??$get_info@Usupports_fusion@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_NXZ ??$get_info@Uusm_device_allocations@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uusm_host_allocations@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uusm_restricted_shared_allocations@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uusm_shared_allocations@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uusm_system_allocations@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uuuid@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$array@E$0BA@@std@@XZ +??$get_info@Uuuid@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$array@E$0BA@@std@@XZ ??$get_info@Uvendor@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Uvendor@platform@info@_V1@sycl@@@platform@_V1@sycl@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ ??$get_info@Uvendor_id@device@info@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ @@ -501,21 +501,21 @@ ??0host_selector@_V1@sycl@@QEAA@XZ ??0image_impl@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@_N@Z ??0image_impl@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@_N@Z -??0image_impl@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z +??0image_impl@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@PEAU_cl_mem@@AEBVcontext@23@Vevent@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@E@Z ??0image_impl@detail@_V1@sycl@@QEAA@PEAXW4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@PEAXW4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@PEBXW4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z -??0image_impl@detail@_V1@sycl@@QEAA@PEBXW4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@PEBXW4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z +??0image_impl@detail@_V1@sycl@@QEAA@PEBXW4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z ??0image_impl@detail@_V1@sycl@@QEAA@_KAEBVcontext@23@Vevent@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EW4image_channel_order@23@W4image_channel_type@23@_NV?$range@$02@23@@Z ??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@_N@Z ??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@_N@Z -??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z ??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z +??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@$$CBX@std@@W4image_channel_order@23@W4image_channel_type@23@Uimage_sampler@23@AEBV?$range@$02@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@5@EAEBVproperty_list@23@@Z ??0image_plain@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@Vimage_impl@detail@_V1@sycl@@@std@@@Z ??0image_plain@detail@_V1@sycl@@IEAA@PEAU_cl_mem@@AEBVcontext@23@Vevent@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@E@Z ??0image_plain@detail@_V1@sycl@@IEAA@PEAXW4image_channel_order@23@W4image_channel_type@23@AEBV?$range@$02@23@AEBV?$range@$01@23@V?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@EAEBVproperty_list@23@@Z @@ -550,25 +550,15 @@ ??0queue@_V1@sycl@@QEAA@$$QEAV012@@Z ??0queue@_V1@sycl@@QEAA@AEBV012@@Z ??0queue@_V1@sycl@@QEAA@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice@12@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice@12@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice_selector@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice_selector@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice_selector@12@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVcontext@12@AEBVdevice_selector@12@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVdevice@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVdevice@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVdevice@12@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVdevice@12@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVdevice_selector@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVdevice_selector@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVdevice_selector@12@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVdevice_selector@12@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@AEBVproperty_list@12@@Z -??0queue@_V1@sycl@@QEAA@AEBVproperty_list@12@VDiscriminator@012@@Z ??0queue@_V1@sycl@@QEAA@PEAU_cl_command_queue@@AEBVcontext@12@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@@Z ??0sampler@_V1@sycl@@QEAA@$$QEAV012@@Z ??0sampler@_V1@sycl@@QEAA@AEBV012@@Z @@ -758,13 +748,14 @@ ??_Dexception@_V1@sycl@@QEAAXXZ ??_Fcontext@_V1@sycl@@QEAAXXZ ??_Fqueue@_V1@sycl@@QEAAXXZ +?AccessTargetMask@handler@_V1@sycl@@0HB ?Clear@exception_list@_V1@sycl@@AEAAXXZ ?DirSep@OSUtil@detail@_V1@sycl@@2QEBDEB ?DisableRangeRounding@handler@_V1@sycl@@AEAA_NXZ ?DummyModuleHandle@OSUtil@detail@_V1@sycl@@2_JB ?ExeModuleHandle@OSUtil@detail@_V1@sycl@@2_JB ?GetNativeMem@interop_handler@_V1@sycl@@AEBA_KPEAVAccessorImplHost@detail@23@@Z -?GetNativeQueue@interop_handler@_V1@sycl@@AEBA_KXZ +?GetNativeQueue@interop_handler@_V1@sycl@@AEBA_KAEAH@Z ?GetRangeRoundingSettings@handler@_V1@sycl@@AEAAXAEA_K00@Z ?OffsetSize@stream_impl@detail@_V1@sycl@@0_KB ?PushBack@exception_list@_V1@sycl@@AEAAX$$QEAVexception_ptr@std@@@Z @@ -958,19 +949,18 @@ ?getMemoryObject@AccessorBaseHost@detail@_V1@sycl@@QEBAPEAXXZ ?getMemoryRange@AccessorBaseHost@detail@_V1@sycl@@QEAAAEAV?$range@$02@34@XZ ?getMemoryRange@AccessorBaseHost@detail@_V1@sycl@@QEBAAEBV?$range@$02@34@XZ -?getNative2@queue@_V1@sycl@@AEBA_KAEAH@Z ?getNative@context@_V1@sycl@@AEBA_KXZ ?getNative@device@_V1@sycl@@AEBA_KXZ ?getNative@device_image_plain@detail@_V1@sycl@@QEBA_KXZ ?getNative@event@_V1@sycl@@AEBA_KXZ ?getNative@kernel@_V1@sycl@@AEBA_KXZ ?getNative@platform@_V1@sycl@@AEBA_KXZ -?getNative@queue@_V1@sycl@@AEBA_KXZ +?getNative@queue@_V1@sycl@@QEBA_KAEAH@Z ?getNativeContext@interop_handle@_V1@sycl@@AEBA_KXZ ?getNativeDevice@interop_handle@_V1@sycl@@AEBA_KXZ ?getNativeImpl@kernel@_V1@sycl@@AEBA_KXZ ?getNativeMem@interop_handle@_V1@sycl@@AEBA_KPEAVAccessorImplHost@detail@23@@Z -?getNativeQueue@interop_handle@_V1@sycl@@AEBA_KXZ +?getNativeQueue@interop_handle@_V1@sycl@@AEBA_KAEAH@Z ?getNativeVector@buffer_impl@detail@_V1@sycl@@QEBA?AV?$vector@_KV?$allocator@_K@std@@@std@@W4backend@34@@Z ?getNativeVector@buffer_plain@detail@_V1@sycl@@IEBA?AV?$vector@_KV?$allocator@_K@std@@@std@@W4backend@34@@Z ?getNativeVector@event@_V1@sycl@@AEBA?AV?$vector@_KV?$allocator@_K@std@@@std@@XZ @@ -1140,11 +1130,8 @@ ?make_platform@detail@_V1@sycl@@YA?AVplatform@23@_KW4backend@23@@Z ?make_platform@level_zero@oneapi@ext@_V1@sycl@@YA?AVplatform@45@_K@Z ?make_platform@opencl@_V1@sycl@@YA?AVplatform@23@_K@Z -?make_queue2@detail@_V1@sycl@@YA?AVqueue@23@_KHAEBVcontext@23@PEBVdevice@23@_NAEBVproperty_list@23@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@W4backend@23@@Z -?make_queue2@level_zero@oneapi@ext@_V1@sycl@@YA?AVqueue@45@AEBVcontext@45@AEBVdevice@45@_K_N3AEBVproperty_list@45@@Z -?make_queue@detail@_V1@sycl@@YA?AVqueue@23@_KAEBVcontext@23@PEBVdevice@23@_NAEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@W4backend@23@@Z -?make_queue@level_zero@oneapi@ext@_V1@sycl@@YA?AVqueue@45@AEBVcontext@45@AEBVdevice@45@_K_N@Z -?make_queue@level_zero@oneapi@ext@_V1@sycl@@YA?AVqueue@45@AEBVcontext@45@_K_N@Z +?make_queue@detail@_V1@sycl@@YA?AVqueue@23@_KHAEBVcontext@23@PEBVdevice@23@_NAEBVproperty_list@23@AEBV?$function@$$A6AXVexception_list@_V1@sycl@@@Z@std@@W4backend@23@@Z +?make_queue@level_zero@oneapi@ext@_V1@sycl@@YA?AVqueue@45@AEBVcontext@45@AEBVdevice@45@_K_N3AEBVproperty_list@45@@Z ?make_queue@opencl@_V1@sycl@@YA?AVqueue@23@AEBVcontext@23@_K@Z ?malloc@_V1@sycl@@YAPEAX_KAEBVdevice@12@AEBVcontext@12@W4alloc@usm@12@AEBUcode_location@detail@12@@Z ?malloc@_V1@sycl@@YAPEAX_KAEBVdevice@12@AEBVcontext@12@W4alloc@usm@12@AEBVproperty_list@12@AEBUcode_location@detail@12@@Z @@ -4844,7 +4831,6 @@ ?sycl_host_u_upsample@__host_std@@YAIGG@Z ?sycl_host_u_upsample@__host_std@@YA_KII@Z ?throwIfActionIsCreated@handler@_V1@sycl@@AEAAXXZ -?AccessTargetMask@handler@_V1@sycl@@0HB ?throw_asynchronous@queue@_V1@sycl@@QEAAXXZ ?unmap@MemoryManager@detail@_V1@sycl@@SAXPEAVSYCLMemObjI@234@PEAXV?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@1V?$vector@PEAU_pi_event@@V?$allocator@PEAU_pi_event@@@std@@@7@AEAPEAU_pi_event@@@Z ?unset_flag@stream@_V1@sycl@@AEBAXI@Z diff --git a/sycl/unittests/helpers/PiMockPlugin.hpp b/sycl/unittests/helpers/PiMockPlugin.hpp index e0ec6d831a1d9..b9f5fcc1778dc 100644 --- a/sycl/unittests/helpers/PiMockPlugin.hpp +++ b/sycl/unittests/helpers/PiMockPlugin.hpp @@ -355,12 +355,6 @@ inline pi_result mock_piextQueueCreate(pi_context context, pi_device device, *queue = createDummyHandle(); return PI_SUCCESS; } -inline pi_result mock_piextQueueCreate2(pi_context context, pi_device device, - pi_queue_properties *properties, - pi_queue *queue) { - *queue = createDummyHandle(); - return PI_SUCCESS; -} inline pi_result mock_piQueueGetInfo(pi_queue command_queue, pi_queue_info param_name, @@ -397,28 +391,14 @@ inline pi_result mock_piQueueFlush(pi_queue command_queue) { return PI_SUCCESS; } -inline pi_result -mock_piextQueueGetNativeHandle(pi_queue queue, pi_native_handle *nativeHandle) { - *nativeHandle = reinterpret_cast(queue); - return PI_SUCCESS; -} - -inline pi_result mock_piextQueueGetNativeHandle2(pi_queue queue, - pi_native_handle *nativeHandle, - int32_t *nativeHandleDesc) { +inline pi_result mock_piextQueueGetNativeHandle(pi_queue queue, + pi_native_handle *nativeHandle, + int32_t *nativeHandleDesc) { *nativeHandle = reinterpret_cast(queue); return PI_SUCCESS; } inline pi_result mock_piextQueueCreateWithNativeHandle( - pi_native_handle nativeHandle, pi_context context, pi_device device, - bool pluginOwnsNativeHandle, pi_queue *queue) { - *queue = reinterpret_cast(nativeHandle); - retainDummyHandle(*queue); - return PI_SUCCESS; -} - -inline pi_result mock_piextQueueCreateWithNativeHandle2( pi_native_handle nativeHandle, int32_t nativeHandleDesc, pi_context context, pi_device device, bool pluginOwnsNativeHandle, pi_queue_properties *Properties, pi_queue *queue) { diff --git a/sycl/unittests/queue/EventClear.cpp b/sycl/unittests/queue/EventClear.cpp index 7f22f1ea45db9..9dba15d63be69 100644 --- a/sycl/unittests/queue/EventClear.cpp +++ b/sycl/unittests/queue/EventClear.cpp @@ -72,7 +72,7 @@ pi_result redefinedEventRelease(pi_event event) { } void preparePiMock(unittest::PiMock &Mock) { - Mock.redefineBefore( + Mock.redefineBefore( redefinedQueueCreateEx); Mock.redefineBefore(redefinedEventsWait); Mock.redefineAfter( diff --git a/sycl/unittests/queue/InOrderQueue.cpp b/sycl/unittests/queue/InOrderQueue.cpp index f9313e476ca8d..684eae329d819 100644 --- a/sycl/unittests/queue/InOrderQueue.cpp +++ b/sycl/unittests/queue/InOrderQueue.cpp @@ -20,7 +20,7 @@ TEST(InOrderQueue, CheckFlagIsPassed) { unittest::PiMock Mock; platform Plt = Mock.getPlatform(); - Mock.redefineBefore( + Mock.redefineBefore( piextQueueCreateRedefineBefore); EXPECT_FALSE(InOrderFlagSeen); diff --git a/sycl/unittests/queue/Wait.cpp b/sycl/unittests/queue/Wait.cpp index d73b3c5d54096..8b2d72055d847 100644 --- a/sycl/unittests/queue/Wait.cpp +++ b/sycl/unittests/queue/Wait.cpp @@ -85,7 +85,7 @@ event submitTask(queue &Q, buffer &Buf) { TEST(QueueWait, QueueWaitTest) { sycl::unittest::PiMock Mock; sycl::platform Plt = Mock.getPlatform(); - Mock.redefineBefore( + Mock.redefineBefore( redefinedQueueCreateEx); Mock.redefineBefore(redefinedQueueFinish); Mock.redefineBefore(