Skip to content

Commit 8e190d7

Browse files
jbrodmanbader
authored andcommitted
[SYCL][API Simplification] Make flattened parallel_fors use const ref vecs (#1043)
* Const ref is the better path. * Use vector_class Signed-off-by: James Brodman <[email protected]>
1 parent 5b40ef9 commit 8e190d7

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

sycl/include/CL/sycl/queue.hpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ class queue {
149149
/// @param DepEvents is a vector of events that specify the kernel dependences
150150
/// @param KernelFunc is the Kernel functor or lambda
151151
template <typename KernelName = detail::auto_name, typename KernelType>
152-
event single_task(std::vector<event> DepEvents, KernelType KernelFunc) {
152+
event single_task(const vector_class<event> &DepEvents,
153+
KernelType KernelFunc) {
153154
return submit([&](handler &CGH) {
154155
CGH.depends_on(DepEvents);
155156
CGH.template single_task<KernelName, KernelType>(KernelFunc);
@@ -195,7 +196,8 @@ class queue {
195196
/// @param KernelFunc is the Kernel functor or lambda
196197
template <typename KernelName = detail::auto_name, typename KernelType,
197198
int Dims>
198-
event parallel_for(range<Dims> NumWorkItems, std::vector<event> DepEvents,
199+
event parallel_for(range<Dims> NumWorkItems,
200+
const vector_class<event> &DepEvents,
199201
KernelType KernelFunc) {
200202
return submit([&](handler &CGH) {
201203
CGH.depends_on(DepEvents);
@@ -248,7 +250,8 @@ class queue {
248250
template <typename KernelName = detail::auto_name, typename KernelType,
249251
int Dims>
250252
event parallel_for(range<Dims> NumWorkItems, id<Dims> WorkItemOffset,
251-
std::vector<event> DepEvents, KernelType KernelFunc) {
253+
const vector_class<event> &DepEvents,
254+
KernelType KernelFunc) {
252255
return submit([&](handler &CGH) {
253256
CGH.depends_on(DepEvents);
254257
CGH.template parallel_for<KernelName, KernelType, Dims>(
@@ -296,7 +299,8 @@ class queue {
296299
template <typename KernelName = detail::auto_name, typename KernelType,
297300
int Dims>
298301
event parallel_for(nd_range<Dims> ExecutionRange,
299-
std::vector<event> DepEvents, KernelType KernelFunc) {
302+
const vector_class<event> &DepEvents,
303+
KernelType KernelFunc) {
300304
return submit([&](handler &CGH) {
301305
CGH.depends_on(DepEvents);
302306
CGH.template parallel_for<KernelName, KernelType, Dims>(ExecutionRange,

sycl/test/usm/pfor_flatten.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ int main() {
4747
array[i]++;
4848
});
4949

50-
q.single_task({e3}, [=]() {
50+
auto e4 = q.single_task({e3}, [=]() {
5151
for (int i = 0; i < N; i++) {
5252
array[i]++;
5353
}
5454
});
5555

56+
q.single_task(e4, [=]() { array[0] = array[0]; });
57+
5658
q.wait();
5759

5860
for (int i = 0; i < N; i++) {

0 commit comments

Comments
 (0)