【发布时间】:2017-12-01 01:45:07
【问题描述】:
我正在做一些测试以更好地了解 Numba 如何与 NumPy 一起工作,这里我想看看 Numba 是否可以处理 out 参数。
import numpy as np
from numba import njit , jit
from time import time
@njit
def mult(a,b, N = 1000000):
c = np.zeros_like(a)
for i in range(N):
np.multiply(a, b, out=c)
return c
d = np.asarray([1,2,3,4,5,6,7,8,9])
e = np.asarray([1,2,3,4,5,6,7,8,9])
t = time()
e = mult(d,e)
print "Time Elapsed :" + str(time() - t)
不使用 Numba,代码运行良好。它甚至比使用 @jit 装饰还要快:在我的配置下,~1.2s 对 ~1.6s。
使用@njit 会导致该错误:
LoweringError: unsupported keyword arguments when calling Function(<ufunc 'multiply'>)
虽然,Reading the Numba 0.15.1 doc.,他们说支持 out 参数。我能做些什么呢?
【问题讨论】: