реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Производительность современных GPU при вычислении FFT
rloc
сообщение Apr 4 2018, 21:05
Сообщение #1


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Коллеги, подскажите, какой максимальной производительности можно достичь на современных GPU при вычислении FFT 64К комплексных точек, 24 бит, radix-4 или более, с одинарной и двойной точностью? Среда разработки не имеет значения, нужно понять потолок производительности, с учетом полосы памяти. Если GPU умеет вычислять в потоке (streaming), то интересует минимальное время между загрузкой новых данных и выгрузкой обработанных.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Apr 5 2018, 06:27
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 043
Регистрация: 4-04-07
Пользователь №: 26 775



Занимался подобной проблемой, результат неутешительный. Непосредственно сам расчет FFT на GPU выполняется очень быстро по сравнению с CPU (выигрыш может составлять сотни раз), но главной проблемой, таким себе «бутылочным горлышком» остается обмен данными между хостом и девайсом, который «жрет» 99% времени, особенно это касается передачи данных с девайса на хост, это процедура намного медленнее, чем загрузка данных на GPU. Если данные не забирать после расчета, то смысл в этом есть, а так все печально, конечно. Карточка, с которой игрался - бюджетный GeForce GTX750ti/128 bit/1 Gb GDDR5
Go to the top of the page
 
+Quote Post
krux
сообщение Apr 5 2018, 06:40
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 685
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



длинные поточные FFT удобно делать на ПЛИСах.
под них заточен алгоритм Cooley-Tukey. вполне можно в реалтайме обрабатывать 64Msps 16bit размером в 32M точек в целочисленке.
Go to the top of the page
 
+Quote Post
rloc
сообщение Apr 5 2018, 07:00
Сообщение #4


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Serg76 @ Apr 5 2018, 09:27) *
главной проблемой, таким себе «бутылочным горлышком» остается обмен данными между хостом и девайсом

Вы можете сказать, чем определяется производительность обмена данными?

Перейду к конкретике. Допустим, есть 2 квадратурных канала сбора данных по 16 бит, частота 100 МГц (в перспективе больше, до 500 МГц и выше). Квадратурные каналы - аналоговые, нужно предварительно подкорректировать смещение нуля, фазы и амплитуды. Потом - FFT с заданным количеством точек (для конкретики - 64К), матобработка между каналами, накопление. На выходе - поток не большой, возможно в разы меньше входного. Насколько легко современные GPU способны "переваривать" такие задачи? В первую очередь конечно интересует скорость FFT, в идеале - с 50% перекрытием, в худшем случае - с минимальными разрывами в обработке.

Цитата(krux @ Apr 5 2018, 09:40) *
длинные поточные FFT удобно делать на ПЛИСах.

Да, в части FPGA мне все более-менее понятно, по гибкости и ширине полосы памяти (внутренней) возможностей значительно больше.
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 5 2018, 08:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 539
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



ещё новые шарки SC58x у AD c FFT ускорителями обещают ~5нс на отсчёт, (1к ФФТ за 5 мкс)
то есть 100МГц с 50% перекрытием пережевать вроде должны.
Go to the top of the page
 
+Quote Post
rloc
сообщение Apr 5 2018, 09:22
Сообщение #6


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



На DSP закладываться опасно, основная проблема - в гибкости проектирования. Скажем, захочу перейти на radix-16, radix-32 ... Что делать в этом случае? Не позволяет DSP разменивать память на вычислительные ресурсы. С GPU чувствую такая же проблема будет.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Apr 5 2018, 10:43
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 043
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(rloc @ Apr 5 2018, 10:00) *
Перейду к конкретике. Допустим, есть 2 квадратурных канала сбора данных по 16 бит, частота 100 МГц (в перспективе больше, до 500 МГц и выше). Квадратурные каналы - аналоговые, нужно предварительно подкорректировать смещение нуля, фазы и амплитуды. Потом - FFT с заданным количеством точек (для конкретики - 64К), матобработка между каналами, накопление. На выходе - поток не большой, возможно в разы меньше входного. Насколько легко современные GPU способны "переваривать" такие задачи? В первую очередь конечно интересует скорость FFT, в идеале - с 50% перекрытием, в худшем случае - с минимальными разрывами в обработке.

Прогнал тест, при таких нач.условиях ( i/q 16 bit, FFT Size = 64K) получилась скорость входного потока порядка 3 Gbit/s, т.е. практически Ваши 100 МГц. если взять более топовую карту, то думаю будет по-веселее
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 5 2018, 13:09
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 539
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



за/против GPU ещё наверное зависит от того есть ли эти 3, а в перспективе до 15 Гбит/с уже в ПК или их ещё туда засунуть надо?
Go to the top of the page
 
+Quote Post
rloc
сообщение Apr 5 2018, 13:23
Сообщение #9


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



