GPU Hardware

FPGA

Field-Programmable Gate Array — микросхема программируемой логики, конфигурацию которой можно перестроить под конкретную задачу уже после производства.

Что такое FPGA

FPGA (Field-Programmable Gate Array) — интегральная схема, внутреннюю структуру которой программируют после изготовления. По-русски — ПЛИС: программируемая логическая интегральная схема.

Разница с обычным процессором принципиальная. CPU — готовая схема с фиксированным набором инструкций, вы пишете программу, и она исполняется на этой схеме. В FPGA вы описываете саму схему: конфигурация задаёт, как соединены между собой десятки тысяч логических блоков. Получается железо под вашу задачу, а не программа поверх чужого железа.

Отсюда главное свойство: FPGA не «выполняет инструкции» — она становится нужным устройством. Тот же чип сегодня работает сетевым фильтром, а завтра, после перепрошивки, обработчиком радиосигнала.

Из чего состоит FPGA

Блок Назначение
LUT (Look-Up Table) Базовая ячейка: таблица истинности, реализующая любую логическую функцию нескольких входов
Триггеры (flip-flops) Хранят состояние между тактами
DSP-блоки Готовые аппаратные умножители-накопители для математики
Block RAM Блоки памяти на кристалле
Программируемые связи Матрица соединений — именно она определяет, что во что собрано
Трансиверы, I/O Скоростные интерфейсы: Ethernet, PCIe

Конфигурация грузится при включении питания в виде bitstream — файла, описывающего состояние всех связей и ячеек.

Пишут схему на языках описания аппаратуры: Verilog или VHDL. Существует и HLS (High-Level Synthesis) — синтез схемы из кода на C/C++, что снижает порог входа, но полного контроля не даёт.

FPGA, CPU, GPU и ASIC

CPUGPUFPGA ASIC
Что это Универсальный процессор Массово-параллельный ускоритель Перестраиваемая логика Схема под одну задачу
Гибкость Любой код Параллельный код Перепрошивается целиком Не меняется никогда
Задержка Средняя, плавает Высокая, батчами Очень низкая, детерминированная Минимальная
Пропускная способность Низкая Очень высокая Средняя Максимальная
Разработка Дни Дни Недели-месяцы Годы, миллионы долларов
Когда выгодно Всегда по умолчанию Матричная математика Малые серии, низкая задержка Огромные тиражи

FPGA занимает нишу между GPU и ASIC: гибкость почти как у софта, эффективность ближе к железу. Когда тираж становится большим, FPGA обычно «застывает» в ASIC — схема уже отлажена, остаётся отлить её в кремнии.

Где применяют

  • Высокочастотный трейдинг — обработка биржевого потока за сотни наносекунд. Тут важна не средняя задержка, а предсказуемость: FPGA даёт фиксированное число тактов на операцию, без сюрпризов от планировщика ОС.
  • Сетевая обработка — фильтрация и разбор пакетов на скорости линии. Из этого направления выросли SmartNIC и DPU.
  • Цифровая обработка сигналов — радиолокация, SDR, телеком, базовые станции.
  • Видеокодирование — транскодирование потоков в реальном времени.
  • Прототипирование ASIC — схему обкатывают на FPGA до запуска дорогого производства.
  • Космос, авионика, медтехника — где нужна нестандартная логика малой серией.

Основные производители: AMD (линейка Xilinx — Alveo, Versal) и Intel/Altera (Agilex, Stratix). В облаке FPGA-инстансы предлагает AWS в семействе F.

Почему FPGA не выиграла у GPU в ML

FPGA выглядит логичным кандидатом на роль ML-ускорителя: можно построить схему точно под конкретную сеть и работать с произвольной разрядностью — например, честными 4 битами после квантизации, а не ближайшим форматом, который поддержало железо.

На практике GPU победила, и причины не в физике:

  • Экосистема.CUDA, PyTorch и готовые ядра против ручного описания схемы на Verilog. Разница в стоимости разработки — порядки.
  • Скорость итерации. Сборка bitstream (синтез, размещение, трассировка) занимает часы. Перекомпиляция CUDA-ядра — секунды. Модели меняются быстрее, чем собирается прошивка.
  • Плотная математика.Tensor Cores — это ASIC-блоки внутри GPU, заточенные ровно под матричное умножение. Переиграть их универсальной логикой FPGA сложно.

Ниша FPGA в инференсе осталась узкой: сверхнизкая задержка на малых моделях, обработка на границе сети, нестандартные форматы данных. Для обучения и сервинга LLM практический выбор — GPU.

Связанные термины

  • DPU — развитие идеи аппаратной разгрузки сетевых задач
  • GPU — конкурирующий подход к ускорению вычислений
  • CPU — универсальная альтернатива с фиксированной схемой
  • Tensor Core — специализированные блоки, обошедшие FPGA в ML
  • PCIe — интерфейс подключения FPGA-плат к серверу
  • latency — метрика, ради которой FPGA обычно и берут

Готовы запустить GPU-задачу?

Запустить GPU-сервер