@@ -130,6 +130,18 @@ class queue {
130
130
});
131
131
}
132
132
133
+ // single_task version with a kernel represented as a lambda.
134
+ // Takes an event to specify a dependence.
135
+ template <typename KernelName = detail::auto_name, typename KernelType>
136
+ event single_task (event DepEvent, KernelType KernelFunc) {
137
+ return submit ([&](handler &CGH) {
138
+ CGH.depends_on (DepEvent);
139
+ CGH.template single_task <KernelName, KernelType>(KernelFunc);
140
+ });
141
+ }
142
+
143
+ // single_task version with a kernel represented as a lambda.
144
+ // Takes a vector of events to specify dependences.
133
145
template <typename KernelName = detail::auto_name, typename KernelType>
134
146
event single_task (std::vector<event> DepEvents, KernelType KernelFunc) {
135
147
return submit ([&](handler &CGH) {
@@ -149,6 +161,21 @@ class queue {
149
161
});
150
162
}
151
163
164
+ // parallel_for version with a kernel represented as a lambda + range that
165
+ // specifies global size only. Takes an event to specify dependences
166
+ template <typename KernelName = detail::auto_name, typename KernelType,
167
+ int Dims>
168
+ event parallel_for (range<Dims> NumWorkItems, event DepEvent,
169
+ KernelType KernelFunc) {
170
+ return submit ([&](handler &CGH) {
171
+ CGH.depends_on (DepEvent);
172
+ CGH.template parallel_for <KernelName, KernelType, Dims>(NumWorkItems,
173
+ KernelFunc);
174
+ });
175
+ }
176
+
177
+ // parallel_for version with a kernel represented as a lambda + range that
178
+ // specifies global size only. Takes a vector of events to specify dependences
152
179
template <typename KernelName = detail::auto_name, typename KernelType,
153
180
int Dims>
154
181
event parallel_for (range<Dims> NumWorkItems, std::vector<event> DepEvents,
@@ -172,6 +199,23 @@ class queue {
172
199
});
173
200
}
174
201
202
+ // parallel_for version with a kernel represented as a lambda + range and
203
+ // offset that specify global size and global offset correspondingly.
204
+ // Takes an event to specify dependences.
205
+ template <typename KernelName = detail::auto_name, typename KernelType,
206
+ int Dims>
207
+ event parallel_for (range<Dims> NumWorkItems, id<Dims> WorkItemOffset,
208
+ event DepEvent, KernelType KernelFunc) {
209
+ return submit ([&](handler &CGH) {
210
+ CGH.depends_on (DepEvent);
211
+ CGH.template parallel_for <KernelName, KernelType, Dims>(
212
+ NumWorkItems, WorkItemOffset, KernelFunc);
213
+ });
214
+ }
215
+
216
+ // parallel_for version with a kernel represented as a lambda + range and
217
+ // offset that specify global size and global offset correspondingly.
218
+ // Takes a vector of events to specify dependences.
175
219
template <typename KernelName = detail::auto_name, typename KernelType,
176
220
int Dims>
177
221
event parallel_for (range<Dims> NumWorkItems, id<Dims> WorkItemOffset,
@@ -194,6 +238,23 @@ class queue {
194
238
});
195
239
}
196
240
241
+ // parallel_for version with a kernel represented as a lambda + nd_range that
242
+ // specifies global, local sizes and offset.
243
+ // Takes an event to specify dependences.
244
+ template <typename KernelName = detail::auto_name, typename KernelType,
245
+ int Dims>
246
+ event parallel_for (nd_range<Dims> ExecutionRange,
247
+ event DepEvent, KernelType KernelFunc) {
248
+ return submit ([&](handler &CGH) {
249
+ CGH.depends_on (DepEvent);
250
+ CGH.template parallel_for <KernelName, KernelType, Dims>(ExecutionRange,
251
+ KernelFunc);
252
+ });
253
+ }
254
+
255
+ // parallel_for version with a kernel represented as a lambda + nd_range that
256
+ // specifies global, local sizes and offset.
257
+ // Takes a vector of events to specify dependences.
197
258
template <typename KernelName = detail::auto_name, typename KernelType,
198
259
int Dims>
199
260
event parallel_for (nd_range<Dims> ExecutionRange,
0 commit comments