Является ли «2D fft» таким же, как два 1D fft?

#c #cuda #fft

#c #cuda #fft

Вопрос:

У меня есть код cuda, в котором я реализовал несколько 2D FFT C2C. Все они используют один и тот же план, но по какой-то причине времена для 2D FFT большие и, похоже, сильно различаются. Похоже, что БПФ одинакового размера данных занимают от 0,4 с до 1,8 с

Это для FFT 1920х1080. Эти времена кажутся разумными?

В любом случае — у меня был хороший опыт работы с быстрыми одномерными пакетами FFT CUDA. это то же самое, что использовать 1D FFT по строкам, а затем снова по столбцам матрицы, чтобы получить те же результаты, что и это 2D FFT? У меня был опыт, когда БПФ выполнялись за несколько сотых секунды в больших наборах данных для 1D FFT ранее, поэтому я надеялся, возможно, исправить некоторые из этих результатов.

Спасибо

Комментарии:

1. Помните, что здесь также происходит подразумеваемое преобразование, шаблон доступа к которому может значительно замедлить работу.

2. Это время очень велико — FFTW на Core i7 с частотой 2,67 ГГц выполнит это за < 100 мс.

Ответ №1:

Для 2D-преобразования изображения размером 1K на 1K требуется 2K 1D-преобразований. Поэтому эти времена кажутся разумными.

Для получения дополнительной информации взгляните на: http://paulbourke.net/miscellaneous/dft /