openTPU: открытый ИИ-ускоритель, «разработанный ИИ», запустил десять моделей на FPGA

openTPU, открытый проект ускорителя для нейросетей, который в README назван «разработанным ИИ». Он продолжает более раннюю работу auto-arch-tournament и задаёт два вопроса: как далеко ИИ-агенты могут зайти в проектировании аппаратуры и смогут ли они построить чип, на котором запускается их собственный вывод (инференс).
Всё лежит в одном небольшом репозитории, который можно прочесть целиком: аппаратный дизайн на SystemVerilog, набор инструкций, побитово точный симулятор, язык для ядер (kernel) с компилятором и хост-программы для реальной PCIe-платы. Авторы позиционируют проект и как учебный: от умножения матриц на Python до проводов.
Железо, плата Inspur YPCB-00338 с FPGA Xilinx Kintex-7 xc7k480t и двумя каналами DDR3. Рабочий образ тактируется на 133,33 МГц, содержит контроллеры LiteDRAM (их калибрует небольшой процессор внутри блока памяти), четырёхколоночный систолический матричный блок и потоковый движок. Память, DDR3-1066 с пиком 17,1 ГБ/с. Хост, компьютер с Intel Core i7-4790. Устройство простое по замыслу: секвенсор выдаёт по одной инструкции за такт, нет кэша и скрытого планирования, каждое перемещение данных, это инструкция, поэтому трассировка показывает, куда уходят такты. Для разбора трасс есть профайлер Lens.
На плате запущены десять современных моделей с настоящими весами; по README, каждая конфигурация совпадает с симулятором токен в токен. Замеры датированы 29 сентября, 1 октября 2026 года. Генерация (декодирование) упирается в пропускную способность памяти: сборка B даёт на LFM2-2.6B, SmolLM3 и Phi-4-mini на 8-9% больше скорости (Gemma 4 E2B, на 10%) и доходит до 91-94% пика памяти вместо 82-87%. Скорость генерации с 4-битными весами при выдаче логитов на хост (устройство / с учётом хоста, токенов в секунду): LFM2, 89,5 / 84,5; Qwen3, 33,7 / 33,3; Qwen3.5, 24,6 / 24,2; LFM2-2.6B, 11,07 / 11,02; SmolLM3-3B, 8,92 / 8,89; Phi-4-mini, 6,69 / 6,67. В собственном цикле генерации платы Gemma 4 E2B выдаёт 11,01 / 12,73 токена/с (голова int8 / 4-битная), E4B, 3,83 токена/с.
Предыдущий образ se-cand3 использовал Xilinx MIG, двухколоночный матричный блок и частоту 120,755 МГц. Новый образ в генерации отличается от него не более чем на 2,3% в каждой конфигурации, а обработка промпта (prefill) быстрее в 1,3 раза (Qwen3.5), 2,0 раза (LFM2 в 4 битах). Калибровка обоих каналов DDR3 при старте занимает 12 секунд без участия хоста.
Модели типа «смесь экспертов» (MoE), не помещающиеся в 4 ГиБ платы, работают с подкачкой экспертов с хоста. LFM2.5-8B-A1B (8,5 млрд параметров, 1,7 млрд активных) выдаёт 10,6 токена/с на 160 токенах (попадание в слоты 98,5%, 5,2 МБ на токен). Qwen3.5-35B-A3B (34,7 млрд параметров, 3,0 млрд активных), 3,95 токена/с: попадание 62%, 153 МБ на токен при 1,41 ГБ/с по PCIe. Обе совпадают с симулятором бит в бит. 4-битный формат (значения FP4 с двухуровневыми блочными масштабами, 4,25 бита на вес, голова модели в int8) ускоряет генерацию на 40% (Qwen3.5), 45% (Qwen3, LFM2) ценой измеримого роста перплексии.
В планах: довести эффективность чтения DRAM (сейчас 82-85% пика), поработать над запасом по таймингам (WNS +0,032 нс) и площадью и ускорить prefill, который упирается в скорость умножения матричного блока. Сроков в README нет. Все, кроме самой платы, запускается на ноутбуке; для большинства вкладов хватает Python и Verilator. Лицензия, Apache 2.0.
Ключевые факты
- openTPU, открытый проект (Apache 2.0): аппаратный дизайн на SystemVerilog, набор инструкций, побитово точный симулятор, компилятор и хост-программы в одном репозитории; в README назван «разработанным ИИ».
- Десять современных моделей с настоящими весами работают на FPGA-плате Inspur YPCB-00338 (Kintex-7 xc7k480t, два канала DDR3); по README, результат совпадает с симулятором токен в токен.
- Скорость упирается в память: у Qwen3 с 4-битными весами 33,7 токена/с, у LFM2-2.6B, 11,07, у Phi-4-mini, 6,69; сборка B доходит до 91, 94% пика DRAM.
- MoE-модели больше памяти платы работают с подкачкой экспертов с хоста: LFM2.5-8B-A1B, 10,6 токена/с, Qwen3.5-35B-A3B, 3,95 токена/с.
- Замеры сделаны 29 сентября, 1 октября 2026 года; по сравнению с прежним образом se-cand3 генерация та же (в пределах 2,3%), а prefill быстрее в 1,3, 2,0 раза.
Почему это важно
Проект отвечает на практический вопрос, о котором говорят его авторы: могут ли ИИ-агенты сделать не только программу, но и чип, на котором работает их собственный вывод. Здесь это не макет: дизайн собран в рабочий образ для реальной PCIe-платы и запускает десять современных моделей с настоящими весами, включая MoE-модель на 34,7 млрд параметров. Дополнительная ценность, открытость всей цепочки от Python-ядра до SystemVerilog под лицензией Apache 2.0.
Кому это важно
Тем, кто хочет понять устройство ИИ-ускорителя: в README проект прямо назван учебным, а в конце приведён порядок чтения файлов (набор инструкций, симулятор, RTL, документы по моделям). Также он интересен разработчикам FPGA и компиляторов, а тем, кто следит за темой «ИИ проектирует железо», дает конкретный открытый пример для изучения.
Как это применить
Без платы можно работать на ноутбуке: установить пакет через pip, прогнать тесты pytest (для тестов RTL нужен Verilator 5), скачать модель LFM2.5-230M и запустить чат на симуляторе командой otpu-chat --model lfm2 --backend isa. С платой Inspur YPCB-00338 нужно собрать битстрим (make bit), загрузить его по JTAG, выполнить otpu-setup и запустить otpu-chat --backend board. Вклады в виде issues и pull request приветствуются; изменения ISA, симулятора и RTL должны проходить тесты, а заявления о производительности должны описывать метод замера.
Можно ли доверять
Все данные взяты из README самого проекта и представлены его авторами; независимых проверок в тексте нет. Плюсы: в README указаны даты замеров, версии образов, методика (64 жадных токена после промпта в 512 токенов) и источник данных о трафике DRAM, счётчики самой платы. Утверждение о совпадении с симулятором токен в токен тоже принадлежит README. В тексте не указано, какие именно ИИ-агенты проектировали аппаратуру и какова была роль людей, поэтому формулировка «разработан ИИ» остаётся заявлением проекта.
Риски и подводные камни
Скорости скромные: 3,95 токена/с на Qwen3.5-35B-A3B и 3,83 токена/с на Gemma 4 E4B, а генерация упирается в память (чтение DRAM на уровне 82-85% пика DDR3-1066). Запас по таймингам на 133,33 МГц минимален (WNS +0,032 нс). 4-битные веса дают измеримый рост перплексии. Сравнения с GPU, TPU Google и другими ускорителями, а также данных об энергопотреблении в тексте нет, так что оценить место проекта среди коммерческих решений по нему нельзя.
«Ускоритель ИИ с открытым исходным кодом, разработанный ИИ.»
— README проекта openTPU