私はNumbaとCUDAを初めて使い、いくつかの基本的な例でNumpyとCUDAの機能を比較するための測定を行っています。例えば、予想されるスピードアップNumba/CUDA対Numpy
n=1000000
array = np.linspace(0, 100, num=n, dtype=np.float32)
threads per block = 32
blocks per grid = 31250
とシングルスレッド
def cpu_computation(array):
array = array ** 2.6
return array
に比べ
@cuda.jit("void(float32[:])")
def gpu_computation(array):
pos = cuda.grid(1)
if pos < array.size:
array[pos] = array[pos] ** 2.6
私はGPUで約3倍のスピードアップを取得します。これは行列乗算(Numbaドキュメントにある基本バージョンとスマートバージョンの両方)を実行するときに得られるものです。デバイスとの間でコピーすることで最適化することは役に立ちませんでした。
このスピードアップは期待されますか?私はより大きな桁違いを期待していました。私のマシン:GeForce GTX 775M 2048 MBとCUDA 7.5.30のMac OSX。
ありがとうございました。上記のコードスニペットを更新して、私が今測定しているものを表示していますが、これまでのところ違いは見られません。 – jam123