Skip to content

Commit 22ab17a

Browse files
committed
use read/write_events everywhere
1 parent 122dbb3 commit 22ab17a

File tree

7 files changed

+40
-58
lines changed

7 files changed

+40
-58
lines changed

pyopencl/algorithm.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def _extract_extra_args_types_values(extra_args):
5959
if isinstance(val, cl.array.Array):
6060
extra_args_types.append(VectorArg(val.dtype, name, with_offset=False))
6161
extra_args_values.append(val)
62-
extra_wait_for.extend(val.events)
62+
extra_wait_for.extend(val.write_events)
6363
elif isinstance(val, np.generic):
6464
extra_args_types.append(ScalarArg(val.dtype, name))
6565
extra_args_values.append(val)
@@ -1163,7 +1163,7 @@ def __call__(self, queue, n_objects, *args, **kwargs):
11631163
data_args.append(arg_val.base_data)
11641164
if arg_descr.with_offset:
11651165
data_args.append(arg_val.offset)
1166-
wait_for.extend(arg_val.events)
1166+
wait_for.extend(arg_val.write_events)
11671167
else:
11681168
data_args.append(arg_val)
11691169

@@ -1182,7 +1182,7 @@ def __call__(self, queue, n_objects, *args, **kwargs):
11821182
counts = cl.array.empty(queue,
11831183
(n_objects + 1), index_dtype, allocator=allocator)
11841184
counts[-1] = 0
1185-
wait_for = wait_for + counts.events
1185+
wait_for = wait_for + counts.write_events
11861186

11871187
# The scan will turn the "counts" array into the "starts" array
11881188
# in-place.
@@ -1235,7 +1235,7 @@ def __call__(self, queue, n_objects, *args, **kwargs):
12351235
info_record.nonempty_indices,
12361236
info_record.compressed_indices,
12371237
info_record.num_nonempty_lists,
1238-
wait_for=[count_event] + info_record.compressed_indices.events)
1238+
wait_for=[count_event] + info_record.compressed_indices.write_events)
12391239

12401240
info_record.starts = compressed_counts
12411241

@@ -1264,13 +1264,13 @@ def __call__(self, queue, n_objects, *args, **kwargs):
12641264
evt = scan_kernel(
12651265
starts_ary,
12661266
size=info_record.num_nonempty_lists,
1267-
wait_for=starts_ary.events)
1267+
wait_for=starts_ary.write_events)
12681268
else:
12691269
evt = scan_kernel(starts_ary, wait_for=[count_event],
12701270
size=n_objects)
12711271

12721272
starts_ary.setitem(0, 0, queue=queue, wait_for=[evt])
1273-
scan_events.extend(starts_ary.events)
1273+
scan_events.extend(starts_ary.write_events)
12741274

