使用 pyfftw 库,可以轻松地在多维形状数组的单轴上执行一维 FFT,(M, 2**N)
而无需显式循环第零索引,如下所示:
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 版本来消除循环?