3D-игры, работающие на FPGA, оказались в 50 раз эффективнее, чем на оборудовании x86

Sphery vs. shape — это 3D-игра с трассировкой лучей с открытым исходным кодом, написанная на C и преобразованная в битовый поток FPGA, которая работает в 50 раз эффективнее на оборудовании FPGA, чем на процессоре AMD Ryzen.

Языки Verilog и VHDL, обычно используемые в FPGA, плохо подходят для разработки игр или других сложных приложений, поэтому Виктор Суарес Ровере и Джулиан Кеммерер полагались на С-подобный язык описания оборудования (HDL) – PipelineC Джулиан и инструмент CflexHDL Виктор, которые включают анализатор/генератор и библиотеку математических типов для того, чтобы запустить тот же код на ПК со стандартной компиляцией и на FPGA через пользовательский переводчик C на VHDL.

Более подробная информация о разработке игры и результатах представлена ​​в официальном документе.

Требовались некоторые математические функции, в том числе: сложение с плавающей запятой, вычитание, умножение, деление, обратные вычисления, квадратный корень, обратные квадратные корни, векторные скалярные произведения, нормализация векторов и т. д. Аналоги с фиксированной запятой также использовались из соображений производительности и для упрощения установки конструкции в целевую FPGA с соответствующими преобразованиями в другие типы (целые числа и числа с плавающей запятой).

Они скомпилировали игру дважды: один раз для запуска на 7-нанометровом процессоре Ryzen 4900H с 8 ядрами/16 потоками с тактовой частотой до 4,4 ГГц (45 Вт TDP) под управлением Linux, а второй раз оптимизировали для работы на оборудовании FPGA, а именно на плате Digilent Arty A7-100Tс FPGA 101k LUT (Xilinx Artix-7 XC7A100TCSG324-1).

Обе платформы могли запускать игру плавно, а решение FPGA могло отображать игру со скоростью 60 кадров в секунду при разрешении 1920 × 1080, но основное различие заключалось в энергопотреблении: плата FPGA потребляла всего 660 мВт, в то время как ПК потреблял 35 Вт. Учтите, что, насколько мы понимаем, игра вообще не использует GPU в процессоре Ryzen, а для ускорения игры использовались SIMD-инструкции. Аналогичная игра, использующая графический процессор для ускорения 3D-графики, может потреблять меньше, но все же значительно больше, чем плата FPGA. С другой стороны, используемая FPGA была изготовлена ​​по 28-нм техпроцессу, и можно ожидать до 6-кратного повышения эффективности от FPGA, построенной по тому же 7-нм техпроцессу, что и процессор Ryzen.

Вы можете посмотреть видео ниже, чтобы объяснить дизайн и демонстрацию игры Sphery vs. shape с 3D-трассировкой лучей, смоделированной на ЦП и на плате Arty-7 FPGA.

Более подробную информацию вы найдете в репозитории PipelineC-Graphics на GitHub. Хотя графическая демонстрация довольно крутая, в официальном документе также объясняется, что PipelineC также можно использовать для других проектов или продуктов с жестким режимом реального времени и/или низкими требованиями к энергопотреблению. К ним относятся аэрокосмические приложения, где мощность и вес имеют первостепенное значение, промышленные системы управления, требующие высокой надежности и обработки в реальном времени, более легкие гарнитуры виртуальной/дополненной реальности, фильтрация пакетов в сетевых приложениях, а также приложения для обеспечения безопасности и криптографии.

В будущем примеры для всех вышеупомянутых приложений будут реализованы вместе с ЦП RISC-V и симулятором. Они также планируют разработать ASIC с открытым исходным кодом на кремниевой ИС и инструменты с открытым исходным кодом, а также выпустить ленту.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments