Skip to content

Commit 41d4f25

Browse files
authored
[SYCL] Deprecate single_task() and parallel_for() overloads with properties (#16728)
As the title says, added deprecation messages for such overloads in the `sycl_ext_oneapi_kernel_properties extension`, suggesting users to use `single_task/parallel_for` overloads provided in the `sycl_ext_oneapi_enqueue_functions` extension instead. (As these overloads are to be removed later as mentioned in #14785) Also fixed an affected test case. --------- Signed-off-by: Hu, Peisen <[email protected]>
1 parent 15111b4 commit 41d4f25

File tree

8 files changed

+482
-73
lines changed

8 files changed

+482
-73
lines changed

sycl/include/sycl/handler.hpp

+87-39
Original file line numberDiff line numberDiff line change
@@ -2324,61 +2324,86 @@ class __SYCL_EXPORT handler {
23242324

23252325
template <typename KernelName = detail::auto_name, typename KernelType,
23262326
typename PropertiesT>
2327-
std::enable_if_t<
2328-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2329-
single_task(PropertiesT Props, _KERNELFUNCPARAM(KernelFunc)) {
2327+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2328+
"of type launch_config or a kernel functor with a "
2329+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2330+
"member function instead.")
2331+
std::enable_if_t<ext::oneapi::experimental::is_property_list<
2332+
PropertiesT>::value> single_task(PropertiesT Props,
2333+
_KERNELFUNCPARAM(KernelFunc)) {
23302334
single_task_lambda_impl<KernelName, KernelType, PropertiesT>(Props,
23312335
KernelFunc);
23322336
}
23332337

23342338
template <typename KernelName = detail::auto_name, typename KernelType,
23352339
typename PropertiesT>
2336-
std::enable_if_t<
2337-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2338-
parallel_for(range<1> NumWorkItems, PropertiesT Props,
2339-
_KERNELFUNCPARAM(KernelFunc)) {
2340+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2341+
"of type launch_config or a kernel functor with a "
2342+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2343+
"member function instead.")
2344+
std::enable_if_t<ext::oneapi::experimental::is_property_list<
2345+
PropertiesT>::value> parallel_for(range<1> NumWorkItems,
2346+
PropertiesT Props,
2347+
_KERNELFUNCPARAM(KernelFunc)) {
23402348
parallel_for_lambda_impl<KernelName, KernelType, 1, PropertiesT>(
23412349
NumWorkItems, Props, std::move(KernelFunc));
23422350
}
23432351

23442352
template <typename KernelName = detail::auto_name, typename KernelType,
23452353
typename PropertiesT>
2346-
std::enable_if_t<
2347-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2348-
parallel_for(range<2> NumWorkItems, PropertiesT Props,
2349-
_KERNELFUNCPARAM(KernelFunc)) {
2354+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2355+
"of type launch_config or a kernel functor with a "
2356+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2357+
"member function instead.")
2358+
std::enable_if_t<ext::oneapi::experimental::is_property_list<
2359+
PropertiesT>::value> parallel_for(range<2> NumWorkItems,
2360+
PropertiesT Props,
2361+
_KERNELFUNCPARAM(KernelFunc)) {
23502362
parallel_for_lambda_impl<KernelName, KernelType, 2, PropertiesT>(
23512363
NumWorkItems, Props, std::move(KernelFunc));
23522364
}
23532365

23542366
template <typename KernelName = detail::auto_name, typename KernelType,
23552367
typename PropertiesT>
2356-
std::enable_if_t<
2357-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2358-
parallel_for(range<3> NumWorkItems, PropertiesT Props,
2359-
_KERNELFUNCPARAM(KernelFunc)) {
2368+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2369+
"of type launch_config or a kernel functor with a "
2370+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2371+
"member function instead.")
2372+
std::enable_if_t<ext::oneapi::experimental::is_property_list<
2373+
PropertiesT>::value> parallel_for(range<3> NumWorkItems,
2374+
PropertiesT Props,
2375+
_KERNELFUNCPARAM(KernelFunc)) {
23602376
parallel_for_lambda_impl<KernelName, KernelType, 3, PropertiesT>(
23612377
NumWorkItems, Props, std::move(KernelFunc));
23622378
}
23632379

23642380
template <typename KernelName = detail::auto_name, typename KernelType,
23652381
typename PropertiesT, int Dims>
2366-
std::enable_if_t<
2367-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2368-
parallel_for(nd_range<Dims> Range, PropertiesT Properties,
2369-
_KERNELFUNCPARAM(KernelFunc)) {
2382+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2383+
"of type launch_config or a kernel functor with a "
2384+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2385+
"member function instead.")
2386+
std::enable_if_t<ext::oneapi::experimental::is_property_list<
2387+
PropertiesT>::value> parallel_for(nd_range<Dims> Range,
2388+
PropertiesT Properties,
2389+
_KERNELFUNCPARAM(KernelFunc)) {
23702390
parallel_for_impl<KernelName>(Range, Properties, std::move(KernelFunc));
23712391
}
23722392

23732393
/// Reductions @{
23742394

23752395
template <typename KernelName = detail::auto_name, typename PropertiesT,
23762396
typename... RestT>
2377-
std::enable_if_t<
2378-
(sizeof...(RestT) > 1) &&
2379-
detail::AreAllButLastReductions<RestT...>::value &&
2380-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2381-
parallel_for(range<1> Range, PropertiesT Properties, RestT &&...Rest) {
2397+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2398+
"of type launch_config or a kernel functor with a "
2399+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2400+
"member function instead.")
2401+
std::enable_if_t<(sizeof...(RestT) > 1) &&
2402+
detail::AreAllButLastReductions<RestT...>::value &&
2403+
ext::oneapi::experimental::is_property_list<
2404+
PropertiesT>::value> parallel_for(range<1> Range,
2405+
PropertiesT Properties,
2406+
RestT &&...Rest) {
23822407
#ifndef __SYCL_DEVICE_ONLY__
23832408
throwIfGraphAssociated<ext::oneapi::experimental::detail::
23842409
UnsupportedGraphFeatures::sycl_reductions>();
@@ -2389,11 +2414,16 @@ class __SYCL_EXPORT handler {
23892414

23902415
template <typename KernelName = detail::auto_name, typename PropertiesT,
23912416
typename... RestT>
2392-
std::enable_if_t<
2393-
(sizeof...(RestT) > 1) &&
2394-
detail::AreAllButLastReductions<RestT...>::value &&
2395-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2396-
parallel_for(range<2> Range, PropertiesT Properties, RestT &&...Rest) {
2417+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2418+
"of type launch_config or a kernel functor with a "
2419+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2420+
"member function instead.")
2421+
std::enable_if_t<(sizeof...(RestT) > 1) &&
2422+
detail::AreAllButLastReductions<RestT...>::value &&
2423+
ext::oneapi::experimental::is_property_list<
2424+
PropertiesT>::value> parallel_for(range<2> Range,
2425+
PropertiesT Properties,
2426+
RestT &&...Rest) {
23972427
#ifndef __SYCL_DEVICE_ONLY__
23982428
throwIfGraphAssociated<ext::oneapi::experimental::detail::
23992429
UnsupportedGraphFeatures::sycl_reductions>();
@@ -2404,11 +2434,16 @@ class __SYCL_EXPORT handler {
24042434

24052435
template <typename KernelName = detail::auto_name, typename PropertiesT,
24062436
typename... RestT>
2407-
std::enable_if_t<
2408-
(sizeof...(RestT) > 1) &&
2409-
detail::AreAllButLastReductions<RestT...>::value &&
2410-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2411-
parallel_for(range<3> Range, PropertiesT Properties, RestT &&...Rest) {
2437+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2438+
"of type launch_config or a kernel functor with a "
2439+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2440+
"member function instead.")
2441+
std::enable_if_t<(sizeof...(RestT) > 1) &&
2442+
detail::AreAllButLastReductions<RestT...>::value &&
2443+
ext::oneapi::experimental::is_property_list<
2444+
PropertiesT>::value> parallel_for(range<3> Range,
2445+
PropertiesT Properties,
2446+
RestT &&...Rest) {
24122447
#ifndef __SYCL_DEVICE_ONLY__
24132448
throwIfGraphAssociated<ext::oneapi::experimental::detail::
24142449
UnsupportedGraphFeatures::sycl_reductions>();
@@ -2443,11 +2478,16 @@ class __SYCL_EXPORT handler {
24432478

24442479
template <typename KernelName = detail::auto_name, int Dims,
24452480
typename PropertiesT, typename... RestT>
2446-
std::enable_if_t<
2447-
(sizeof...(RestT) > 1) &&
2448-
detail::AreAllButLastReductions<RestT...>::value &&
2449-
ext::oneapi::experimental::is_property_list<PropertiesT>::value>
2450-
parallel_for(nd_range<Dims> Range, PropertiesT Properties, RestT &&...Rest) {
2481+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2482+
"of type launch_config or a kernel functor with a "
2483+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2484+
"member function instead.")
2485+
std::enable_if_t<(sizeof...(RestT) > 1) &&
2486+
detail::AreAllButLastReductions<RestT...>::value &&
2487+
ext::oneapi::experimental::is_property_list<
2488+
PropertiesT>::value> parallel_for(nd_range<Dims> Range,
2489+
PropertiesT Properties,
2490+
RestT &&...Rest) {
24512491
#ifndef __SYCL_DEVICE_ONLY__
24522492
throwIfGraphAssociated<ext::oneapi::experimental::detail::
24532493
UnsupportedGraphFeatures::sycl_reductions>();
@@ -2469,6 +2509,10 @@ class __SYCL_EXPORT handler {
24692509

24702510
template <typename KernelName = detail::auto_name, typename KernelType,
24712511
int Dims, typename PropertiesT>
2512+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2513+
"of type launch_config or a kernel functor with a "
2514+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2515+
"member function instead.")
24722516
void parallel_for_work_group(range<Dims> NumWorkGroups, PropertiesT Props,
24732517
_KERNELFUNCPARAM(KernelFunc)) {
24742518
parallel_for_work_group_lambda_impl<KernelName, KernelType, Dims,
@@ -2478,6 +2522,10 @@ class __SYCL_EXPORT handler {
24782522

24792523
template <typename KernelName = detail::auto_name, typename KernelType,
24802524
int Dims, typename PropertiesT>
2525+
__SYCL_DEPRECATED("To specify properties, use a launch configuration object "
2526+
"of type launch_config or a kernel functor with a "
2527+
"get(sycl::ext::oneapi::experimental::properties_tag) "
2528+
"member function instead.")
24812529
void parallel_for_work_group(range<Dims> NumWorkGroups,
24822530
range<Dims> WorkGroupSize, PropertiesT Props,
24832531
_KERNELFUNCPARAM(KernelFunc)) {

0 commit comments

Comments
 (0)