Skip to content

Commit 3ea29b2

Browse files
[SYCL] Update root_group extension to use this_work_item namespace (#13304)
That aligns it with the free_function_queries extension.
1 parent 6a05e7a commit 3ea29b2

File tree

4 files changed

+46
-11
lines changed

4 files changed

+46
-11
lines changed

sycl/doc/extensions/experimental/sycl_ext_oneapi_root_group.asciidoc

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -471,18 +471,15 @@ class nd_item {
471471
sycl::ext::oneapi::experimental::root_group<Dimensions> ext_oneapi_get_root_group() const;
472472
};
473473
474-
namespace ext {
475-
namespace oneapi {
476-
namespace experimental {
477-
namespace this_kernel {
474+
namespace ext::oneapi::experimental {
475+
namespace this_work_item {
478476
479477
template <int Dimensions>
480478
root_group<Dimensions> get_root_group();
481479
482-
} // namespace this_kernel
483-
} // namespace experimental
484-
} // namespace oneapi
485-
} // namespace ext
480+
}
481+
482+
} // namespace ext::oneapi::experimental
486483
} // namespace sycl
487484
----
488485

@@ -505,6 +502,31 @@ a `sycl::nd_range` argument.
505502
_Returns_: A `root_group` instance representing the root-group to which the
506503
calling work-item belongs.
507504

505+
=== Deprecated functionality
506+
507+
The functionality in this section was previously part of this extension, but is
508+
now deprecated.
509+
510+
[source,c++]
511+
----
512+
namespace sycl::ext::oneapi::experimental {
513+
514+
namespace this_kernel {
515+
516+
template <int Dimensions>
517+
root_group<Dimensions> get_root_group();
518+
519+
} // namespace this_kernel
520+
521+
}
522+
----
523+
524+
[source,c++]
525+
----
526+
template <int Dimensions>
527+
root_group<Dimensions> get_root_group();
528+
----
529+
_Effects_: Equivalent to `return this_work_item::get_root_group()`.
508530

509531
== Implementation notes
510532

sycl/include/sycl/ext/oneapi/experimental/root_group.hpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,21 @@ template <int Dimensions> sycl::sub_group get_child_group(group<Dimensions> g) {
8989
(void)g;
9090
return this_sub_group();
9191
}
92-
93-
namespace this_kernel {
92+
namespace this_work_item {
9493
template <int Dimensions> root_group<Dimensions> get_root_group() {
9594
return sycl::ext::oneapi::this_work_item::get_nd_item<Dimensions>()
9695
.ext_oneapi_get_root_group();
9796
}
97+
} // namespace this_work_item
98+
99+
namespace this_kernel {
100+
template <int Dimensions>
101+
__SYCL_DEPRECATED(
102+
"use sycl::ext::oneapi::experimental::this_work_item::get_root_group() "
103+
"instead")
104+
root_group<Dimensions> get_root_group() {
105+
this_work_item::get_root_group<Dimensions>();
106+
}
98107
} // namespace this_kernel
99108

100109
} // namespace ext::oneapi::experimental

sycl/test-e2e/GroupAlgorithm/root_group.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ void testRootGroup() {
5252
sycl::group_barrier(root);
5353

5454
root =
55-
sycl::ext::oneapi::experimental::this_kernel::get_root_group<1>();
55+
sycl::ext::oneapi::experimental::this_work_item::get_root_group<
56+
1>();
5657
int sum = data[root.get_local_id()] +
5758
data[root.get_local_range() - root.get_local_id() - 1];
5859
sycl::group_barrier(root);

sycl/test/warnings/free_functions_deprecation.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,8 @@ int main() {
1616
// expected-warning@+1 {{'this_id<1>' is deprecated: use nd_range kernel and sycl::ext::oneapi::this_work_item::get_nd_item() instead}}
1717
(void)sycl_exp::this_id<1>();
1818

19+
// expected-warning@+1 {{'get_root_group<1>' is deprecated: use sycl::ext::oneapi::experimental::this_work_item::get_root_group() instead}}
20+
(void)sycl_exp::this_kernel::get_root_group<1>();
21+
1922
return 0;
2023
}

0 commit comments

Comments
 (0)