39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
|
import numpy as np
|
||
|
from numba import cuda
|
||
|
from numba.cuda.testing import unittest, CUDATestCase
|
||
|
|
||
|
|
||
|
class TestCudaEvent(CUDATestCase):
|
||
|
def test_event_elapsed(self):
|
||
|
N = 32
|
||
|
dary = cuda.device_array(N, dtype=np.double)
|
||
|
evtstart = cuda.event()
|
||
|
evtend = cuda.event()
|
||
|
|
||
|
evtstart.record()
|
||
|
cuda.to_device(np.arange(N, dtype=np.double), to=dary)
|
||
|
evtend.record()
|
||
|
evtend.wait()
|
||
|
evtend.synchronize()
|
||
|
# Exercise the code path
|
||
|
evtstart.elapsed_time(evtend)
|
||
|
|
||
|
def test_event_elapsed_stream(self):
|
||
|
N = 32
|
||
|
stream = cuda.stream()
|
||
|
dary = cuda.device_array(N, dtype=np.double)
|
||
|
evtstart = cuda.event()
|
||
|
evtend = cuda.event()
|
||
|
|
||
|
evtstart.record(stream=stream)
|
||
|
cuda.to_device(np.arange(N, dtype=np.double), to=dary, stream=stream)
|
||
|
evtend.record(stream=stream)
|
||
|
evtend.wait(stream=stream)
|
||
|
evtend.synchronize()
|
||
|
# Exercise the code path
|
||
|
evtstart.elapsed_time(evtend)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|