98 lines
8.5 KiB
HTML
98 lines
8.5 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Нейронки на FPGA — практический гайд</title>
|
||
<style>
|
||
:root{--bg:#0f1115;--card:#171a21;--ink:#e8eaf0;--dim:#9aa3b2;--acc:#7aa2ff;--acc2:#7ee0b8;--warn:#ffb86c}
|
||
*{box-sizing:border-box}
|
||
body{margin:0;font:16px/1.65 -apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
|
||
.wrap{max-width:860px;margin:0 auto;padding:40px 24px 80px}
|
||
h1{font-size:30px;line-height:1.25;margin:0 0 6px}
|
||
h2{font-size:21px;margin:40px 0 12px;color:var(--acc)}
|
||
h3{font-size:17px;margin:24px 0 8px;color:var(--acc2)}
|
||
p,li{color:var(--ink)}
|
||
.lead{color:var(--dim);font-size:15px;margin:0 0 8px}
|
||
.card{background:var(--card);border:1px solid #262b36;border-radius:14px;padding:20px 22px;margin:16px 0}
|
||
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:15px}
|
||
th{color:var(--dim);text-align:left;font-weight:600;border-bottom:1px solid #2c3242;padding:8px 10px}
|
||
td{border-bottom:1px solid #20242f;padding:8px 10px;vertical-align:top}
|
||
td b{color:var(--acc2);white-space:nowrap}
|
||
code{background:#0c0e12;border:1px solid #262b36;border-radius:6px;padding:1px 6px;font-size:14px;color:var(--warn)}
|
||
.tag{display:inline-block;background:#1c2436;color:var(--acc);border-radius:99px;padding:2px 10px;font-size:13px;margin-right:6px}
|
||
.note{border-left:3px solid var(--warn);padding:10px 14px;background:#1c1a12;border-radius:0 10px 10px 0;color:var(--dim);font-size:15px}
|
||
ul{margin:8px 0;padding-left:22px}
|
||
li{margin:5px 0}
|
||
a{color:var(--acc);text-decoration:none}
|
||
footer{margin-top:48px;color:var(--dim);font-size:13px;border-top:1px solid #262b36;padding-top:16px}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
|
||
<p class="lead">Ответ на вопрос Андрея из лаборатории • кооператив 42 • 2026-10-02</p>
|
||
<h1>🧠 Нейронки на FPGA: что реально, что стоит и с чего начать</h1>
|
||
<p class="lead">Короткий практический гайд: что запускается, сколько стоит железо, когда FPGA оправдан, а когда проще взять TPU/микроконтроллер.</p>
|
||
|
||
<div class="note" style="margin-top:28px">⚡ <b>Суть в одну строку:</b> маленькие квантованные сети на FPGA — да, рабочий кейс; полноценные LLM — нет (упираются в память и пропускную способность). FPGA — про микро-задержки и кастомный пайплайн, не про большие модели.</div>
|
||
|
||
<h2>1. Что реально запускается на FPGA</h2>
|
||
<div class="card">
|
||
<p>На FPGA живёт класс <span class="tag">TinyML</span><span class="tag">hls4ml</span><span class="tag">FINN</span> — квантованные (INT8/INT4) сети на миллионы параметров:</p>
|
||
<ul>
|
||
<li>распознавание звука («hey device»-киворды, классификация команд);</li>
|
||
<li>зрение: детекция лиц/жестов, классификаторы уровня MobileNet / small ResNet;</li>
|
||
<li>тайм-серии: сенсоры, вибрация, предсказание отказов.</li>
|
||
</ul>
|
||
<p>Квантованные CNN идут с латентностью в <b>микросекунды–миллисекунды</b> — это то, что делает FPGA уникальным: детерминированный отклик, предсказуемый тайминг, полный контроль над пайплайном.</p>
|
||
<p>А вот трансформеры/LLM — не вариант: веса гигабайты, и всё упирается в пропускную способность памяти (у FPGA её на порядки меньше, чем у GPU).</p>
|
||
</div>
|
||
|
||
<h2>2. Железо: цена вопроса</h2>
|
||
<table>
|
||
<tr><th>Бюджет</th><th>Платы</th><th>Что получаешь</th></tr>
|
||
<tr><td><b>~$100–300</b></td><td>ULX3S, iCEBreaker, Tang Mega</td><td>«Пощупать»: крошечные сети, учебные проекты (hls4ml, TinyML). Энтузиазм, но AI-стек придётся собирать самому.</td></tr>
|
||
<tr><td><b>~$150–250</b></td><td>PYNQ-Z2, Kria KV260</td><td>Классика для нейронок: готовый AI-стек Xilinx (Vitis AI, DPU), нормальные квантованные CNN. <b>Kria — самый простой вход</b>, рекомендую начинать с неё.</td></tr>
|
||
<tr><td><b>~$1000–3000</b></td><td>ZCU104, Alveo</td><td>Более крупные модели, но это уже ниша (наука/прототипы), дорого за «минимальную нейронку».</td></tr>
|
||
</table>
|
||
|
||
<h3>Честные не-FPGA альтернативы</h3>
|
||
<table>
|
||
<tr><th>Плата</th><th>Цена</th><th>Когда лучше</th></tr>
|
||
<tr><td>Google Coral TPU (USB)</td><td><b>~$60</b></td><td>Просто инференс квантованной модели — обычно проще и дешевле FPGA</td></tr>
|
||
<tr><td>Jetson Orin Nano</td><td><b>~$249</b></td><td>Когда нужна полноценная CUDA и модели покрупнее</td></tr>
|
||
<tr><td>ESP32-S3</td><td><b>~$5</b></td><td>Совсем маленькие сети на устройстве — «дёшево и сердито»</td></tr>
|
||
</table>
|
||
|
||
<h2>3. Когда связка «нейронка + FPGA» осмысленна</h2>
|
||
<div class="card">
|
||
<p><b>(а) LLM пишет HDL.</b> Самое интересное: языковая модель не <i>работает</i> на FPGA, а <i>пишет/правит цифровую логику</i> для неё (генерация Verilog/VHDL) — это уже рабочий кейс. LLM как проектировщик железа, FPGA как исполнитель.</p>
|
||
<p><b>(б) FPGA как тело устройства с tinyML-мозгом.</b> Устройство с микро-задержкой отклика распознавает жест/звук/образ и тут же управляет железной логикой. Вот тут квантованная сеть FPGA даёт уникальные качества (энергопотребление, латентность, предсказуемость).</p>
|
||
</div>
|
||
|
||
<h2>4. Реальные проекты-ориентиры</h2>
|
||
<ul>
|
||
<li><b>FINN</b> (Xilinx/AMD) — фреймворк для полностью бинаризованных и квантованных сетей прямо в RTL. Лучший вариант для «сеть = железо».</li>
|
||
<li><b>hls4ml</b> (CERN) — компиляция моделей Keras/PyTorch в HLS, популярен в физике, отличная документация.</li>
|
||
<li><b>NVDLA</b> (NVIDIA, open source) — открытый ускоритель глубокого обучения, куда можно расти по сложности.</li>
|
||
<li><b>Vitis AI + DPU</b> — «заводской» путь от AMD: обучил ONNX → квантовал → запустил на DPU (Kria/ZCU), почти без HDL.</li>
|
||
</ul>
|
||
|
||
<h2>5. Рекомендация для старта</h2>
|
||
<div class="card">
|
||
<ol>
|
||
<li>Взять <b>Kria KV260</b> (~$250) — готовый AI-стек из коробки.</li>
|
||
<li>Прогнать туториал <b>Vitis AI</b>: ONNX-модель → INT8-квантование → инференс на DPU за вечер.</li>
|
||
<li>Второй проход — <b>hls4ml</b> с маленькой моделью, чтобы почувствовать кастомный путь.</li>
|
||
<li>Параллельно — поэкспериментировать, как <b>LLM генерирует HDL</b> для простого блока (это к идее Андрея).</li>
|
||
</ol>
|
||
<p class="lead">Итого: старт ≈ $250, первый работающий инференс — в первый вечер, дальше оттачиваем сценарии.</p>
|
||
</div>
|
||
|
||
<footer>
|
||
<i>Simbiot • кооператив 42</i> — если хочется глубже (бенчмарки точности после квантования, подбор модели под конкретную идею Андрея) — скажи, сделаю развёрнутый разбор.
|
||
</footer>
|
||
</div>
|
||
</body>
|
||
</html>
|