0

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()

そして、端末で次のエラーが表示されます:-

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

gpu を使用してコードを実行することになっていましたが、そのエラーが発生しています。anacondaをインストールし、condaを更新し、condaを使用してacceleratorをインストールし、cudatoolkitをインストールし、condaを使用してnumbaをインストールしました。python2 と python3 の両方を使ってコンパイルしてみました

私は何をしますか?

4

2 に答える 2

8

とった。WarrenWeckesser と Robert Crovella が指摘したように、NumbaPro は廃止され、すべての機能が numba に移動されました。したがって、numbapro の代わりに numba と書く必要があります。

from numba import vectorize

また、ターゲットを「gpu」ではなく「cuda」に設定する必要があります

@vectorize(["float32(float32, float32)"], target='cuda')
def VectorAdd(a, b):
        return a + b
于 2018-01-18T16:56:52.920 に答える