多维数组上使用Arrayfire和Python的一维fft

2024-09-30 08:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

使用pyfftw库,可以很容易地在形状为(M, 2**N)的多维数组的单个轴上执行1D 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,:])

虽然这是并行执行的,但它似乎不是最好的方法,而且也会使我的代码看起来很糟糕。在

有没有一种方法可以用类似于pyfftw函数的方式使用af.fft来消除循环,或者使用arrayfire版本的numpy切片?在


Tags: 方法代码fftnumpygpu数组interfaces形状

热门问题