12751275
# retrieve count
12761276
info_record.count = int(starts_ary[-1].get())
@@ -1432,7 +1432,7 @@ def __call__(self, queue, keys, values, nkeys,
14321432

14331433
starts = (cl.array.empty(queue, (nkeys+1), starts_dtype, allocator=allocator)
14341434
.fill(len(values_sorted_by_key), wait_for=[evt]))
1435-
evt, = starts.events
1435+
evt, = starts.write_events
14361436

14371437
evt = knl_info.start_finder(starts, keys_sorted_by_key,
14381438
range=slice(len(keys_sorted_by_key)),

pyopencl/bitonic_sort.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def __call__(self, arr, idx=None, queue=None, wait_for=None, axis=0):
9292

9393
if wait_for is None:
9494
wait_for = []
95-
wait_for = wait_for + arr.events
95+
wait_for = wait_for + arr.write_events
9696

9797
last_evt = cl.enqueue_marker(queue, wait_for=wait_for)
9898

pyopencl/clmath.py

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@
2222
THE SOFTWARE.
2323
"""
2424

25-
import pyopencl.array as cl_array
2625
import pyopencl.elementwise as elementwise
27-
from pyopencl.array import _get_common_dtype
26+
from pyopencl.array import elwise_kernel_runner, _get_common_dtype
2827
import numpy as np
2928

3029

3130
def _make_unary_array_func(name):
32-
@cl_array.elwise_kernel_runner
31+
@elwise_kernel_runner
3332
def knl_runner(result, arg):
3433
if arg.dtype.kind == "c":
3534
from pyopencl.elementwise import complex_dtype_to_name
@@ -42,8 +41,7 @@ def knl_runner(result, arg):
4241

4342
def f(array, queue=None):
4443
result = array._new_like_me(queue=queue)
45-
event1 = knl_runner(result, array, queue=queue)
46-
result.add_event(event1)
44+
knl_runner(result, array, queue=queue)
4745
return result
4846

4947
return f
@@ -59,13 +57,13 @@ def f(array, queue=None):
5957
asinpi = _make_unary_array_func("asinpi")
6058

6159

62-
@cl_array.elwise_kernel_runner
60+
@elwise_kernel_runner
6361
def _atan2(result, arg1, arg2):
6462
return elementwise.get_float_binary_func_kernel(
6563
result.context, "atan2", arg1.dtype, arg2.dtype, result.dtype)
6664

6765

68-
@cl_array.elwise_kernel_runner
66+
@elwise_kernel_runner
6967
def _atan2pi(result, arg1, arg2):
7068
return elementwise.get_float_binary_func_kernel(
7169
result.context, "atan2pi", arg1.dtype, arg2.dtype, result.dtype)
@@ -80,7 +78,7 @@ def atan2(y, x, queue=None):
8078
"""
8179
queue = queue or y.queue
8280
result = y._new_like_me(_get_common_dtype(y, x, queue))
83-
result.add_event(_atan2(result, y, x, queue=queue))
81+
_atan2(result, y, x, queue=queue)
8482
return result
8583

8684

@@ -94,7 +92,7 @@ def atan2pi(y, x, queue=None):
9492
"""
9593
queue = queue or y.queue
9694
result = y._new_like_me(_get_common_dtype(y, x, queue))
97-
result.add_event(_atan2pi(result, y, x, queue=queue))
95+
_atan2pi(result, y, x, queue=queue)
9896
return result
9997

10098

@@ -121,7 +119,7 @@ def atan2pi(y, x, queue=None):
121119
# TODO: fmin
122120

123121

124-
@cl_array.elwise_kernel_runner
122+
@elwise_kernel_runner
125123
def _fmod(result, arg, mod):
126124
return elementwise.get_fmod_kernel(result.context, result.dtype,
127125
arg.dtype, mod.dtype)
@@ -132,13 +130,13 @@ def fmod(arg, mod, queue=None):
132130
for each element in `arg` and `mod`."""
133131
queue = (queue or arg.queue) or mod.queue
134132
result = arg._new_like_me(_get_common_dtype(arg, mod, queue))
135-
result.add_event(_fmod(result, arg, mod, queue=queue))
133+
_fmod(result, arg, mod, queue=queue)
136134
return result
137135

138136
# TODO: fract
139137

140138

141-
@cl_array.elwise_kernel_runner
139+
@elwise_kernel_runner
142140
def _frexp(sig, expt, arg):
143141
return elementwise.get_frexp_kernel(sig.context, sig.dtype,
144142
expt.dtype, arg.dtype)
@@ -150,9 +148,7 @@ def frexp(arg, queue=None):
150148
"""
151149
sig = arg._new_like_me(queue=queue)
152150
expt = arg._new_like_me(queue=queue, dtype=np.int32)
153-
event1 = _frexp(sig, expt, arg, queue=queue)
154-
sig.add_event(event1)
155-
expt.add_event(event1)
151+
_frexp(sig, expt, arg, queue=queue, noutputs=2)
156152
return sig, expt
157153

158154
# TODO: hypot
@@ -161,7 +157,7 @@ def frexp(arg, queue=None):
161157
ilogb = _make_unary_array_func("ilogb")
162158

163159

164-
@cl_array.elwise_kernel_runner
160+
@elwise_kernel_runner
165161
def _ldexp(result, sig, exp):
166162
return elementwise.get_ldexp_kernel(result.context, result.dtype,
167163
sig.dtype, exp.dtype)
@@ -173,7 +169,7 @@ def ldexp(significand, exponent, queue=None):
173169
`result = significand * 2**exponent`.
174170
"""
175171
result = significand._new_like_me(queue=queue)
176-
result.add_event(_ldexp(result, significand, exponent))
172+
_ldexp(result, significand, exponent)
177173
return result
178174

179175

@@ -191,7 +187,7 @@ def ldexp(significand, exponent, queue=None):
191187
# TODO: minmag
192188

193189

194-
@cl_array.elwise_kernel_runner
190+
@elwise_kernel_runner
195191
def _modf(intpart, fracpart, arg):
196192
return elementwise.get_modf_kernel(intpart.context, intpart.dtype,
197193
fracpart.dtype, arg.dtype)
@@ -203,9 +199,7 @@ def modf(arg, queue=None):
203199
"""
204200
intpart = arg._new_like_me(queue=queue)
205201
fracpart = arg._new_like_me(queue=queue)
206-
event1 = _modf(intpart, fracpart, arg, queue=queue)
207-
fracpart.add_event(event1)
208-
intpart.add_event(event1)
202+
_modf(intpart, fracpart, arg, queue=queue, noutputs=2)
209203
return fracpart, intpart
210204

211205

@@ -238,19 +232,19 @@ def modf(arg, queue=None):
238232
# TODO: table 6.10, integer functions
239233
# TODO: table 6.12, clamp et al
240234

241-
@cl_array.elwise_kernel_runner
235+
@elwise_kernel_runner
242236
def _bessel_jn(result, n, x):
243237
return elementwise.get_bessel_kernel(result.context, "j", result.dtype,
244238
np.dtype(type(n)), x.dtype)
245239

246240

247-
@cl_array.elwise_kernel_runner
241+
@elwise_kernel_runner
248242
def _bessel_yn(result, n, x):
249243
return elementwise.get_bessel_kernel(result.context, "y", result.dtype,
250244
np.dtype(type(n)), x.dtype)
251245

252246

253-
@cl_array.elwise_kernel_runner
247+
@elwise_kernel_runner
254248
def _hankel_01(h0, h1, x):
255249
if h0.dtype != h1.dtype:
256250
raise TypeError("types of h0 and h1 must match")
@@ -260,20 +254,18 @@ def _hankel_01(h0, h1, x):
260254

261255
def bessel_jn(n, x, queue=None):
262256
result = x._new_like_me(queue=queue)
263-
result.add_event(_bessel_jn(result, n, x, queue=queue))
257+
_bessel_jn(result, n, x, queue=queue)
264258
return result
265259

266260

267261
def bessel_yn(n, x, queue=None):
268262
result = x._new_like_me(queue=queue)
269-
result.add_event(_bessel_yn(result, n, x, queue=queue))
263+
_bessel_yn(result, n, x, queue=queue)
270264
return result
271265

272266

273267
def hankel_01(x, queue=None):
274268
h0 = x._new_like_me(queue=queue)
275269
h1 = x._new_like_me(queue=queue)
276-
event1 = _hankel_01(h0, h1, x, queue=queue)
277-
h0.add_event(event1)
278-
h1.add_event(event1)
270+
_hankel_01(h0, h1, x, queue=queue, noutputs=2)
279271
return h0, h1

pyopencl/clrandom.py

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,11 @@ def fill_uniform(self, ary, a=0, b=1, queue=None):
337337
evt = knl(queue,
338338
(self.num_work_items,), None,
339339
self.state.data, ary.data, ary.size*size_multiplier,
340-
b-a, a, wait_for=ary.events)
341-
ary.add_event(evt)
342-
self.state.add_event(evt)
340+
b-a, a, wait_for=ary.write_events + ary.read_events)
341+
342+
ary.add_write_event(evt)
343+
self.state.add_write_event(evt)
344+
343345
return ary
344346

345347
def uniform(self, *args, **kwargs):
@@ -368,23 +370,11 @@ def fill_normal(self, ary, mu=0, sigma=1, queue=None):
368370
evt = knl(queue,
369371
(self.num_work_items,), self.wg_size,
370372
self.state.data, ary.data, ary.size*size_multiplier, sigma, mu,
371-
<<<<<<< Updated upstream
372-
wait_for=ary.events)
373-
ary.add_event(evt)
374-
self.state.add_event(evt)
375-
||||||| Stash base
376-
wait_for=ary.write_events)
377-
378-
ary.add_write_event(evt)
379-
self.state.add_write_event(evt)
380-
381-
=======
382373
wait_for=ary.write_events + ary.read_events)
383374

384375
ary.add_write_event(evt)
385376
self.state.add_write_event(evt)
386377

387-
>>>>>>> Stashed changes
388378
return evt
389379

390380
def normal(self, *args, **kwargs):
@@ -680,7 +670,7 @@ def _fill(self, distribution, ary, scale, shift, queue=None):
680670
gsize, lsize = _splay(queue.device, ary.size)
681671

682672
evt = knl(queue, gsize, lsize, *args)
683-
ary.add_event(evt)
673+
ary.add_write_event(evt)
684674

685675
self.counter[0] += n * counter_multiplier
686676
c1_incr, self.counter[0] = divmod(self.counter[0], self.counter_max)

pyopencl/invoker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def add_buf_arg(arg_idx, typechar, expr_str):
138138
cl_arg_idx += 1
139139

140140
if in_enqueue:
141-
wait_for_parts .append(f"{arg_var}.events")
141+
wait_for_parts.append(f"{arg_var}.write_events")
142142

143143
continue
144144

pyopencl/reduction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ def __call__(self, *args, **kwargs):
346346
invocation_args.append(arg.base_data)
347347
if arg_tp.with_offset:
348348
invocation_args.append(arg.offset)
349-
wait_for.extend(arg.events)
349+
wait_for.extend(arg.write_events)
350350
else:
351351
invocation_args.append(arg)
352352

@@ -440,7 +440,7 @@ def __call__(self, *args, **kwargs):
440440
wait_for=wait_for)
441441
wait_for = [last_evt]
442442

443-
result.add_event(last_evt)
443+
result.add_write_event(last_evt)
444444

445445
if group_count == 1:
446446
if return_event:

pyopencl/scan.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,7 +1474,7 @@ def __call__(self, *args, **kwargs):
14741474
data_args.append(arg_val.base_data)
14751475
if arg_descr.with_offset:
14761476
data_args.append(arg_val.offset)
1477-
wait_for.extend(arg_val.events)
1477+
wait_for.extend(arg_val.write_events)
14781478
else:
14791479
data_args.append(arg_val)
14801480

@@ -1691,7 +1691,7 @@ def __call__(self, *args, **kwargs):
16911691
data_args.append(arg_val.base_data)
16921692
if arg_descr.with_offset:
16931693
data_args.append(arg_val.offset)
1694-
wait_for.extend(arg_val.events)
1694+
wait_for.extend(arg_val.write_events)
16951695
else:
16961696
data_args.append(arg_val)
16971697

0 commit comments

Comments
 (0)