Игорь Градов
Игорь Градов
6 мин
ai

FPGA для нейросетей за $50: списанная плата тянет 8 языковых моделей локально

Запуск нейросетей на списанной FPGA-плате за 50 долларов звучит как эксперимент для инженеров с паяльником, но автор проекта openTPU доказал, что это рабочий стенд для восьми языковых моделей, и выложил каждый шаг сборки в открытый репозиторий.

FPGA для нейросетей за $50: списанная плата тянет 8 языковых моделей локально
Почему это важно

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

Проект openTPU превращает списанную серверную плату Inspur с чипом Xilinx Kintex-7 в аппаратный ускоритель для языковых моделей. Автор собрал прошивку в среде Vivado, прогнал 165 запусков восьми моделей и опубликовал замеры: от 12,5 токена в секунду на Qwen3.5-2B до 95 токенов в секунду на компактной LFM2.5-230M с 4-битными весами. Токен (token) здесь означает минимальный кусочек текста, который модель обрабатывает за один шаг. Все исходники и скрипты лежат на GitHub.

Результат оказался поучительным: матрица из 512 умножителей выдаёт 121 GOPS (миллиард операций в секунду) из 136,5 возможных, но при генерации текста использует меньше четверти мощности. Причина проста: память DDR3 загружена на 92-96 % и не успевает подвозить веса модели. Именно память, а не вычислительное ядро, определяет скорость.

Что понадобится?

  • Плата Inspur YPCB-00338 с чипом Kintex-7 XC7K480T-2, 2 канала DDR3 по 2 гигабайта. Искать на AliExpress или eBay по запросу «XC7K480T», ориентировочная цена около 50 долларов
  • Программатор JTAG для прошивки платы, около 40 долларов
  • Компьютер с PCIe-слотом (Gen2 x8 для полной скорости, но даже x1 работает с минимальной потерей при генерации)
  • Vivado 2024.2 или новее, бесплатная среда разработки от AMD/Xilinx для сборки прошивки FPGA
  • Git и PowerShell (Windows) или терминал (Linux)
  • Время: синтез и разводка занимают от 40 минут до нескольких часов в зависимости от процессора

Полный стенд обходится примерно в 100 долларов, если плата ставится прямо в PCIe-слот компьютера (плата 50 + доставка 10 + JTAG 40).

Пошаговая инструкция: от клонирования до первого запуска

  1. Клонируйте репозиторий и зафиксируйте ревизию. Репозиторий живой, поэтому привязка к конкретному коммиту гарантирует воспроизводимость результатов.
git clone https://github.com/FeSens/openTPU.git
cd openTPU
git checkout 8eaa480
  1. Установите Vivado 2024.2. Скачайте бесплатную версию с сайта AMD. При установке выберите поддержку семейства Kintex-7. Путь к Vivado пропишите в скрипте сборки (параметр $Vivado).

  2. Запустите скрипт сборки. На Windows один PowerShell-скрипт создаёт проект, генерирует IP-блоки, синтезирует схему, разводит её по кристаллу и записывает bitstream (файл прошивки).

.\run_vivado.ps1 -DDR 1066 -JOBS 8 -CORE_MHZ 133.33

Параметр -JOBS задаёт число потоков процессора. Параметр -FAST снижает частоту ядра до 100 МГц, если хотите ускорить сборку и не гнаться за максимумом.

  1. Прошейте плату через JTAG. После сборки Vivado сгенерирует bitstream-файл. Подключите программатор, откройте Hardware Manager в Vivado и загрузите прошивку на кристалл.

  2. Проверьте аппаратными тестами. В проекте предусмотрено 138 аппаратных тестов. Автор рекомендует три прогона подряд, чтобы убедиться в стабильности.

  3. Запустите языковую модель. Загрузите веса модели (например, Qwen3-0.6B в 4-битной квантизации) через PCIe в DDR3-память платы и отправьте текстовый запрос. Генерация начнётся автоматически.

Что именно получается на кристалле?

Прошивка содержит четыре подсистемы, размещённые на одном чипе:

  • Ядро openTPU на языке Verilog: матрица умножителей, векторный блок, рабочая память, DMA (прямой доступ к памяти), квантизатор (блок сжатия весов) и секвенсор (управляющий автомат)
  • Мост PCIe, IP-блок Xilinx XDMA, через который плата общается с компьютером
  • Два контроллера DDR3 из открытого проекта LiteDRAM. Внутри них работает процессор RISC-V (VexRiscv), который при старте калибрует задержки памяти. То есть рядом с TPU на кристалле крутится отдельный процессор, нужный только для настройки памяти
  • Обвязка: мост от ядра к двум каналам памяти, регистры управления, аппаратный журнал событий

По итогам сборки занято 59 % LUT (логических ячеек), 63 % блоковой памяти BRAM, 37 % DSP-умножителей и 76 % слайсов. Запас по таймингу составил 19 пикосекунд, что означает стабильную работу без ошибок на частоте 133,33 МГц.

Какие модели и на какой скорости работают?

Автор прогнал 165 запусков восьми языковых моделей. Три ключевых результата:

  • Qwen3.5-2B (модель на 2 миллиарда параметров): 12,5 токена в секунду
  • Qwen3-0.6B (600 миллионов параметров): 35 токенов в секунду
  • LFM2.5-230M (230 миллионов параметров, 4-битные веса): 95 токенов в секунду

