使用pyfftw库,可以很容易地在形状(M, 2**N)
的多维数组的单个轴上进行一维FFT,而不会明确地循环显示第零个索引,如下所示:
afft = pyfftw.interfaces.numpy_fft.fft(a, axis=1)
。
切换到arrayfire以便我的代码可以在GPU上运行,我使用以下内容做同样的事情(使用import arrayfire as af
):
for idx in af.ParallelRange(M):
afft = af.fft(a[idx,:])
虽然这是并行执行的,但它似乎不是最好的做法,也会使我的代码看起来很糟糕。
有没有办法使用af.fft
以与pyfftw
函数类似的方式或使用numpy切片的arrayfire版本消除循环?