«Крошечный» графический процессор из 200 000 транзисторов TinyGPU v2.0 готовят к выпуску в кремнии

в 12:06, , рубрики: Новости

Любитель FPGA и ретро?ПК Понгсагон Вичит (Pongsagon Vichit) представил TinyGPU v2.0 — автономный графический процессор, способный выполнять полный цикл базового 3D-рендеринга: от преобразований и освещения до растеризации. Проект отправлен на производство через инициативу Tiny Tapeout и должен быть реализован в виде чипа примерно из 200 000 транзисторов в максимальной конфигурации 4×4 тайла. Для сравнения: флагманский Nvidia GeForce RTX 5090 содержит 92,2 млрд транзисторов, но TinyGPU изначально задуман как минималистичный, а не производительный ускоритель.

Вичит (известен под ником @MattDIYgraphics) демонстрирует работу TinyGPU v2.0 на FPGA-плате Basys3: прошитый в чипе дизайн загружает 3D?модели из встроенной памяти и позволяет вращать их в реальном времени с помощью геймпада Super Nintendo. Тем же контроллером можно менять положение источника света. Такая демонстрация подчёркивает ключевую идею проекта — реализовать «настоящий» 3D?конвейер в предельно ограниченном транзисторном бюджете.

Технически TinyGPU v2.0 работает на частоте 25 МГц и выдаёт частоту кадров около 7,5–15 fps. Рендеринг выполняется в разрешении до 320×240 пикселей и с 4-битным цветом, то есть до 16 одновременных оттенков на экране. Автор отдельно отмечает, что версия в кремнии на базе Tiny Tapeout не будет работать быстрее демонстрации на Basys3, поэтому ждать от неё «игрового» уровня производительности не стоит.

«Крошечный» графический процессор из 200 000 транзисторов TinyGPU v2.0 готовят к выпуску в кремнии
Источник: Pongsagon Vichit / X

Несмотря на параметры, напоминающие домашние компьютеры начала 1980-х, внутри реализованы функции, характерные для более поздних поколений графики. TinyGPU v2.0 выполняет интерактивное преобразование 3D?векторов в растровое изображение и использует аппаратные блоки трансформации и освещения — подход, который широко вышел на потребительский рынок с появлением Nvidia GeForce 256 в октябре 1999 года. Под трансформацией здесь понимаются математические операции поворота, масштабирования и проекции 3D?модели на экран, а под освещением — вычисление яркости поверхностей с учётом источника света.

Среди заявленных возможностей TinyGPU v2.0: 4-битный двойной буфер кадра (два кадровых буфера для плавного вывода), 8-битный буфер глубины в QSPI RAM (памяти с последовательным интерфейсом, используемой для хранения информации о расстоянии до пикселей), поддержка до 1 000 треугольников на сцену, отсечение невидимых граней (backface culling), один динамический направленный источник света и плоское закрашивание, при котором цвет задаётся для целого треугольника.

Проект подан на следующий запуск Tiny Tapeout: максимальная конфигурация в 16 тайлов обойдётся автору примерно в $1500. Исходные код на Verilog и документация доступны в репозитории на GitHub, что делает TinyGPU v2.0 полностью открытой платформой для изучения и модификации. Вичит ранее участвовал в Tiny Tapeout 7 с проектом Tiniest GPU, поддерживавшим всего два полигона, но работавшим на 50 МГц с выводом 640×480 пикселей, 6-битным цветом и до 60 fps.

Значение TinyGPU v2.0 не в конкуренции с коммерческими GPU, а в демонстрации того, как полный аппаратный 3D-конвейер можно реализовать в крайне ограниченном транзисторном бюджете и открыть для детального изучения.

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js