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
| CPU | GPU | FPGA | 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-сервер