Skip to content

A helper package to easily time Numba CUDA GPU events ⌛

License

Notifications You must be signed in to change notification settings

mihi-r/numba_timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Numba GPU Timer

A helper package to easily time Numba CUDA GPU events.

Compatibility

As this package uses Numba, refer to the Numba compatibility guide.

Installation

Using Pip: pip3 install numba_timer.

Example

import math
import numpy as np
from numba import cuda
from numba_timer import cuda_timer

@cuda.jit
def increment_a_2D_array(an_array):
    x, y = cuda.grid(2)
    if x < an_array.shape[0] and y < an_array.shape[1]:
       an_array[x, y] += 1

an_array = np.zeros((2, 100))
threadsperblock = (16, 16)
blockspergrid_x = math.ceil(an_array.shape[0] / threadsperblock[0])
blockspergrid_y = math.ceil(an_array.shape[1] / threadsperblock[1])
blockspergrid = (blockspergrid_x, blockspergrid_y)

timer = cuda_timer.Timer()

timer.start()
increment_a_2D_array[blockspergrid, threadsperblock](an_array)
timer.stop()

print(f'Elapsed time for run 1: {timer.elapsed()} ms')

timer.start()
increment_a_2D_array[blockspergrid, threadsperblock](an_array)
timer.stop()

print(f'Elapsed time for run 2: {timer.elapsed()} ms')

Numba specific code is borrowed from the Numba documentation.