Переход с 8-битных весов на 4-битные ускоряет генерацию в 1,4-1,8 раза. А вот переключение PCIe с x8 на x1 почти ничего не меняет при генерации, потому что узкое место не в канале связи с компьютером, а в пропускной способности DDR3-памяти на самой плате. Память работает на 92-96 % своего предела и физически не может подвозить веса быстрее.

Этот факт полезно запомнить: для FPGA-нейросетей главный ограничитель не вычислительная мощность, а скорость памяти.

Как это применить

Допустим, вы хотите запустить Qwen3-0.6B для локальной генерации текста без интернета. Клонируете репозиторий, собираете прошивку скриптом run_vivado.ps1 с параметрами по умолчанию (DDR 1066, частота 133,33 МГц), прошиваете плату через JTAG. Загружаете веса модели в 4-битном формате через PCIe. Результат: генерация около 35 токенов в секунду, потребление 9,7 ватта на весь кристалл. Это примерно 2-3 предложения в секунду, достаточно для интерактивного чат-бота, работающего полностью офлайн.

Частые ошибки

Адаптер TH3P4G3 и прошивка несовместимы. При прошивке платы через JTAG этот адаптер выключает питание при пропадании PCIe-устройства. Плату прошить не получится. Автор проекта не рекомендует этот адаптер для данной сборки.

Не работайте с main-веткой для воспроизведения замеров. Репозиторий обновляется, и на свежем коммите цифры могут отличаться. Фиксируйте ревизию 8eaa480.

Не ждите чудес от DDR3. Память загружена почти полностью. Модели крупнее 2 миллиардов параметров будут генерировать текст медленно. Это аппаратный потолок платы, а не ошибка настройки.

Проверяйте плату по фото перед покупкой на AliExpress. Автор предупреждает: могут прислать не ту плату. Ищите по маркировке «XC7K480T» и сверяйте фотографии.

Что это даёт на практике, по ролям?

Инженерам и разработчикам. Полноценный открытый TPU (Tensor Processing Unit, тензорный процессор) на FPGA за 100 долларов. Можно модифицировать архитектуру ядра, менять разрядность, экспериментировать с квантизацией. Все исходники на Verilog, лицензия открытая.

Авторам и контент-мейкерам. Понимание того, как FPGA-нейросети работают на аппаратном уровне, помогает писать технические обзоры без мифов. Когда знаете, что узкое место это память, а не чип, вы не повторяете маркетинговые клише про «мощность процессора».

Предпринимателям в РФ и СНГ. Платы Inspur доступны на AliExpress с доставкой в Россию. Vivado бесплатна. Проект не зависит от облачных сервисов и не требует подписок. Для прототипирования edge-устройств (устройств, работающих локально, без облака) это один из самых дешёвых входов в аппаратное ускорение нейросетей.

Мнение редакции dzen.guru

Проект openTPU ценен не скоростью генерации (12,5 токена в секунду на 2-миллиардной модели это медленно по меркам даже бюджетных видеокарт), а тем, что каждый элемент открыт: от Verilog-кода ядра до скриптов сборки. Это учебный стенд и платформа для экспериментов, а не конкурент GPU-инференсу. По моим наблюдениям, в России интерес к FPGA-нейросетям растёт среди тех, кто строит автономные устройства без зависимости от облака. openTPU даёт им рабочую точку входа. Честная оговорка: для задач, где нужна скорость, обычная видеокарта за сопоставимые деньги на вторичном рынке будет быстрее. FPGA выигрывает там, где важны энергоэффективность (9,7 ватта), детерминированная задержка и возможность менять архитектуру под конкретную модель.

Девять ватт, полный офлайн и открытый исходный код на каждом уровне, от транзисторной логики до скрипта запуска. Для тех, кто хочет понять, как нейросети работают на железе, а не в облаке, openTPU остаётся одним из самых доступных способов это сделать руками.

Хотите разобраться в нейросетях на практике?

В dzen.guru мы разбираем инструменты ИИ для авторов и предпринимателей, от промптов до аппаратных решений.

Перейти в dzen.guru
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

ai

От рабочей таблицы до SaaS на $30 000 в месяц: как найти идею, которая уже доказала спрос

Десятки тысяч авторов, маркетологов и предпринимателей ежедневно собирают рабочие таблицы, которые решают реальные задачи: учёт клиентов, расчёт контент-плана,…

6 мин
ИИ для создания игрушки без защиты: 13 млн детских разговоров утекли в открытый доступ
ai

ИИ для создания игрушки без защиты: 13 млн детских разговоров утекли в открытый доступ

Почему это важно Исследователь получил доступ к 13 миллионам разговоров 68 000 роботов-игрушек Eiliko по всему миру, включая данные более 31 000 детских…

6 мин
Мое исследование инструментов выявления уязвимостей в скиллах
ai

Мое исследование инструментов выявления уязвимостей в скиллах

Мое исследование инструментов выявления уязвимостей в скиллах — это задача, которую мало кто проверяет на практике: можно ли доверять автоматическим сканерам…

5 мин