Разработчик игрового программного обеспечения Дилан Бэрри (Dylan Barrie) создал собственную видеокарту. Проект FuryGPU, которым он в одиночку занимался в свободное от работы время, потребовал четырёх лет. За этот период Бэрри успел значительно подтянуть знания в инженерном деле, а именно в разработке графических ускорителей и их программировании. Его видеокарта формата PCIe, основанная на платформе Xilinx FPGA, способна запускать игру Quake.
Идея создать собственную видеокарту посетила Бэрри после его знакомства с проектом другого энтузиаста, Бена Итера (Ben Eater), собравшего с нуля программируемый 8-битный компьютер. Как можно увидеть на фотографиях, видеокарта FuryGPU выглядит как вполне типичный графический ускоритель PCIe 20-летней давности. Правда, он оснащён современными видеоразъёмами DisplayPort и HDMI. В рамках этого проекта было создано не только аппаратное обеспечение. По словам Бэрри, на самом деле самой сложной частью разработки было написание драйверов для Windows.
Бэрри начал реализовывать свою мечту о создании видеокарты после того, как взял в руки макетную плату Arty Z7 с FPGA и провёл предварительную разработку и тестирование. Впоследствии проект получил импульс благодаря дебюту системных модулей Xilinx Kria SoM (System-on-Modules), сочетающих в себе «безумно дешёвые ПЛИС Zynq UltraScale+ с массой модулей DSP, сравнительно большим количеством LUT и FF, а также усиленное ядро PCIe», объясняет энтузиаст.
Чтобы перейти от макетной платы к дизайну видеокарты, которую можно видеть на фотографиях, Бэрри самостоятельно изучил язык описания и верификации оборудования SystemVerilog, а также программный пакет KiCAD EDA/CAD для проектирования электроники. По его словам, для разработки схемы FuryGPU с 4-канальным PCIe потребовались титанические усилия, даже при наличии схемы FPGA, встроенной в SoM. После сборки FuryGPU он принялся за написание для неё программного обеспечения.
По словам энтузиаста, разработка драйвера Windows для FuryGPU оказалась «самой болезненной» частью всего проекта, даже несмотря на то, что последние 14 лет его основная деятельность была связана с программным обеспечением рендеринга графики в индустрии разработки игр. Изначально Бэрри лишь хотел создать видеокарту и доказать, что она работает, запустив на ней простой демо-ролик. Однако с развитием проекта энтузиаст поставил перед собой цель добиться приемлемого уровня производительности видеокарты в классической ПК-игре Quake.
После написания драйвера для Windows он также написал кастомный API для его взаимодействия с GPU, драйверы ядра Windows для дисплея и звука, и в итоге получил «полноценный графический ускоритель, способный отрисовывать Quake при 60 кадрах в секунду».
Ещё месяц назад Бэрри опубликовал ускоренное видео, на котором Quake работал на данной видеокарте в разрешении 720p с частотой кадров до 44. Однако, по словам разработчика, карта способна на большее. Он обнаружил некоторые узкие места, которые будет устранять при оптимизации.
FuryGPU является открытым проектом. Бэрри собирается опубликовать на сайте проекта статью, в которой подробно опишет весь процесс разработки видеокарты, опубликует схемы, драйверы, API, дополнительные материалы, а также порт игры Quake, оптимизированной под этот ускоритель.
Источник: