From e4a9ccd41c3464242de426012af0fa2dc0c438d2 Mon Sep 17 00:00:00 2001 From: Artur Gainullin Date: Wed, 26 Nov 2025 14:50:48 -0800 Subject: [PATCH 1/2] [SYCL][ABI-break] Cleanup get_info ABI entry points --- sycl/source/detail/device_impl.cpp | 56 ----------- sycl/source/detail/device_impl.hpp | 126 ++++-------------------- sycl/source/device.cpp | 9 +- sycl/test/abi/sycl_symbols_linux.dump | 41 -------- sycl/test/abi/sycl_symbols_windows.dump | 41 -------- 5 files changed, 19 insertions(+), 254 deletions(-) diff --git a/sycl/source/detail/device_impl.cpp b/sycl/source/detail/device_impl.cpp index 6a9736d3af32c..5739b85ba4d91 100644 --- a/sycl/source/detail/device_impl.cpp +++ b/sycl/source/detail/device_impl.cpp @@ -467,62 +467,6 @@ device_impl::getImmediateProgressGuarantee( return forward_progress_guarantee::weakly_parallel; } -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -#define EXPORT_GET_INFO(PARAM) \ - template <> \ - __SYCL_EXPORT PARAM::return_type device_impl::get_info() const { \ - return get_info_abi_workaround(); \ - } - -// clang-format off -EXPORT_GET_INFO(ext::intel::info::device::device_id) -EXPORT_GET_INFO(ext::intel::info::device::pci_address) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_count) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_simd_width) -EXPORT_GET_INFO(ext::intel::info::device::gpu_slices) -EXPORT_GET_INFO(ext::intel::info::device::gpu_subslices_per_slice) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_count_per_subslice) -EXPORT_GET_INFO(ext::intel::info::device::gpu_hw_threads_per_eu) -EXPORT_GET_INFO(ext::intel::info::device::max_mem_bandwidth) -EXPORT_GET_INFO(ext::intel::info::device::uuid) -EXPORT_GET_INFO(ext::intel::info::device::free_memory) -EXPORT_GET_INFO(ext::intel::info::device::memory_clock_rate) -EXPORT_GET_INFO(ext::intel::info::device::memory_bus_width) -EXPORT_GET_INFO(ext::intel::info::device::max_compute_queue_indices) -EXPORT_GET_INFO(ext::intel::esimd::info::device::has_2d_block_io_support) -EXPORT_GET_INFO(ext::intel::info::device::current_clock_throttle_reasons) -EXPORT_GET_INFO(ext::intel::info::device::fan_speed) -EXPORT_GET_INFO(ext::intel::info::device::min_power_limit) -EXPORT_GET_INFO(ext::intel::info::device::max_power_limit) - -EXPORT_GET_INFO(ext::codeplay::experimental::info::device::supports_fusion) -EXPORT_GET_INFO(ext::codeplay::experimental::info::device::max_registers_per_work_group) - -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_global_work_groups) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<1>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<2>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<3>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::sub_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::sub_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::architecture) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::matrix_combinations) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::image_row_pitch_align) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_row_pitch) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_width) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_height) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::mipmap_max_anisotropy) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::component_devices) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::composite_device) -EXPORT_GET_INFO(ext::oneapi::info::device::num_compute_units) -// clang-format on - -#undef EXPORT_GET_INFO -#endif - } // namespace detail } // namespace _V1 } // namespace sycl diff --git a/sycl/source/detail/device_impl.hpp b/sycl/source/detail/device_impl.hpp index a52fd65353a10..94f3e5b0a0d3e 100644 --- a/sycl/source/detail/device_impl.hpp +++ b/sycl/source/detail/device_impl.hpp @@ -379,13 +379,7 @@ class device_impl : public std::enable_shared_from_this { struct InfoInitializer { template static void init(device_impl &device, typename Desc::return_type &value) { - value = device. -#ifdef __INTEL_PREVIEW_BREAKING_CHANGES - get_info -#else - get_info_abi_workaround -#endif - (); + value = device.get_info(); } }; @@ -562,23 +556,8 @@ class device_impl : public std::enable_shared_from_this { /// /// \return device info of type described in Table 4.20. -#ifdef __INTEL_PREVIEW_BREAKING_CHANGES template decltype(auto) get_info() const { -#define CALL_GET_INFO get_info -#else - // We've been exporting - // `device_impl::get_info::info::device::` for no - // reason. Have to keep doing that until next ABI breaking window. Also, old - // gcc doesn't allow in-class specializations, so they have to go out-of-class - // which happens later then implicit instantiatons of delegating to - // `get_info`. As such, all such calls have to go through - // `get_info_abi_workaround` for which we need this ugly macro: -#define CALL_GET_INFO get_info_abi_workaround - template typename Param::return_type get_info() const; - template - decltype(auto) get_info_abi_workaround() const { -#endif using execution_scope = ext::oneapi::experimental::execution_scope; // With the return type of this function being automatically @@ -614,12 +593,12 @@ class device_impl : public std::enable_shared_from_this { } CASE(info::device::max_work_item_sizes<2>) { range<3> r3 = - CALL_GET_INFO, DependentFalse>(); + get_info, DependentFalse>(); return range<2>{r3[1], r3[2]}; } CASE(info::device::max_work_item_sizes<1>) { range<3> r3 = - CALL_GET_INFO, DependentFalse>(); + get_info, DependentFalse>(); return range<1>{r3[2]}; } @@ -710,8 +689,7 @@ class device_impl : public std::enable_shared_from_this { ';'); } CASE(info::device::built_in_kernel_ids) { - auto names = - CALL_GET_INFO(); + auto names = get_info(); std::vector ids; ids.reserve(names.size()); @@ -893,25 +871,25 @@ class device_impl : public std::enable_shared_from_this { CASE(info::device::ext_oneapi_max_global_work_groups) { // Deprecated alias. - return CALL_GET_INFO< + return get_info< ext::oneapi::experimental::info::device::max_global_work_groups, DependentFalse>(); } CASE(info::device::ext_oneapi_max_work_groups_1d) { // Deprecated alias. - return CALL_GET_INFO< + return get_info< ext::oneapi::experimental::info::device::max_work_groups<1>, DependentFalse>(); } CASE(info::device::ext_oneapi_max_work_groups_2d) { // Deprecated alias. - return CALL_GET_INFO< + return get_info< ext::oneapi::experimental::info::device::max_work_groups<2>, DependentFalse>(); } CASE(info::device::ext_oneapi_max_work_groups_3d) { // Deprecated alias. - return CALL_GET_INFO< + return get_info< ext::oneapi::experimental::info::device::max_work_groups<3>, DependentFalse>(); } @@ -936,7 +914,7 @@ class device_impl : public std::enable_shared_from_this { return static_cast((std::numeric_limits::max)()); } CASE(ext::oneapi::experimental::info::device::max_work_groups<3>) { - size_t Limit = CALL_GET_INFO< + size_t Limit = get_info< ext::oneapi::experimental::info::device::max_global_work_groups, DependentFalse>(); @@ -949,14 +927,14 @@ class device_impl : public std::enable_shared_from_this { std::min(Limit, result[0])); } CASE(ext::oneapi::experimental::info::device::max_work_groups<2>) { - id<3> max_3d = CALL_GET_INFO< - ext::oneapi::experimental::info::device::max_work_groups<3>, + id<3> max_3d = + get_info, DependentFalse>(); return id<2>{max_3d[1], max_3d[2]}; } CASE(ext::oneapi::experimental::info::device::max_work_groups<1>) { - id<3> max_3d = CALL_GET_INFO< - ext::oneapi::experimental::info::device::max_work_groups<3>, + id<3> max_3d = + get_info, DependentFalse>(); return id<1>{max_3d[2]}; } @@ -1493,7 +1471,7 @@ class device_impl : public std::enable_shared_from_this { } } CASE(ext_oneapi_is_composite) { - auto components = CALL_GET_INFO< + auto components = get_info< sycl::ext::oneapi::experimental::info::device::component_devices>(); // Any device with ext_oneapi_is_composite aspect will have at least two // constituent component devices. @@ -1650,12 +1628,7 @@ class device_impl : public std::enable_shared_from_this { extOneapiArchitectureIs(ext::oneapi::experimental::architecture Arch) const { return Arch == -#ifdef __INTEL_PREVIEW_BREAKING_CHANGES - get_info -#else - get_info_abi_workaround -#endif - (); + get_info(); } bool extOneapiArchitectureIs( @@ -1666,12 +1639,7 @@ class device_impl : public std::enable_shared_from_this { get_category_max_architecture(Category); if (CategoryMinArch.has_value() && CategoryMaxArch.has_value()) { auto Arch = -#ifdef __INTEL_PREVIEW_BREAKING_CHANGES - get_info -#else - get_info_abi_workaround -#endif - (); + get_info(); return CategoryMinArch <= Arch && Arch <= CategoryMaxArch; } return false; @@ -1969,7 +1937,7 @@ class device_impl : public std::enable_shared_from_this { // sycl_ext_oneapi_device_architecture, the runtime exception is // omitted, and std::nullopt is returned. try { - return CALL_GET_INFO< + return get_info< ext::oneapi::experimental::info::device::architecture>(); } catch (sycl::exception &e) { if (e.code() != errc::runtime) @@ -2357,66 +2325,6 @@ class devices_range : public iterator_range { } }; -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES -template -typename Param::return_type device_impl::get_info() const { - return get_info_abi_workaround(); -} - -#define EXPORT_GET_INFO(PARAM) \ - template <> \ - __SYCL_EXPORT PARAM::return_type device_impl::get_info() const; - -// clang-format off -EXPORT_GET_INFO(ext::intel::info::device::device_id) -EXPORT_GET_INFO(ext::intel::info::device::pci_address) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_count) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_simd_width) -EXPORT_GET_INFO(ext::intel::info::device::gpu_slices) -EXPORT_GET_INFO(ext::intel::info::device::gpu_subslices_per_slice) -EXPORT_GET_INFO(ext::intel::info::device::gpu_eu_count_per_subslice) -EXPORT_GET_INFO(ext::intel::info::device::gpu_hw_threads_per_eu) -EXPORT_GET_INFO(ext::intel::info::device::max_mem_bandwidth) -EXPORT_GET_INFO(ext::intel::info::device::uuid) -EXPORT_GET_INFO(ext::intel::info::device::free_memory) -EXPORT_GET_INFO(ext::intel::info::device::memory_clock_rate) -EXPORT_GET_INFO(ext::intel::info::device::memory_bus_width) -EXPORT_GET_INFO(ext::intel::info::device::max_compute_queue_indices) -EXPORT_GET_INFO(ext::intel::esimd::info::device::has_2d_block_io_support) -EXPORT_GET_INFO(ext::intel::info::device::current_clock_throttle_reasons) -EXPORT_GET_INFO(ext::intel::info::device::fan_speed) -EXPORT_GET_INFO(ext::intel::info::device::min_power_limit) -EXPORT_GET_INFO(ext::intel::info::device::max_power_limit) - -EXPORT_GET_INFO(ext::codeplay::experimental::info::device::supports_fusion) -EXPORT_GET_INFO(ext::codeplay::experimental::info::device::max_registers_per_work_group) - -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_global_work_groups) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<1>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<2>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_work_groups<3>) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::sub_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::sub_group_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::work_item_progress_capabilities) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::architecture) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::matrix_combinations) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::image_row_pitch_align) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_row_pitch) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_width) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::max_image_linear_height) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::mipmap_max_anisotropy) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::component_devices) -EXPORT_GET_INFO(ext::oneapi::experimental::info::device::composite_device) -EXPORT_GET_INFO(ext::oneapi::info::device::num_compute_units) -// clang-format on - -#undef EXPORT_GET_INFO -#endif - -#undef CALL_GET_INFO } // namespace detail } // namespace _V1 } // namespace sycl diff --git a/sycl/source/device.cpp b/sycl/source/device.cpp index 3b8caf79ff72e..c4e29f53d99aa 100644 --- a/sycl/source/device.cpp +++ b/sycl/source/device.cpp @@ -127,13 +127,8 @@ detail::ABINeutralT_t::return_type> device::get_info_impl() const { static_assert( std::is_same_v::return_type, - decltype(impl->template -#ifdef __INTEL_PREVIEW_BREAKING_CHANGES - get_info -#else - get_info_abi_workaround -#endif - ())>); + decltype(impl->template get_info< + Param, true /* InitializingCache */>())>); return detail::convert_to_abi_neutral(impl->template get_info()); } diff --git a/sycl/test/abi/sycl_symbols_linux.dump b/sycl/test/abi/sycl_symbols_linux.dump index 4df0e60740a48..0fac5916d2b6f 100644 --- a/sycl/test/abi/sycl_symbols_linux.dump +++ b/sycl/test/abi/sycl_symbols_linux.dump @@ -3707,47 +3707,6 @@ _ZNK4sycl3_V15queue9khr_emptyEv _ZNK4sycl3_V16ONEAPI15filter_selector13select_deviceEv _ZNK4sycl3_V16ONEAPI15filter_selector5resetEv _ZNK4sycl3_V16ONEAPI15filter_selectorclERKNS0_6deviceE -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device10gpu_slicesEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device11free_memoryEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device11pci_addressEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device12gpu_eu_countEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device15max_power_limitEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device15min_power_limitEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device16memory_bus_widthEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device17gpu_eu_simd_widthEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device17max_mem_bandwidthEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device17memory_clock_rateEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device21gpu_hw_threads_per_euEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device23gpu_subslices_per_sliceEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device25gpu_eu_count_per_subsliceEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device25max_compute_queue_indicesEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device30current_clock_throttle_reasonsEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device4uuidEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device9device_idEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device9fan_speedEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel5esimd4info6device23has_2d_block_io_supportEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device12architectureEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi1EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi2EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi3EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device16composite_deviceEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device17component_devicesEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device19matrix_combinationsEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device21image_row_pitch_alignEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device21mipmap_max_anisotropyEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device22max_global_work_groupsEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device22max_image_linear_widthEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device23max_image_linear_heightEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device26max_image_linear_row_pitchEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device31sub_group_progress_capabilitiesILNS6_15execution_scopeE2EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device31sub_group_progress_capabilitiesILNS6_15execution_scopeE3EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device31work_item_progress_capabilitiesILNS6_15execution_scopeE1EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device31work_item_progress_capabilitiesILNS6_15execution_scopeE2EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device31work_item_progress_capabilitiesILNS6_15execution_scopeE3EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device32work_group_progress_capabilitiesILNS6_15execution_scopeE3EEEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi4info6device17num_compute_unitsEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext8codeplay12experimental4info6device15supports_fusionEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext8codeplay12experimental4info6device28max_registers_per_work_groupEEENT_11return_typeEv _ZNK4sycl3_V16detail11image_plain10getSamplerEv _ZNK4sycl3_V16detail11image_plain11getPropListEv _ZNK4sycl3_V16detail11image_plain11getRowPitchEv diff --git a/sycl/test/abi/sycl_symbols_windows.dump b/sycl/test/abi/sycl_symbols_windows.dump index f921ed7a1dddd..4380b3889e2c2 100644 --- a/sycl/test/abi/sycl_symbols_windows.dump +++ b/sycl/test/abi/sycl_symbols_windows.dump @@ -26,16 +26,6 @@ ??$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 -??$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_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_impl@detail@_V1@sycl@@QEBA?AV?$id@$02@23@XZ -??$get_info@U?$sub_group_progress_capabilities@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@U?$sub_group_progress_capabilities@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@U?$work_group_progress_capabilities@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@U?$work_item_progress_capabilities@$00@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@U?$work_item_progress_capabilities@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@U?$work_item_progress_capabilities@$02@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@V?$allocator@W4forward_progress_guarantee@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@Uarchitecture@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AW4architecture@experimental@oneapi@ext@23@XZ ??$get_info@Uatomic_fence_order_capabilities@context@info@_V1@sycl@@@context@_V1@sycl@@QEBA?AV?$vector@W4memory_order@_V1@sycl@@V?$allocator@W4memory_order@_V1@sycl@@@std@@@std@@XZ ??$get_info@Uatomic_fence_scope_capabilities@context@info@_V1@sycl@@@context@_V1@sycl@@QEBA?AV?$vector@W4memory_scope@_V1@sycl@@V?$allocator@W4memory_scope@_V1@sycl@@@std@@@std@@XZ ??$get_info@Uatomic_memory_order_capabilities@context@info@_V1@sycl@@@context@_V1@sycl@@QEBA?AV?$vector@W4memory_order@_V1@sycl@@V?$allocator@W4memory_order@_V1@sycl@@@std@@@std@@XZ @@ -44,43 +34,14 @@ ??$get_info@Ucompile_num_sub_groups@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z ??$get_info@Ucompile_sub_group_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z ??$get_info@Ucompile_work_group_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA?AV?$range@$02@12@AEBVdevice@12@@Z -??$get_info@Ucomponent_devices@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@XZ -??$get_info@Ucomposite_device@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AVdevice@23@XZ ??$get_info@Ucontext@queue@info@_V1@sycl@@@queue@_V1@sycl@@QEBA?AVcontext@12@XZ -??$get_info@Ucurrent_clock_throttle_reasons@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@W4throttle_reason@intel@ext@_V1@sycl@@V?$allocator@W4throttle_reason@intel@ext@_V1@sycl@@@std@@@std@@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_impl@detail@_V1@sycl@@QEBAIXZ ??$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@Uext_codeplay_num_regs@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z -??$get_info@Ufan_speed@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ -??$get_info@Ufree_memory@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_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_impl@detail@_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_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@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_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Uhas_2d_block_io_support@device@info@esimd@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_NXZ -??$get_info@Uimage_row_pitch_align@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Umatrix_combinations@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$vector@Ucombination@matrix@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Ucombination@matrix@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ -??$get_info@Umax_compute_queue_indices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ -??$get_info@Umax_global_work_groups@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@Umax_image_linear_height@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@Umax_image_linear_row_pitch@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$get_info@Umax_image_linear_width@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_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@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBAIAEBVdevice@12@@Z -??$get_info@Umax_power_limit@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ -??$get_info@Umax_registers_per_work_group@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_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 -??$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_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Umin_power_limit@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAHXZ -??$get_info@Umipmap_max_anisotropy@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAMXZ -??$get_info@Unum_compute_units@device@info@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_KXZ -??$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@Upreferred_work_group_size_multiple@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KAEBVdevice@12@@Z ??$get_info@Uprivate_mem_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KAEBVdevice@12@@Z @@ -88,8 +49,6 @@ ??$get_info@Ureference_count@event@info@_V1@sycl@@@event@_V1@sycl@@QEBAIXZ ??$get_info@Ureference_count@queue@info@_V1@sycl@@@queue@_V1@sycl@@QEBAIXZ ??$get_info@Uspill_memory_size@kernel_device_specific@info@intel@ext@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KAEBVdevice@12@@Z -??$get_info@Usupports_fusion@device@info@experimental@codeplay@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA_NXZ -??$get_info@Uuuid@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AV?$array@E$0BA@@std@@XZ ??$get_info@Uwork_group_size@kernel_device_specific@info@_V1@sycl@@@kernel@_V1@sycl@@QEBA_KAEBVdevice@12@@Z ??$get_info_impl@U?$max_work_groups@$00@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@AEBA?AV?$id@$00@12@XZ ??$get_info_impl@U?$max_work_groups@$01@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@AEBA?AV?$id@$01@12@XZ From 871d929e9cb8e9862707fd75a8ab07cb0b005ae4 Mon Sep 17 00:00:00 2001 From: "Gainullin, Artur" Date: Wed, 26 Nov 2025 15:42:23 -0800 Subject: [PATCH 2/2] Format --- sycl/source/detail/device_impl.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/source/detail/device_impl.hpp b/sycl/source/detail/device_impl.hpp index 94f3e5b0a0d3e..05cd5411e0b67 100644 --- a/sycl/source/detail/device_impl.hpp +++ b/sycl/source/detail/device_impl.hpp @@ -929,13 +929,13 @@ class device_impl : public std::enable_shared_from_this { CASE(ext::oneapi::experimental::info::device::max_work_groups<2>) { id<3> max_3d = get_info, - DependentFalse>(); + DependentFalse>(); return id<2>{max_3d[1], max_3d[2]}; } CASE(ext::oneapi::experimental::info::device::max_work_groups<1>) { id<3> max_3d = get_info, - DependentFalse>(); + DependentFalse>(); return id<1>{max_3d[2]}; }