В моем случае данных в хосте изначально нет, сначала плата оцифровки должна передать их по шине PCIe, и возможно, если она умеет быть мастером, то напрямую в GPU. Вопрос, что является узким звеном в этом обмене?

Цитата(_pv @ Apr 5 2018, 16:09) *
в перспективе до 15 Гбит/с

Откуда берется эта цифра?
Go to the top of the page
 
+Quote Post
_pv
сообщение Apr 5 2018, 13:44
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 539
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



2 квадратурных канала сбора данных по 16 бит, частота 100 МГц (в перспективе больше, до 500 МГц и выше)
2*16*100 = 3.2ГБит/с
2*16*500 = 16ГБит/с
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Apr 5 2018, 14:29
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 182
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(_pv @ Apr 5 2018, 16:44) *
2 квадратурных канала сбора данных по 16 бит, частота 100 МГц (в перспективе больше, до 500 МГц и выше)
2*16*100 = 3.2ГБит/с
2*16*500 = 16ГБит/с

Если Вам надо закапчить пару гигабайт данных и потом пережевывать FFT и считать хитрую математику то можно попыхтеть и на GPU. Если же надо работать непрерывно с потоком то лучше потратить время с FPGA - лет 7-10 назад делал похоже на 4 Virtex - 2 канала 16 бит/250MHz, 16K FFT с перекрытием 50%, с кросс-кореляцией и с накоплением. Сейчас такое можно собрать на готовом модуле с Artix/Kintex/Zynq от $300 будет заодно и интерфейс к ADC и выдача результата через Ethernet.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
rloc
сообщение Apr 5 2018, 17:21
Сообщение #12


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(_pv @ Apr 5 2018, 16:44) *
2*16*500 = 16ГБит/с

Решил, что ограничение в 3 Гбит/c (в конкретном примере) было больше связано с интерфейсом, по первым ответам.

По моим расчетам, узким местом в GPU может быть ограниченная полоса памяти и возможность ее эффективного использования в случае рандомного доступа. Насколько эффективно компиляторы могут оптимизировать алгоритм - для меня темный лес, что и хотелось выяснить, с экстраполяцией результатов на Pascal GP100/Radeon RX Vega с памятью HBM2 2048 бит.

Цитата(RobFPGA @ Apr 5 2018, 17:29) *
делал похоже на 4 Virtex - 2 канала 16 бит/250MHz, 16K FFT с перекрытием 50%, с кросс-кореляцией и с накоплением.

С удовольствием посмотрел бы на рабочий образец в действии ) Продолжение было?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Apr 5 2018, 18:20
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 182
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(rloc @ Apr 5 2018, 20:21) *
Решил, что ограничение в 3 Гбит/c (в конкретном примере) было больше связано с интерфейсом, по первым ответам.
...
С удовольствием посмотрел бы на рабочий образец в действии ) Продолжение было?

А че на него смотреть - сначала был PCIX модуль на базе Virtex4SX35 от Московской ISYS.
Потом сделали свой на базе модуля на Spartan6 и Artix7. Причем FFT обработка была на Spartan6!
а Artix7 использовался для интерфейсов 1G Ethernet и либо PCIe x4 либо Ethernet 10G.

Ну а продолжение потом было на Virtex5 - в realtime считался поток 6.6 GByte/s (12 бит/2.2GHz), правда FFT всего 512 точек но зато обработка каждого спектра геморройная.
Ну а на сегодняшнем железе ( UltaScale, UltaScale+ ... ) такие чудеса можно наворотить....

Успехов! Rob.


Go to the top of the page
 
+Quote Post
rloc
сообщение Apr 6 2018, 05:49
Сообщение #14


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 309
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(RobFPGA @ Apr 5 2018, 21:20) *
Московской ISYS.

БукоФФки не хватает. Знаком с компанией ни один десяток лет. Как раз недавно ведущий разработчик делал доклад в тему:

https://www.youtube.com/watch?v=pmLUZ8hFoa0
Go to the top of the page
 
+Quote Post
stealth-coder
сообщение Apr 6 2018, 15:18
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 27-12-08
Пользователь №: 42 786



GPU предусматривают 2 режима обмена данными - синхронный и асинхронный. Скорость копирования в асинхронном режиме ограничивается только скоростью памяти хоста и карточки и скоростью PCIe, со скоростью 15 Гбит/с на мощном железе не должно возникнуть проблем, такую скорость дает PCIe Gen 2 x4, для DDR 1600 МГц/64 бита это вообще ни о чем. В задаче ТС больше вопросов может возникнуть к карточке, скорость вычислений сильно зависит, например, от разрядности шины. Вообще информация по FLOP для разных карточек есть в интернете, для БПФ сделать оценку требуемой производительности не составляет труда.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th August 2018 - 07:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.00971 секунд с 7
ELECTRONIX ©2004-2016