没有名为numbapro的模块

dtn*_*34- 0 python numba-pro

我运行了这个我在CUDA Python简介页面上阅读的代码: -

import numpy as np
from timeit import default_timer as timer
from numbapro import vectorize

@vectorize(["float32(float32, float32)"], target='gpu')
def VectorAdd(a, b):
        return a + b

def main():
    N = 32000000

    A = np.ones(N, dtype=np.float32)
    B = np.ones(N, dtype=np.float32)
    C = np.zeros(N, dtype=np.float32)

    start = timer()
    C = VectorAdd(A, B)
    vectoradd_timer = timer() - start

    print("C[:5] = " + str(C[:5]))
    print("C[-5:] = " + str(C[-5:]))

    print("VectorAdd took %f seconds" % vectoradd_timer)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我在终端上收到以下错误: -

dtn34@dtn34-ubuntu:~/Python$ python asd.py
Traceback (most recent call last):
  File "asd.py", line 3, in <module>
    from numbapro import vectorize
ImportError: No module named numbapro
Run Code Online (Sandbox Code Playgroud)

它应该使用gpu运行代码,但我收到了这个错误.我已经安装了anaconda,更新了conda,使用conda安装加速,安装了cudatoolkit,使用conda安装了numba.我尝试使用python2和python3进行编译

我该怎么办?

dtn*_*34- 7

得到它了.正如WarrenWeckesser和Robert Crovella所指出的那样,NumbaPro已被弃用,所有功能都转移到了numba.因此,你应该写numba而不是numbapro

from numba import vectorize
Run Code Online (Sandbox Code Playgroud)

目标也需要设置为'cuda'而不是'gpu'

@vectorize(["float32(float32, float32)"], target='cuda')
def VectorAdd(a, b):
        return a + b
Run Code Online (Sandbox Code Playgroud)