-
Notifications
You must be signed in to change notification settings - Fork 741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SYCL] Deprecate parallel_for and single_task overloads #16145
base: sycl
Are you sure you want to change the base?
Conversation
…xt_oneapi_kernel_properties extension Signed-off-by: Hu, Peisen <[email protected]>
…ings Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
Signed-off-by: Hu, Peisen <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graph tests LGTM
sycl/include/sycl/handler.hpp
Outdated
std::enable_if_t< | ||
ext::oneapi::experimental::is_property_list<PropertiesT>::value> | ||
single_task(PropertiesT Props, _KERNELFUNCPARAM(KernelFunc)) { | ||
__SYCL2020_DEPRECATED( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SYCL2020
deprecated means that this feature is marked as deprecated in the core SYCL 2020 specification and it will be removed in whatever next version of the core SYCL specification there will be.
However, in this case we are deprecating an overload documented by an extension - it is not related to the SYCL language version and I assume that we want it to be removed way earlier than we drop SYCL 2020 support. Therefore, regular SYCL_DEPRECATED
macro should be used
@@ -1,4 +1,4 @@ | |||
// RUN: %{build} -o %t.out | |||
// RUN: %{build} -o %t.out -Wno-deprecated-declarations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unless we specifically want to test the old API, we shouldn't add this flag but rewrite the test instead. The reason is fear that we can accidentally use even more deprecated APIs in a test, thus making even more work for ourselves in the future PR which removes deprecated overloads.
sycl/include/sycl/handler.hpp
Outdated
detail::AreAllButLastReductions<RestT...>::value && | ||
ext::oneapi::experimental::is_property_list<PropertiesT>::value> | ||
parallel_for(range<1> Range, PropertiesT Properties, RestT &&...Rest) { | ||
__SYCL2020_DEPRECATED( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A new test should be added into sycl/test/warnings/
to check that deprecated message is correct and emitted for all overloads
Signed-off-by: Hu, Peisen <[email protected]>
As the title says, added deprecation messages for such overloads in the
sycl_ext_oneapi_kernel_properties extension
, suggesting users to usesingle_task/parallel_for
overloads provided in thesycl_ext_oneapi_enqueue_functions
extension instead. (As these overloads are to be removed later as mentioned in #14785) Also fixed affected test cases by adding theWno-deprecated-declarations
build flag to let them ignore the deprecation warnings.Also two points to notice:
handler
class is actually implemented as three function overloads withrange<dimensions>...
implemented asrange<1>..., range<2>...
andrange<3>...
respectively.queue
class appear to have not been implemented so deprecation warnings are not needed here: