|
Производительность современных GPU при вычислении FFT |
|
|
|
 |
Ответов
|
Apr 7 2018, 13:00
|
Знающий
   
Группа: Свой
Сообщений: 726
Регистрация: 14-09-06
Из: Москва
Пользователь №: 20 394

|
Вот тут английский самоделкин на GPU от Raspberry Pi БПФ-ит. Можно прикинуть производительность для "толстых" GPU. Разбивает на мелкие с доворотом между ними. Мы таким способом делали в ПЛИС БПФ на 16М. 8 реальных каналов на XC6V240, 4 потока, разбор. Частота семплирования 80МГц, на выходе 8 комплексных спектров в 8М бинов по ~5Гц с перекрытием 50%. Сейчас на Kintex Ultrascale 16 реальных каналов (семплирование ~118МГц) получилось на 4М бинов по ~7Гц с перекрытием 25%. На GPU в потоке не получилось - думали-смотрели, но не влезло (а может не осилили). Пришлось плисоводить  .
|
|
|
|
|
Apr 7 2018, 16:44
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(faa @ Apr 7 2018, 16:00)  На GPU в потоке не получилось - думали-смотрели, но не влезло (а может не осилили). Пришлось плисоводить  . Подсознательно кажется с GPU больше "подводных камней" и на начальном этапе они могут быть не видны. Нет прозрачности в пути ADC->PCIe->GPU->PCIe->Host. Цитата(faa @ Apr 7 2018, 16:00)  Сейчас на Kintex Ultrascale 16 реальных каналов (семплирование ~118МГц) получилось на 4М бинов по ~7Гц с перекрытием 25%. Пробежимся по структуре? RobFPGA, подключайтесь. Набросал по-быстрому схему, могу ошибаться, поправляйте:
Подумал, действительно, закладываться на один "жирный" FPGA смысла не имеет. В модульной структуре легче обеспечить большую ширину памяти, ПО модулей может быть одинаковым, соответственно меньше времени на компиляцию и верификацию, выше частота работы. Последовательная структура мне показалась более удобной с точки зрения передачи данных (pipeline). Есть два вопроса: 1. Ширина полосы памяти на один модуль. По самым оптимистичным оценкам достаточно обеспечить тройную (запись, чтение, коэффициенты) ширину входной полосы с ADC, приведенную к ширине внутренней арифметики. 2. Перектрытие. За счет чего обеспечить? За счет увеличения кол-ва модулей или гарантии более высокой скорости обработки?
|
|
|
|
|
Apr 7 2018, 20:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(rloc @ Apr 7 2018, 19:44)  Подсознательно кажется с GPU больше "подводных камней" и на начальном этапе они могут быть не видны. Нет прозрачности в пути ADC->PCIe->GPU->PCIe->Host. Вот вот ... Цитата(rloc @ Apr 7 2018, 19:44)  Пробежимся по структуре? RobFPGA, подключайтесь. Набросал по-быстрому схему, могу ошибаться, поправляйте: Нее - я предпочитаю медленно спустится с горы и ...  Цитата(rloc @ Apr 7 2018, 19:44)  Подумал, действительно, закладываться на один "жирный" FPGA смысла не имеет. В модульной структуре легче обеспечить большую ширину памяти, ПО модулей может быть одинаковым, соответственно меньше времени на компиляцию и верификацию, выше частота работы. Последовательная структура мне показалась более удобной с точки зрения передачи данных (pipeline). Есть два вопроса: Еще не знаем что делать но будем делать универсально и модульно  ! Цитата(rloc @ Apr 7 2018, 19:44)  1. Ширина полосы памяти на один модуль. По самым оптимистичным оценкам достаточно обеспечить тройную (запись, чтение, коэффициенты) ширину входной полосы с ADC, приведенную к ширине внутренней арифметики.
2. Перектрытие. За счет чего обеспечить? За счет увеличения кол-ва модулей или гарантии более высокой скорости обработки? Смотрим что есть на входе FFT=64K, I,Q=16 6ит, для таких N коэффициенты нужны не меньше 20 бит. Начинаем кумекать как можно это считать - например смотрим структуру FFT R22. Если не забыл то для N точек нужно N слов (I,Q) памяти для данных и N/4 слов коэффициентов. Грубо - надо 64K * 4 * 1.5 + 16K * 5 = 384 + 80 KByte, + 64 KByte + таблица для окна. ~ 528 KByte. Влезет даже в средний чип. Если нужно перекрытие %50 + еще 256K на входной буфер. Если немного по оптимизировать то часть памяти для коэффициентов и таблицу окна можно сэкономить считая на логике все на лету. Самые большие (входных и для первых stage) можно и во внешнюю память вынести (если полосы хватить). Структура FFT R22 считает семпл за такт - на заморачиваясь можно получить 300 MHz - если "котика выжать" можно получить еще 5 капе.. и 400 MHz тактовой. Ну а дальше как игра в наперстки - как крутить вертеть данными либо по очереди в один FFT - если успеваем по частоте. Либо распределяем на несколько FFT по очереди, либо и то и другое. Вот когда для конкретной системы будут такие квадратики структуры с цифрами ресурсов и со стрелочками описывающими основные потоки данных - тогда можно будет выбирать "тощий" чип и строить универсальный конвейер. Ах да - а что с данными после FFT делать не забудьте прикинуть и посчитать. Там ведь тоже будет сюрпризов. Удачи! Rob.
|
|
|
|
|
Apr 7 2018, 22:45
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(RobFPGA @ Apr 7 2018, 23:20)  будем делать универсально и модульно Да, раз есть готовое и вкусное. Цитата(RobFPGA @ Apr 7 2018, 23:20)  смотрим структуру FFT R22. Спасибо, посмотрим. Насколько сложно в алгоритме сделать переменную длину? Цитата(RobFPGA @ Apr 7 2018, 23:20)  Структура FFT R22 считает семпл за такт Выравнивающие задержки есть? Какой длины? Зависят от длины преобразования? Цитата(faa @ Apr 7 2018, 20:57)  ПЛИС одна. Память: 4 контроллера DDR3-1600 - 32х, 64х, 64х, 32х; HMC - полтора линка (х8 - слева, х16 - справа ПЛИС). Наружу: PCIe Gen3 ext x8, PCIe Gen3 ext x4, HMC - два линка х16, serdes - два линка х4 (один слева, другой справа ПЛИС). Очень тяжелый проект, и физически и морально.
|
|
|
|
|
Apr 7 2018, 23:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(rloc @ Apr 8 2018, 01:45)  Да, раз есть готовое и вкусное. Вкусы у все разные - бывает такое иногда подадут ... Цитата(rloc @ Apr 8 2018, 01:45)  Спасибо, посмотрим. Насколько сложно в алгоритме сделать переменную длину? В алгоритме то? - да запросто  А вот в реальности не всегда. Цитата(rloc @ Apr 8 2018, 01:45)  Выравнивающие задержки есть? Какой длины? Зависят от длины преобразования? Ээээ ... телепатическая манна закончилась - Вы это о чем? Цитата(rloc @ Apr 8 2018, 01:45)  Очень тяжелый проект, и физически и морально. Тяжесть выбора - груз ответственности  - мужайтесь! - щас мы Вам насоветуем ...  Удачи! Rob.
|
|
|
|
Сообщений в этой теме
rloc Производительность современных GPU при вычислении FFT Apr 4 2018, 21:05 Serg76 Занимался подобной проблемой, результат неутешител... Apr 5 2018, 06:27 rloc Цитата(Serg76 @ Apr 5 2018, 09:27) главно... Apr 5 2018, 07:00  _pv ещё новые шарки SC58x у AD c FFT ускорителями обещ... Apr 5 2018, 08:59   rloc На DSP закладываться опасно, основная проблема - в... Apr 5 2018, 09:22  Serg76 Цитата(rloc @ Apr 5 2018, 10:00) Перейду ... Apr 5 2018, 10:43 krux длинные поточные FFT удобно делать на ПЛИСах.
под ... Apr 5 2018, 06:40 _pv за/против GPU ещё наверное зависит от того есть ли... Apr 5 2018, 13:09 rloc В моем случае данных в хосте изначально нет, снача... Apr 5 2018, 13:23 _pv 2 квадратурных канала сбора данных по 16 бит, част... Apr 5 2018, 13:44 RobFPGA Приветствую!
Цитата(_pv @ Apr 5 2018, 16... Apr 5 2018, 14:29 rloc Цитата(_pv @ Apr 5 2018, 16:44) 2*16*500 ... Apr 5 2018, 17:21  RobFPGA Приветствую!
Цитата(rloc @ Apr 5 2018, 2... Apr 5 2018, 18:20   rloc Цитата(RobFPGA @ Apr 5 2018, 21:20) Моско... Apr 6 2018, 05:49 stealth-coder GPU предусматривают 2 режима обмена данными - синх... Apr 6 2018, 15:18 rloc Цитата(stealth-coder @ Apr 6 2018, 18... Apr 6 2018, 15:54  stealth-coder Цитата(rloc @ Apr 6 2018, 18:54) Так нужн... Apr 7 2018, 08:15   Serg76 Цитата(stealth-coder @ Apr 7 2018, 11... Apr 7 2018, 11:49 Serg76 Цитата(stealth-coder @ Apr 6 2018, 18... Apr 6 2018, 19:07  faa Цитата(rloc @ Apr 7 2018, 19:44) Есть два... Apr 7 2018, 17:57    faa Цитата(rloc @ Apr 8 2018, 01:45) Очень тя... Apr 8 2018, 10:13  blackfin Цитата(rloc @ Apr 7 2018, 19:44) Подумал,... Apr 8 2018, 04:52   rloc Цитата(blackfin @ Apr 8 2018, 07:52) Pipe... Apr 8 2018, 07:18 thermit Странные показатели у вас.
gtx1060 complex fft 64... Apr 7 2018, 13:04 blackfin Цитата(thermit @ Apr 7 2018, 16:04) Стран... Apr 7 2018, 13:34 thermit Очевидно, что не успевает.
Честно говоря, обработ... Apr 7 2018, 13:59
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|