ipython 3.6.1とそのアクセラレーションパッケージでanacondaスイートを使用しています。この2つの関数fftとifftには、cufftサブパッケージがあります。これらは、私が理解する限り、システムRAMとシステムとgpuメモリ間のすべてのgpuメモリと転送が自動的に処理され、関数が終了するとgpuメモリが解放され、numpyアレイに出力されてnumpy配列に出力されます。これは非常に素晴らしく、私にとってはうまくいくようです。しかし、私は同じ配列上で複数のfft/ifft呼び出しを実行したいと思いますし、そのたびに配列から1つの数値だけを抽出します。システム< - > gpuの転送を最小限に抑えるために、gpuメモリに配列を保持するといいでしょう。このパッケージを使用してこれを実行できないことを修正しましたか?もしそうなら、同じことをする別のパッケージがありますか?私はreiknaプロジェクトに気付きましたが、アナコンダでは利用できないようです。fft/ifft呼び出し間のgpuメモリ内のアレイを保持するためのAnacondaパッケージ
事私がやっている(とGPU上で効率的にやりたいが)で、短い事前にnumpy.fft
import math as m
import numpy as np
import numpy.fft as dft
nr = 100
nh = 2**16
h = np.random.rand(nh)*1j
H = np.zeros(nh,dtype='complex64')
h[10] = 1
r = np.zeros(nr,dtype='complex64')
fftscale = m.sqrt(nh)
corr = 0.12j
for i in np.arange(nr):
r[i] = h[10]
H = dft.fft(h,nh)/fftscale
h = dft.ifft(h*corr)*fftscale
r[nr-1] = h[10]
print(r)
感謝を使用して、ここに示されています!