def test_moa_numba_reduce(benchmark): n = 1000 m = 1000 expression = LazyArray(name='A', shape=('n', 'm')).reduce('+') local_dict = {} exec(expression.compile(backend='python', use_numba=True), globals(), local_dict) A = numpy.random.random((n, m)) benchmark(local_dict['f'], A)
def test_moa_numba_outer_product(benchmark): n = 100 m = 100 expression = LazyArray(name='A', shape=('n', 'm')).outer( '*', LazyArray(name='B', shape=('n', 'm'))) local_dict = {} exec(expression.compile(backend='python', use_numba=True), globals(), local_dict) A = numpy.random.random((n, m)) B = numpy.random.random((n, m)) benchmark(local_dict['f'], A, B)
def test_moa_numba_double_addition(benchmark): n = 1000 m = 1000 expression = LazyArray(name='A', shape=('n', 'm')) + LazyArray( name='B', shape=('n', 'm')) + LazyArray(name='C', shape=('n', 'm')) local_dict = {} exec(expression.compile(backend='python', use_numba=True), globals(), local_dict) A = numpy.random.random((n, m)) B = numpy.random.random((n, m)) C = numpy.random.random((n, m)) benchmark(local_dict['f'], A=A, B=B, C=C)