我需要提高一份我正在处理的脚本的执行时间。我开始使用Numba JIT装饰器来尝试并行计算,但它却抛出了错误。
KeyError: "Does not support option: 'parallel'"
我决定测试nogil是否可以释放我的CPU的全部能力,但它比纯Python更慢,我不明白为什么会这样,如果有人可以帮助或指导我,我将非常感激。
import numpy as np
from numba import *
@jit(['float64[:,:],float64[:,:]'],'(n,m),(n,m)->(n,m)',nogil=True)
def asd(x,y):
return x+y
u=np.random.random(100)
w=np.random.random(100)
%timeit asd(u,w)
%timeit u+w
3轮中循环10000次,每次循环平均耗时137微秒。最慢的运行时间比最快的运行时间慢了7.13倍。这可能意味着中间结果已被缓存。3轮中循环1000000次,每次循环平均耗时1.75微秒。