Перейти к содержанию
    

Производительность современных GPU при вычислении FFT

38 minutes ago, blackfin said:

Сколько времени требуется "потоковому Radix8 на логике в GW2A" для вычисления БПФ от массива комплексных данных длиной 32768 точек ?

Назовите время между загрузкой в модуль БПФ последнего семпла под номером 32767 и временем появления на выходе модуля первого семпла вычисленного спектра.

У меня самописный, не масштабируемый БПФ. Сейчас по вашим условиям получится для:

FFT8 0,05мкС

FFT64 1,15мкС

FFT512 ~10,80мкС - когда отлажу до конца.

Другие варианты пока не писал, поэтому боюсь ошибиться в прикидках.

 

38 minutes ago, blackfin said:

Разговор глухого с немым.. :biggrin:

Дык, есть немного. Условия задачи лишь частично пересекаются.

Мне первостепенно - непрерывное преобразование нескольких символов подряд, а уж небольшая задержка  - ну как всегда не помешает.

Задержки в основном в "линиях задержки" между Radix'ами :)

Ну и множителей в ПЛИС дано всего 10-12.

 

38 minutes ago, blackfin said:

Для вычисления первого семпла спектра по схеме Radix32 Burst_I/O модулю БПФ требуется 6,55 микросекунды при условии, что сам модуль БПФ работает на частоте 500 МГц.

Упоминавшаяся тут "быстрая" схема Pipelined, Streaming I/O Xilinx'а вычисляет спектр при прочих равных условиях за 197 микросекунд:

Ну если влоб вставить  некий потоковый Radix32 в текущиий алгоритм и  собрать БПФ32768, то это займёт те же ~98500 тактов проталкивания данных по линиям задержки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, blackfin said:

Назовите время между загрузкой в модуль БПФ последнего семпла под номером 32767 и временем появления на выходе модуля первого семпла вычисленного спектра.

Для вычисления первого семпла спектра по схеме Radix32 Burst_I/O модулю БПФ требуется 6,55 микросекунды при условии, что сам модуль БПФ работает на частоте 500 МГ

Как то хитро вы в наперстки играете ...

Stream   FFT на N  точек требуется N + logRadix(N) * stage_pipeline  тактов  от первого сэмпла FFT на входе и до первого отсчета на выходе. 
Burst_IO FFT на N точек требуется  N + logRadix(N) * (N/Radix + stage_pipeline)  тактов от первого сэмпла FFT на входе и до первого отсчета на выходе. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/23/2023 at 9:27 PM, RobFPGA said:

Как то хитро вы в наперстки играете ...

Ваша ошибка в том, что вы пытаетесь загрузить входные данные в БПФ за N тактов.

А это не так.. Данные в БПФ можно загрузить за N/Radix тактов..

То же самое справедливо и для выгрузки данных из БПФ..

Но это не Xilinx, это другое.. 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, blackfin said:

Ваша ошибка в том, что вы пытаетесь загрузить входные данные в БПФ за N тактов.

А это не так.. Данные в БПФ можно загрузить за N/Radix тактов..

тоже  самое справедливо и для схемы stream,  Поэтому я взял одинаковое число в N тактов  для  ввода  данных  для обоих  случаев 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/23/2023 at 9:41 PM, RobFPGA said:

тоже  самое справедливо и для схемы stream,  Поэтому я взял одинаковое число в N тактов  для  ввода  данных  для обоих  случаев 

Да, справедливо. Поэтому Pipelined, Streaming I/O считает быстрее, чем Burst I/O, но для одинаковых Radix.

Сейчас же речь о том, что Radix64 Burst I/O считает быстрее, чем Radix2 Pipelined, Streaming I/O.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...