From 536f6411b8d505b9048031473ea57e899e8f857e Mon Sep 17 00:00:00 2001 From: Artur Gainullin Date: Tue, 2 Dec 2025 11:00:59 -0800 Subject: [PATCH 1/2] [SYCL][ABI-break] Remove unused `sycl::kernel` methods --- .../sycl_ext_oneapi_launch_queries.asciidoc | 60 ------------- ...xt_oneapi_kernel_queue_specific_traits.def | 2 - sycl/include/sycl/kernel.hpp | 5 -- sycl/source/detail/kernel_impl.hpp | 68 -------------- sycl/source/kernel.cpp | 90 ------------------- .../launch_queries/max_work_group_size.cpp | 63 ------------- .../launch_queries/max_work_item_sizes.cpp | 83 ----------------- .../Experimental/launch_queries/test_plan.md | 7 -- sycl/test/abi/sycl_symbols_linux.dump | 7 -- sycl/unittests/Extensions/LaunchQueries.cpp | 90 ------------------- 10 files changed, 475 deletions(-) delete mode 100644 sycl/test-e2e/Experimental/launch_queries/max_work_group_size.cpp delete mode 100644 sycl/test-e2e/Experimental/launch_queries/max_work_item_sizes.cpp diff --git a/sycl/doc/extensions/proposed/sycl_ext_oneapi_launch_queries.asciidoc b/sycl/doc/extensions/proposed/sycl_ext_oneapi_launch_queries.asciidoc index 16f5a27357d6d..6dbb295ac45e1 100644 --- a/sycl/doc/extensions/proposed/sycl_ext_oneapi_launch_queries.asciidoc +++ b/sycl/doc/extensions/proposed/sycl_ext_oneapi_launch_queries.asciidoc @@ -121,22 +121,6 @@ namespace sycl { class kernel { public: - // Only available if Param is max_work_item_sizes<1> - template - id<1> ext_oneapi_get_info(sycl::queue q) const; - - // Only available if Param is max_work_item_sizes<2> - template - id<2> ext_oneapi_get_info(sycl::queue q) const; - - // Only available if Param is max_work_item_sizes<3> - template - id<3> ext_oneapi_get_info(sycl::queue q) const; - - // Only available if Param is max_work_group_size - template - size_t ext_oneapi_get_info(sycl::queue q) const; - // Only available if Param is max_num_work_groups template uint32_t ext_oneapi_get_info(sycl::queue q, sycl::range<1> r, size_t bytes = 0) const; @@ -177,10 +161,6 @@ class kernel { namespace ext::oneapi::experimental::info::kernel { -template -struct max_work_item_sizes; - -struct max_work_group_size; struct max_num_work_groups; struct max_sub_group_size; @@ -212,46 +192,6 @@ developers should check that the values returned by these queries is not ''' -[source,c++] ----- -template -id<1> ext_oneapi_get_info(sycl::queue q) const; // (1) - -template -id<2> ext_oneapi_get_info(sycl::queue q) const; // (2) - -template -id<3> ext_oneapi_get_info(sycl::queue q) const; // (3) ----- -_Constraints (1)_: `Param` is `max_work_item_sizes<1>`. - -_Constraints (2)_: `Param` is `max_work_item_sizes<2>`. - -_Constraints (3)_: `Param` is `max_work_item_sizes<3>`. - -_Returns_: The maximum number of work-items that are permitted in each -dimension of a work-group, when the kernel is submitted to the specified queue, -accounting for any kernel properties or features. -If the kernel can be submitted to the specified queue without an error, the -minimum value returned by this query is 1, otherwise it is 0. - -''' - -[source,c++] ----- -template -size_t ext_oneapi_get_info(sycl::queue q) const; ----- -_Constraints_: `Param` is `max_work_group_size`. - -_Returns_: The maximum number of work-items that are permitted in a work-group, -when the kernel is submitted to the specified queue, accounting for any -kernel properties or features. -If the kernel can be submitted to the specified queue without an error, the -minimum value returned by this query is 1, otherwise it is 0. - -''' - [source,c++] ---- template diff --git a/sycl/include/sycl/info/ext_oneapi_kernel_queue_specific_traits.def b/sycl/include/sycl/info/ext_oneapi_kernel_queue_specific_traits.def index 50e6c1baf7360..9c03973a1f65a 100644 --- a/sycl/include/sycl/info/ext_oneapi_kernel_queue_specific_traits.def +++ b/sycl/include/sycl/info/ext_oneapi_kernel_queue_specific_traits.def @@ -1,5 +1,3 @@ __SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, kernel_queue_specific, max_num_work_groups, size_t,) -__SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, kernel_queue_specific, max_work_group_size, size_t,) __SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, kernel_queue_specific, max_sub_group_size, uint32_t,) __SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, kernel_queue_specific, num_sub_groups, uint32_t,) -__SYCL_PARAM_TRAITS_TEMPLATE_PARTIAL_SPEC(ext::oneapi::experimental, kernel_queue_specific, max_work_item_sizes, sycl::id,) diff --git a/sycl/include/sycl/kernel.hpp b/sycl/include/sycl/kernel.hpp index bb44daf12b9c3..4ec640e66fc82 100644 --- a/sycl/include/sycl/kernel.hpp +++ b/sycl/include/sycl/kernel.hpp @@ -243,11 +243,6 @@ class __SYCL_EXPORT kernel : public detail::OwnerLessBase { ur_native_handle_t getNative() const; -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES - __SYCL_DEPRECATED("Use getNative() member function") - ur_native_handle_t getNativeImpl() const; -#endif - std::shared_ptr impl; template diff --git a/sycl/source/detail/kernel_impl.hpp b/sycl/source/detail/kernel_impl.hpp index 1fda7c147cdf5..5c1fb14c8d3b9 100644 --- a/sycl/source/detail/kernel_impl.hpp +++ b/sycl/source/detail/kernel_impl.hpp @@ -115,18 +115,6 @@ class kernel_impl { typename Param::return_type get_info(const device &Device, const range<3> &WGSize) const; -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES - // This function is unused and should be removed in the next ABI breaking. - - /// Query queue/launch-specific information from a kernel using the - /// info::kernel_queue_specific descriptor for a specific Queue. - /// - /// \param Queue is a valid SYCL queue. - /// \return depends on information being queried. - template - typename Param::return_type ext_oneapi_get_info(queue Queue) const; -#endif // __INTEL_PREVIEW_BREAKING_CHANGES - /// Query queue/launch-specific information from a kernel using the /// info::kernel_queue_specific descriptor for a specific Queue and values. /// max_num_work_groups is the only valid descriptor for this function. @@ -457,62 +445,6 @@ inline typename ext::intel::info::kernel_device_specific::spill_memory_size:: getAdapter()); } -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -// These functions are unused and should be removed in the next ABI breaking. - -template <> -inline typename syclex::info::kernel_queue_specific::max_work_group_size:: - return_type - kernel_impl::ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_group_size>( - queue Queue) const { - adapter_impl &Adapter = getAdapter(); - const auto DeviceNativeHandle = - getSyclObjImpl(Queue.get_device())->getHandleRef(); - - size_t KernelWGSize = 0; - Adapter.call( - MKernel, DeviceNativeHandle, UR_KERNEL_GROUP_INFO_WORK_GROUP_SIZE, - sizeof(size_t), &KernelWGSize, nullptr); - return KernelWGSize; -} - -template -inline sycl::id -generate_id(const sycl::range &DevMaxWorkItemSizes, - const size_t DevWgSize) { - sycl::id Ret; - for (int i = 0; i < Dimensions; i++) { - // DevMaxWorkItemSizes values are inverted, see - // sycl/source/detail/device_info.hpp:582 - Ret[i] = std::min(DevMaxWorkItemSizes[i], DevWgSize); - } - return Ret; -} - -#define ADD_TEMPLATE_METHOD_SPEC(Num) \ - template <> \ - inline typename syclex::info::kernel_queue_specific::max_work_item_sizes< \ - Num>::return_type \ - kernel_impl::ext_oneapi_get_info< \ - syclex::info::kernel_queue_specific::max_work_item_sizes>( \ - queue Queue) const { \ - const auto Dev = Queue.get_device(); \ - const auto DeviceWgSize = \ - get_info(Dev); \ - const auto DeviceMaxWorkItemSizes = \ - Dev.get_info>(); \ - return generate_id(DeviceMaxWorkItemSizes, DeviceWgSize); \ - } // namespace detail - -ADD_TEMPLATE_METHOD_SPEC(1) -ADD_TEMPLATE_METHOD_SPEC(2) -ADD_TEMPLATE_METHOD_SPEC(3) - -#undef ADD_TEMPLATE_METHOD_SPEC - -#endif // __INTEL_PREVIEW_BREAKING_CHANGES - #define ADD_TEMPLATE_METHOD_SPEC(QueueSpec, Num, Kind, Reg) \ template <> \ inline typename syclex::info::kernel_queue_specific::QueueSpec::return_type \ diff --git a/sycl/source/kernel.cpp b/sycl/source/kernel.cpp index a091204972230..baafab587b9f8 100644 --- a/sycl/source/kernel.cpp +++ b/sycl/source/kernel.cpp @@ -106,16 +106,6 @@ template __SYCL_EXPORT uint32_t kernel::get_info( const device &, const sycl::range<3> &) const; -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -// This function is unused and should be removed in the next ABI-breaking -// window. -template -typename detail::is_kernel_queue_specific_info_desc::return_type -kernel::ext_oneapi_get_info(queue Queue) const { - return impl->ext_oneapi_get_info(std::move(Queue)); -} -#endif // __INTEL_PREVIEW_BREAKING_CHANGES - template typename detail::is_kernel_queue_specific_info_desc::return_type kernel::ext_oneapi_get_info(queue Queue, const range<1> &WorkGroupSize, @@ -158,36 +148,6 @@ kernel::ext_oneapi_get_info(queue Queue, const range<3> &WorkGroupSize, DynamicLocalMemorySize); } -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -// These functions are unused and should be removed in the next ABI-breaking -// window. - -template __SYCL_EXPORT typename ext::oneapi::experimental::info:: - kernel_queue_specific::max_work_group_size::return_type - kernel::ext_oneapi_get_info( - queue Queue) const; - -template __SYCL_EXPORT typename ext::oneapi::experimental::info:: - kernel_queue_specific::max_work_item_sizes<1>::return_type - kernel::ext_oneapi_get_info< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_work_item_sizes<1>>(queue Queue) const; - -template __SYCL_EXPORT typename ext::oneapi::experimental::info:: - kernel_queue_specific::max_work_item_sizes<2>::return_type - kernel::ext_oneapi_get_info< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_work_item_sizes<2>>(queue Queue) const; - -template __SYCL_EXPORT typename ext::oneapi::experimental::info:: - kernel_queue_specific::max_work_item_sizes<3>::return_type - kernel::ext_oneapi_get_info< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_work_item_sizes<3>>(queue Queue) const; - -#endif // __INTEL_PREVIEW_BREAKING_CHANGES - template __SYCL_EXPORT typename ext::oneapi::experimental::info:: kernel_queue_specific::max_sub_group_size::return_type kernel::ext_oneapi_get_info Impl) : impl(Impl) {} ur_native_handle_t kernel::getNative() const { return impl->getNative(); } -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -ur_native_handle_t kernel::getNativeImpl() const { return impl->getNative(); } - -// The following query was deprecated since it doesn't include a way to specify -// the invdividual dimensions of the work group. All of the contents of this -// #ifndef block should be removed during the next ABI breaking window. -namespace ext::oneapi::experimental::info::kernel_queue_specific { -struct max_num_work_group_sync { - using return_type = size_t; -}; -} // namespace ext::oneapi::experimental::info::kernel_queue_specific -template <> -struct detail::is_kernel_queue_specific_info_desc< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync> : std::true_type { - using return_type = ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync::return_type; -}; -template <> -__SYCL2020_DEPRECATED( - "The 'max_num_work_group_sync' query is deprecated. See " - "'sycl_ext_oneapi_launch_queries' for the new 'max_num_work_groups' query.") -__SYCL_EXPORT typename ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync::return_type kernel::ext_oneapi_get_info< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync>(queue Queue, const range<3> &WorkGroupSize, - size_t DynamicLocalMemorySize) const { - return ext_oneapi_get_info( - std::move(Queue), WorkGroupSize, DynamicLocalMemorySize); -} -template <> -__SYCL2020_DEPRECATED( - "The 'max_num_work_group_sync' query is deprecated. See " - "'sycl_ext_oneapi_launch_queries' for the new 'max_num_work_groups' query.") -__SYCL_EXPORT typename ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync::return_type kernel::ext_oneapi_get_info< - ext::oneapi::experimental::info::kernel_queue_specific:: - max_num_work_group_sync>(queue Queue) const { - auto Device = Queue.get_device(); - const auto MaxWorkGroupSize = - get_info(Device); - const sycl::range<3> WorkGroupSize{MaxWorkGroupSize, 1, 1}; - return ext_oneapi_get_info( - std::move(Queue), WorkGroupSize, - /* DynamicLocalMemorySize */ 0); -} -#endif - } // namespace _V1 } // namespace sycl diff --git a/sycl/test-e2e/Experimental/launch_queries/max_work_group_size.cpp b/sycl/test-e2e/Experimental/launch_queries/max_work_group_size.cpp deleted file mode 100644 index 87feeccc44734..0000000000000 --- a/sycl/test-e2e/Experimental/launch_queries/max_work_group_size.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// RUN: %{build} -o %t.out -// RUN: %{run} %t.out - -// XFAIL: preview-mode -// XFAIL-TRACKER: https://github.com/intel/llvm/issues/18910 - -#include -#include - -#include -#include - -namespace syclex = sycl::ext::oneapi::experimental; -using value_type = int64_t; - -namespace kernels { - -template -using sycl_global_accessor = - sycl::accessor; -class TestKernel { -public: - static constexpr bool HasLocalMemory{false}; - - TestKernel(sycl_global_accessor acc) : acc_{acc} {} - - void operator()(sycl::nd_item<1> item) const { - const auto gtid = item.get_global_linear_id(); - acc_[gtid] = gtid + 42; - } - -private: - sycl_global_accessor acc_; -}; -} // namespace kernels - -int main() { - sycl::queue q{}; - const auto ctx = q.get_context(); - auto bundle = sycl::get_kernel_bundle(ctx); - auto kernel = bundle.template get_kernel(); - - const size_t maxWorkGroupSizeActual = kernel.template get_info< - sycl::info::kernel_device_specific::work_group_size>(q.get_device()); - const auto maxWorkGroupSize = kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_group_size>(q); - static_assert( - std::is_same_v, size_t>, - "max_work_group_size query must return size_t"); - assert(maxWorkGroupSizeActual == maxWorkGroupSize); - - // this size is for test purpose due to issue - to check - sycl::buffer buf{sycl::range<1>{2}}; - const size_t numWorkItems = 2; - auto launch_range = - sycl::nd_range<1>{sycl::range<1>{numWorkItems}, sycl::range<1>{1}}; - q.submit([&](sycl::handler &cgh) { - auto acc = buf.get_access(cgh); - cgh.parallel_for(launch_range, - kernels::TestKernel{acc}); - }).wait(); -} diff --git a/sycl/test-e2e/Experimental/launch_queries/max_work_item_sizes.cpp b/sycl/test-e2e/Experimental/launch_queries/max_work_item_sizes.cpp deleted file mode 100644 index dbafb9ce7cfbc..0000000000000 --- a/sycl/test-e2e/Experimental/launch_queries/max_work_item_sizes.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// RUN: %{build} -o %t.out -// RUN: %{run} %t.out - -// XFAIL: preview-mode -// XFAIL-TRACKER: https://github.com/intel/llvm/issues/18910 - -#include -#include -#include -#include - -#include -#include - -namespace syclex = sycl::ext::oneapi::experimental; -using value_type = int64_t; - -namespace kernels { - -template -using sycl_global_accessor = - sycl::accessor; - -class TestKernel { -public: - static constexpr bool HasLocalMemory{false}; - - TestKernel(sycl_global_accessor acc) : acc_{acc} {} - - void operator()(sycl::nd_item<1> item) const { - const auto gtid = item.get_global_linear_id(); - acc_[gtid] = gtid + 42; - } - -private: - sycl_global_accessor acc_; -}; -} // namespace kernels - -template void check_max_work_item_sizes(const sycl::queue &Q) { - const auto Dev = Q.get_device(); - const auto Ctx = Q.get_context(); - const auto Bundle = - sycl::get_kernel_bundle(Ctx); - const auto Kernel = Bundle.template get_kernel(); - // get value to test - const auto DevValues = - Dev.get_info>(); - const auto KernelValues = Kernel.ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_item_sizes>(Q); - static_assert(std::is_same_v, - sycl::id>, - "max_work_item_sizes query must return sycl::id, " - "Dimensions in range[1,3]"); - for (int i = 0; i < Dimensions; i++) { - assert(KernelValues[i] <= DevValues[i]); - } -} - -int main() { - sycl::queue Q{}; - - check_max_work_item_sizes<1>(Q); - check_max_work_item_sizes<2>(Q); - check_max_work_item_sizes<3>(Q); - - const auto Dev = Q.get_device(); - const auto Ctx = Q.get_context(); - const auto Bundle = - sycl::get_kernel_bundle(Ctx); - const auto Kernel = Bundle.template get_kernel(); - const size_t MaxWorkGroupSizeActual = Kernel.template get_info< - sycl::info::kernel_device_specific::work_group_size>(Dev); - sycl::buffer Buf{sycl::range<1>{MaxWorkGroupSizeActual}}; - auto LaunchRange = sycl::nd_range<1>{sycl::range<1>{MaxWorkGroupSizeActual}, - sycl::range<1>{MaxWorkGroupSizeActual}}; - Q.submit([&](sycl::handler &cgh) { - auto Acc = Buf.get_access(cgh); - cgh.parallel_for(LaunchRange, - kernels::TestKernel{Acc}); - }).wait(); -} diff --git a/sycl/test-e2e/Experimental/launch_queries/test_plan.md b/sycl/test-e2e/Experimental/launch_queries/test_plan.md index bb665103e820d..8af8e4724f1fd 100644 --- a/sycl/test-e2e/Experimental/launch_queries/test_plan.md +++ b/sycl/test-e2e/Experimental/launch_queries/test_plan.md @@ -16,10 +16,6 @@ in the relevant section of the spec. Param must be one of the following types defined in `sycl::ext::oneapi::experiemntal::info::kernel` namespace: -- `max_work_item_sizes<1>` -- `max_work_item_sizes<2>` -- `max_work_item_sizes<3>` -- `max_work_group_size` - `max_num_work_groups` - `max_sub_group_size` - `num_sub_groups` @@ -56,9 +52,6 @@ device-specific queries. For example, -- `max_work_item_sizes` can be compared with -`sycl::info::device::max_work_item_sizes` -- `max_work_group_size` can be compared with `sycl::info::device::max_work_group_size` - `max_num_work_groups` can be compared with `sycl::ext::oneapi::experimental::info::device::max_work_groups` - `max_sub_group_size` can be compared with `sycl::info::kernel_device_specific::max_sub_group_size` - `num_sub_groups` can be compared with `sycl::info::device::max_num_sub_groups` diff --git a/sycl/test/abi/sycl_symbols_linux.dump b/sycl/test/abi/sycl_symbols_linux.dump index b953f825d5952..3c7465cc06b07 100644 --- a/sycl/test/abi/sycl_symbols_linux.dump +++ b/sycl/test/abi/sycl_symbols_linux.dump @@ -3987,7 +3987,6 @@ _ZNK4sycl3_V16device6is_gpuEv _ZNK4sycl3_V16device9getNativeEv _ZNK4sycl3_V16kernel11get_backendEv _ZNK4sycl3_V16kernel11get_contextEv -_ZNK4sycl3_V16kernel13getNativeImplEv _ZNK4sycl3_V16kernel13get_info_implINS0_4info6kernel10attributesEEENS0_6detail11ABINeutralTINS6_19is_kernel_info_descIT_E11return_typeEE4typeEv _ZNK4sycl3_V16kernel13get_info_implINS0_4info6kernel13function_nameEEENS0_6detail11ABINeutralTINS6_19is_kernel_info_descIT_E11return_typeEE4typeEv _ZNK4sycl3_V16kernel13get_info_implINS0_4info6kernel15reference_countEEENS0_6detail11ABINeutralTINS6_19is_kernel_info_descIT_E11return_typeEE4typeEv @@ -4003,12 +4002,6 @@ _ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21ke _ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_num_work_groupsEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueERKNS0_5rangeILi1EEEm _ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_num_work_groupsEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueERKNS0_5rangeILi2EEEm _ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_num_work_groupsEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueERKNS0_5rangeILi3EEEm -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_work_group_sizeEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueE -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_work_item_sizesILi1EEEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueE -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_work_item_sizesILi2EEEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueE -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific19max_work_item_sizesILi3EEEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueE -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific23max_num_work_group_syncEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueE -_ZNK4sycl3_V16kernel19ext_oneapi_get_infoINS0_3ext6oneapi12experimental4info21kernel_queue_specific23max_num_work_group_syncEEENS0_6detail34is_kernel_queue_specific_info_descIT_E11return_typeENS0_5queueERKNS0_5rangeILi3EEEm _ZNK4sycl3_V16kernel3getEv _ZNK4sycl3_V16kernel8get_infoINS0_3ext5intel4info22kernel_device_specific17spill_memory_sizeEEENS0_6detail35is_kernel_device_specific_info_descIT_E11return_typeERKNS0_6deviceE _ZNK4sycl3_V16kernel8get_infoINS0_4info22kernel_device_specific15work_group_sizeEEENS0_6detail35is_kernel_device_specific_info_descIT_E11return_typeERKNS0_6deviceE diff --git a/sycl/unittests/Extensions/LaunchQueries.cpp b/sycl/unittests/Extensions/LaunchQueries.cpp index 09f935e96cede..927595de4ff26 100644 --- a/sycl/unittests/Extensions/LaunchQueries.cpp +++ b/sycl/unittests/Extensions/LaunchQueries.cpp @@ -61,96 +61,6 @@ auto getKernel(const sycl::queue &Q) { return KernelBundle.get_kernel(KernelID); } -// These tests fail in preview breaking mode. -// Failure Tracker: https://github.com/intel/llvm/issues/18910 -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -TEST(LaunchQueries, GetWorkGroupSizeSuccess) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Success); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - const auto maxWorkGroupSize = Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_group_size>(Queue); - const auto result = - std::is_same_v, size_t>; - ASSERT_TRUE(result); - ASSERT_EQ(maxWorkGroupSize, static_cast(123)); -} - -TEST(LaunchQueries, GetWorkGroupSizeExceptionCode) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Exception); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - EXPECT_THROW( - Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_group_size>(Queue), - sycl::exception); -} - -TEST(LaunchQueries, GetMaxWorkGroupItemSizes3DSuccess) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Success); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - const auto maxWorkGroupItemSizes = Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_item_sizes<3>>(Queue); - using ret_type = decltype(maxWorkGroupItemSizes); - const auto result = std::is_same_v, sycl::id<3>>; - ASSERT_TRUE(result); - ASSERT_EQ(ret_type::dimensions, 3); - ASSERT_EQ(maxWorkGroupItemSizes[0], static_cast(123)); - ASSERT_EQ(maxWorkGroupItemSizes[1], static_cast(101)); - ASSERT_EQ(maxWorkGroupItemSizes[2], static_cast(123)); -} - -TEST(LaunchQueries, GetMaxWorkGroupItemSizes2DSuccess) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Success); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - const auto maxWorkGroupItemSizes = Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_item_sizes<2>>(Queue); - using ret_type = decltype(maxWorkGroupItemSizes); - const auto result = std::is_same_v, sycl::id<2>>; - ASSERT_TRUE(result); - ASSERT_EQ(ret_type::dimensions, 2); - ASSERT_EQ(maxWorkGroupItemSizes[0], static_cast(101)); - ASSERT_EQ(maxWorkGroupItemSizes[1], static_cast(123)); -} - -TEST(LaunchQueries, GetMaxWorkGroupItemSizes1DSuccess) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Success); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - const auto maxWorkGroupItemSizes = Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_item_sizes<1>>(Queue); - using ret_type = decltype(maxWorkGroupItemSizes); - const auto result = std::is_same_v, sycl::id<1>>; - ASSERT_TRUE(result); - ASSERT_EQ(decltype(maxWorkGroupItemSizes)::dimensions, 1); - ASSERT_EQ(maxWorkGroupItemSizes[0], static_cast(123)); -} - -TEST(LaunchQueries, GetMaxWorkGroupItemSizesExceptionCode) { - sycl::unittest::UrMock<> Mock; - mock::getCallbacks().set_replace_callback( - "urKernelGetGroupInfo", &redefine_urKernelGetGroupInfo_Exception); - const auto Queue = getQueue(); - const auto Kernel = getKernel(Queue); - EXPECT_THROW( - Kernel.template ext_oneapi_get_info< - syclex::info::kernel_queue_specific::max_work_item_sizes<3>>(Queue), - sycl::exception); -} -#endif // __INTEL_PREVIEW_BREAKING_CHANGES - TEST(LaunchQueries, GetMaxSubGroupSize3DSuccess) { sycl::unittest::UrMock<> Mock; const auto Queue = getQueue(); From 982f11b0b41e11ae3385f50a4e341d257e333a2d Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Tue, 2 Dec 2025 17:32:11 -0800 Subject: [PATCH 2/2] Update windows symbols --- sycl/test/abi/sycl_symbols_windows.dump | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sycl/test/abi/sycl_symbols_windows.dump b/sycl/test/abi/sycl_symbols_windows.dump index cac88ba890cfd..4d2d6d5765e0c 100644 --- a/sycl/test/abi/sycl_symbols_windows.dump +++ b/sycl/test/abi/sycl_symbols_windows.dump @@ -11,18 +11,12 @@ ??$create_sub_devices@$0BAIH@@device@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@AEBV?$vector@_KV?$allocator@_K@std@@@4@@Z ??$create_sub_devices@$0BAII@@device@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@W4partition_affinity_domain@info@12@@Z ??$create_sub_devices@$0BAIJ@@device@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@XZ -??$ext_oneapi_get_info@U?$max_work_item_sizes@$00@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$id@$00@12@Vqueue@12@@Z -??$ext_oneapi_get_info@U?$max_work_item_sizes@$01@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$id@$01@12@Vqueue@12@@Z -??$ext_oneapi_get_info@U?$max_work_item_sizes@$02@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$id@$02@12@Vqueue@12@@Z -??$ext_oneapi_get_info@Umax_num_work_group_sync@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@@Z -??$ext_oneapi_get_info@Umax_num_work_group_sync@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@AEBV?$range@$02@12@_K@Z ??$ext_oneapi_get_info@Umax_num_work_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@AEBV?$range@$00@12@_K@Z ??$ext_oneapi_get_info@Umax_num_work_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@AEBV?$range@$01@12@_K@Z ??$ext_oneapi_get_info@Umax_num_work_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@AEBV?$range@$02@12@_K@Z ??$ext_oneapi_get_info@Umax_sub_group_size@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$00@12@@Z ??$ext_oneapi_get_info@Umax_sub_group_size@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$01@12@@Z ??$ext_oneapi_get_info@Umax_sub_group_size@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$02@12@@Z -??$ext_oneapi_get_info@Umax_work_group_size@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KVqueue@12@@Z ??$ext_oneapi_get_info@Unum_sub_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$00@12@@Z ??$ext_oneapi_get_info@Unum_sub_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$01@12@@Z ??$ext_oneapi_get_info@Unum_sub_groups@kernel_queue_specific@info@experimental@oneapi@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBAIVqueue@12@AEBV?$range@$02@12@@Z @@ -4046,7 +4040,6 @@ ?getNativeContext@interop_handle@_V1@sycl@@AEBA_KXZ ?getNativeDevice@interop_handle@_V1@sycl@@AEBA_KXZ ?getNativeGraph@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_KAEAH@Z ?getNativeVector@buffer_plain@detail@_V1@sycl@@IEBA?AV?$vector@_KV?$allocator@_K@std@@@std@@W4backend@34@@Z