antonsosnitzkij
@antonsosnitzkij
студент, житель санкт-петербурга

Как реализовать GPU на ПЛИС?

Занимаюсь ПЛИС уже более года, за это время освоил VHDL, уверенно реализую конечные автоматы, а также пробовал встроенные soft-процессоры NIOS и Microblaze. Помимо этого однажды на семинаре Панчула Юрия заводил MIPS. На этом моменте хотелось бы уйти в архитектуру графических процессоров, понять принципиально важные шаги для их реализации на ПЛИС. Какую стоит литературу прочесть сначала? Как прийти к реализации GPU на FPGA? Какие подводные камни?
  • Вопрос задан
  • 1458 просмотров
Пригласить эксперта
Ответы на вопрос 2
@yatanai
Поклонник православного С
поздновато но... Смотря что вы подразумеваете под GPU. Если смотреть в историю, то все 3D акселераторы и прочее связанное с графикой это простые ядра с минимальным набором команд нужных только для определённых задач (а иногда даже "популярные" RISC ядра с FPU). В процессе эволюции сам смысл GPU как параллельной числодробилки особо не изменился. Это, разбитые на кластеры, группы ядер с простой системой команд, и очень малой памятью программ(256 команд как прим). У каждого кластера есть свои спец блоки (прим*Блоки растеризации), чтоб ускорить процессы "формирования" изображения, или всяких карт.
Если мы говорим про то, что нужно знать чтоб делать GPU как 3D рисовалку, то надо знать как строится изображения графическими библиотеками. (хотябы)
Мне помогли статьи на хабре про CPU рендере якимто профессором. Как это выглядело "снаружи"

Это всё что нужно знать о GPU а дальнейшая реализация уже на вашей фантазии. И поверьте, вариантов как сделать это просто тьма.

А проблемы с FPGA только в производительности, ибо на простеньком EP4CE22 в F24 я выжимал 1-2Gflops c 10ядерным 2х(4+1). А ещё нужна достаточно быстрая оперативка. SDR SDRAM даже для 800х600 слабо подходит. Скорее только уж треугольники в картинку превращать. Тут надо бы DDR* 400 (или выше если запустится)
PS- Мои ядра были не векторные если шо
Ответ написан
Для реализации GPU может не хватить ресурсов ПЛИС. Тут понадобится мощные типа Intel Arria и Stratix или Xilinx Virtex. Но для простых графических реализаций будет достаточно и существующих. На opencores.org есть готовые решения. Можете изучить, как они реализованы. Но для начала вам надо изучить основы для вывода графической информации. Для начала вам нужно будет освоить VGA. Так он является основой всего, даже для крутых DisplayPort и HDMI.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы