8192 микроконтроллера RISC-V, полгода сборки и результат в духе старых ПК: инженер и YouTube-автор bitluni показал домашний GPU, который умеет выводить изображение с эквивалентом разрешения 320x200. Для русскоязычной IT-аудитории здесь важен не только сам инженерный аттракцион, но и наглядный урок о том, во что упираются большие параллельные системы, если собирать их буквально поштучно.
О проекте домашний GPU сообщает The Register. По данным издания, конструкция построена вокруг 8192 микроконтроллеров CH570 на архитектуре RISC-V, каждый из которых стоит около $0,13, работает на частоте 100 МГц и имеет 12 КБ SRAM. Управляет этим массивом еще один уровень вычислений: 256 более крупных ядер с блоками FPU. В пересказе на язык привычного железа это не замена GeForce и не способ сэкономить на видеокарте, а скорее демонстрация того, как далеко можно зайти, если упрямство в проекте важнее здравого смысла.
Сам bitluni, который занимается электроникой и разработкой ПО и давно известен DIY-проектами, изначально не собирался делать именно такую машину. История началась после его прошлогоднего ролика про предыдущий самодельный GPU. После этого к нему обратилась компания Altium, выпускающая ПО для проектирования печатных плат, и предложила партнерский проект. Бюджет и инструменты подтолкнули автора не к аккуратной итерации, а к прыжку сразу в другую весовую категорию. Если прежние кластеры, по его словам, уже заметно давили на психику, то новая версия задумывалась как конструкция заведомо чрезмерного масштаба.
Первый уровень системы выглядит особенно показательно. Одна плата, которую автор называет blade, должна была содержать 32 ряда по 32 чипа. Сама плата получилась шестислойной. На бумаге схема выглядела впечатляюще, но реальность быстро вернула проект в инженерную плоскость: сайт производителя PCB попросту не смог обработать заказ из-за сложности конструкции. В итоге каждый такой модуль пришлось делить на две части. Это важная деталь: даже когда идея математически собирается, ее еще должен переварить весь производственный стек, от CAD-инструментов до сервисов заказа и логистики. В железе пределы часто возникают не в архитектуре, а на стыке архитектуры и поставки.
Где ломается красивая схема
Дальше началась та часть, которую разработчики и схемотехники узнают без подсказок. Первый тестовый blade приехал с проблемами: часть микроконтроллеров не работала, а часть работала нестабильно. Причиной оказались помехи, из-за которых пришлось полностью переделывать трассировку и переносить дорожки. За таким решением тянется еще одна типичная для hardware-стартапов и лабораторных команд цена ошибки: не только переработка дизайна, но и недели ожидания новых плат. В софте баг можно закрыть патчем вечером. В электронике баг нередко живет ровно столько, сколько занимает очередной производственный цикл.
Когда пришли исправленные тестовые платы, выяснилось, что это не финал. На одном из уровней обмена данные не проходили между level 0 и level 1, потому что в схеме были перепутаны линии MOSI и MISO: вход оказался заведен в выходной канал и наоборот. На небольшом количестве образцов автор смог обойти ошибку вручную, но сама история здесь ценнее конкретного фейла. Чем больше у вас повторяющихся узлов и уровней связи, тем меньше проект похож на набор одинаковых кирпичей и тем больше он напоминает систему, где одна неудачная линия в схеме размножает проблему на сотни или тысячи компонентов. В этом смысле домашний GPU bitluni полезен как учебное пособие по реальной цене масштабирования.
При всех проблемах проект все же заработал. Каждый микроконтроллер в кластере связан с отдельным RGB-светодиодом и индивидуально программируется, а вся система в итоге способна зажечь свой эквивалент QVGA-дисплея. На бытовом уровне это выглядит почти абсурдно: шесть месяцев работы ради изображения 320x200, которое современный смартфон считает даже не задачей, а фоновым шумом. Но именно в таком контрасте и сидит ценность проекта. Он грубо показывает, какую огромную плотность вычислений, памяти, межсоединений и инструментальной зрелости скрывает обычный серийный GPU, который мы привыкли воспринимать как товарную позицию с ценником и кулером.
Что это значит для разработчиков и индустрии
Для разработчиков в этой истории есть сразу несколько практических выводов. Во-первых, железо по-прежнему безжалостно к тем, кто недооценивает межсоединения. Архитектуру можно нарисовать красивой, но победит не та схема, где больше блоков, а та, где сигналы доходят туда, куда должны, без наводок и путаницы линий. Во-вторых, дешевые компоненты не делают систему дешевой в инженерном смысле. Если один CH570 стоит 13 центов, это еще не означает, что кластер из тысяч таких чипов становится бюджетной альтернативой видеокарте. Счет быстро начинают выставлять трассировка, прототипирование, брак, сроки поставки, ручная отладка и собственные часы жизни, которые потом уже никто не вернет.
Для бизнеса и продуктовых команд здесь другой, не менее полезный урок. Снижение цены на вычислительный узел само по себе не гарантирует прорыв. Нужны инструменты проектирования, производственная инфраструктура и нормальная цена ошибки. Иначе проект с впечатляющим BOM превращается в серию задержек, редизайнов и компромиссов. Не случайно эта история вообще случилась только после того, как у автора появился партнер в лице Altium: без бюджета и профессионального инструментария многие такие идеи так и остаются в папке с безумными черновиками.
Самая любопытная деталь на будущее звучит почти вызывающе: bitluni уже заявил, что у него есть комплектующие для следующей версии, и там речь идет не о 8192, а о 32000 микроконтроллеров. Если эта итерация действительно состоится, проект окончательно уйдет из категории «странная самоделка» в зону живого эксперимента о предельной масштабируемости любительского железа. И вот это уже интереснее самой картинки 320x200: не сможет ли культура DIY в электронике повторить путь open source из софта, где главное достижение сначала выглядит нелепо, а потом внезапно становится инженерным аргументом?