1D БПФ над многомерными массивами с использованием Arrayfire с Python

Используя библиотеку pyfftw, легко сделать 1D БПФ по одной оси многомерного массива формы (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 нарезки?

0 ответов

Другие вопросы по тегам