@@ -1373,36 +1373,55 @@ def test_event_management(ctx_factory):
1373
1373
from pyopencl .clrandom import rand as clrand
1374
1374
1375
1375
x = clrand (queue , (5 , 10 ), dtype = np .float32 )
1376
- assert len (x .events ) == 1 , len (x .events )
1376
+ assert len (x .write_events ) == 1 , x .write_events
1377
+ assert len (x .read_events ) == 0 , x .read_events
1377
1378
1378
1379
x .finish ()
1379
1380
1380
- assert len (x .events ) == 0
1381
-
1382
- y = x + x
1383
- assert len (y .events ) == 1
1384
- y = x * x
1385
- assert len (y .events ) == 1
1386
- y = 2 * x
1387
- assert len (y .events ) == 1
1388
- y = 2 / x
1389
- assert len (y .events ) == 1
1390
- y = x / 2
1391
- assert len (y .events ) == 1
1392
- y = x ** 2
1393
- assert len (y .events ) == 1
1394
- y = 2 ** x
1395
- assert len (y .events ) == 1
1381
+ assert len (x .write_events ) == 0
1382
+ assert len (x .read_events ) == 0
1383
+
1384
+ y = x + x
1385
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1386
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 2
1387
+
1388
+ y = x * x
1389
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1390
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 4
1391
+
1392
+ y = 2 * x
1393
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1394
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 5
1395
+
1396
+ y = 2 / x
1397
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1398
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 6
1399
+
1400
+ y = x / 2
1401
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1402
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 7
1403
+
1404
+ y = x ** 2
1405
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1406
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 8
1407
+
1408
+ y = 2 ** x
1409
+ assert len (y .write_events ) == 1 and len (y .read_events ) == 0
1410
+ assert len (x .write_events ) == 0 and len (x .read_events ) == 9
1411
+
1412
+ x .finish ()
1396
1413
1397
1414
for _i in range (10 ):
1398
1415
x .fill (0 )
1399
1416
1400
- assert len (x .events ) == 10
1417
+ assert len (x .write_events ) == 10
1418
+ assert len (x .read_events ) == 0
1401
1419
1402
1420
for _i in range (1000 ):
1403
1421
x .fill (0 )
1404
1422
1405
- assert len (x .events ) < 100
1423
+ assert len (x .write_events ) < 100
1424
+ assert len (x .read_events ) == 0
1406
1425
1407
1426
# }}}
1408
1427
@@ -1648,7 +1667,7 @@ def test_get_async(ctx_factory):
1648
1667
assert np .abs (b1 - b ).mean () < 1e-5
1649
1668
1650
1669
wait_event = cl .UserEvent (context )
1651
- b_gpu .add_event (wait_event )
1670
+ b_gpu .add_write_event (wait_event )
1652
1671
b , evt = b_gpu .get_async () # testing that this doesn't hang
1653
1672
wait_event .set_status (cl .command_execution_status .COMPLETE )
1654
1673
evt .wait ()
@@ -2286,6 +2305,8 @@ def alloc2(size):
2286
2305
# }}}
2287
2306
2288
2307
2308
+ # {{{ test_logical_and_or
2309
+
2289
2310
def test_logical_and_or (ctx_factory ):
2290
2311
# NOTE: Copied over from pycuda/test/test_gpuarray.py
2291
2312
rng = np .random .default_rng (seed = 0 )
@@ -2339,6 +2360,31 @@ def test_logical_not(ctx_factory):
2339
2360
cl_array .logical_not (cl_array .zeros (cq , 10 , np .float64 ) + 1 ).get (),
2340
2361
np .logical_not (np .ones (10 )))
2341
2362
2363
+ # }}}
2364
+
2365
+
2366
+ # {{{ test multiple queues
2367
+
2368
+ def test_multiple_queues (ctx_factory ):
2369
+ ctx = ctx_factory ()
2370
+
2371
+ a = [None ] * 3
2372
+ for i in range (len (a )):
2373
+ queue = cl .CommandQueue (ctx )
2374
+ a [i ] = cl_array .arange (queue , 1000 , dtype = np .float32 )
2375
+
2376
+ b = a [i ] + a [i ]
2377
+ b = a [i ] ** 2
2378
+ b = a [i ] + 4000
2379
+ assert len (b .write_events ) == 1
2380
+ assert len (a [i ].read_events ) == 4
2381
+
2382
+ a [i ] = a [i ].with_queue (None )
2383
+
2384
+ b = a [0 ].with_queue (queue ) + a [1 ].with_queue (queue )
2385
+
2386
+ # }}}
2387
+
2342
2388
2343
2389
# {{{ test XDG_CACHE_HOME handling
2344
2390
0 commit comments