Исследователи из лаборатории Han в MIT представили LEGO — фреймворк, похожий на компилятор, который обрабатывает тензорные рабочие нагрузки (например, GEMM, Conv2D, внимание, MTTKRP) и автоматически генерирует синтезируемый RTL для пространственных ускорителей — без использования шаблонов.
Как работает «Компилятор для ИИ-чипов» — шаг за шагом
1. Deconstruct (Affine IR). Операцию с тензором записывают в виде вложенных циклов; предоставляют аффинные f{I→D} (отображение данных), f{TS→I} (поток данных) и вектор управления c. Это определяет, что и как вычислять, без использования шаблонов.
2. Architect (Graph Synthesis). Решают уравнения повторного использования → межкомпонентные соединения (прямые/с задержкой) → MST/эвристики для минимальных рёбер и объединённых потоков данных; вычисляют банковскую память и распределительные переключатели для удовлетворения одновременного доступа без конфликтов.
3. Compile & Optimize (LP + Graph Transforms). Переходят к примитивному DAG; запускают LP для согласования задержек, перестройку широковещательной передачи (MST), извлечение дерева сокращения и повторное использование контактов ILP; выполняют вывод разрядности и опциональное включение питания. Эти проходы совместно обеспечивают примерно 35% экономии площади и 28% экономии энергии по сравнению с наивной генерацией кода.
Где это место в экосистеме?
По сравнению с инструментами анализа (Timeloop/MAESTRO) и генераторами, ограниченными шаблонами (Gemmini, DNA, MAGNET), LEGO не использует шаблоны, поддерживает любые потоки данных и их комбинации и генерирует синтезируемый RTL. Результаты показывают сопоставимые или лучшие показатели по площади/мощности по сравнению с написанными вручную ускорителями при аналогичных потоках данных и технологиях, предлагая при этом возможность развёртывания одной архитектуры для многих моделей.
Важность для каждого сегмента
- Для исследователей: LEGO предоставляет математически обоснованный путь от спецификаций в виде вложенных циклов к пространственному оборудованию с доказуемыми оптимизациями на основе ЛП. Он абстрагирует низкоуровневый RTL и предоставляет значимые рычаги (тайлинг, пространственная организация, шаблоны повторного использования) для систематического исследования.
- Для практиков: это фактически аппаратное обеспечение как код. Вы можете настроить произвольные потоки данных и объединить их в одном ускорителе, позволяя компилятору выводить межкомпонентные соединения, буферы и контроллеры, одновременно сокращая накладные расходы на мультиплексоры/FIFO. Это улучшает энергоэффективность и поддерживает конвейеры с несколькими операциями без перепроектирования шаблонов вручную.
- Для руководителей проектов: снижая барьер для создания заказного кремния, LEGO позволяет создавать настроенные под задачи энергоэффективные ускорители на периферии (носимые устройства, IoT), которые идут в ногу с быстро меняющимися стеками ИИ — кремний адаптируется к модели, а не наоборот.
Резюме
LEGO реализует генерацию аппаратного обеспечения как компиляцию для тензорных программ: аффинный фронт-энд для синтеза межкомпонентных соединений/памяти с учётом повторного использования и бэкенд на основе ЛП для минимизации данных. Измеренные 3,2-кратное повышение производительности и 2,4-кратное повышение энергоэффективности по сравнению с ведущим открытым генератором, а также примерно 35% сокращение площади за счёт оптимизаций на бэкенде, позиционируют его как практический путь к созданию специализированных ИИ-ускорителей на периферии и за её пределами.
Ссылки
- [Han Lab](https://hanlab.mit.edu/projects/lego)
- [Paper](https://hanlab.mit.edu/projects/lego)
- [GitHub](https://github.com/)
- [Twitter](https://twitter.com/)
- [ML SubReddit](https://www.reddit.com/)
- [Newsletter](https://newsletters.example.com/)
1. Какие преимущества предоставляет фреймворк LEGO по сравнению с другими инструментами для генерации аппаратного обеспечения для ИИ-чипов?
Фреймворк LEGO предоставляет математически обоснованный путь от спецификаций в виде вложенных циклов к пространственному оборудованию с доказуемыми оптимизациями на основе ЛП. Он не использует шаблоны, поддерживает любые потоки данных и их комбинации и генерирует синтезируемый RTL. LEGO обеспечивает сопоставимые или лучшие показатели по площади и мощности по сравнению с написанными вручную ускорителями при аналогичных потоках данных и технологиях.
2. Какие шаги включает в себя процесс работы фреймворка LEGO?
Процесс работы фреймворка LEGO включает в себя три основных шага:
* Deconstruct (Affine IR) — операцию с тензором записывают в виде вложенных циклов; предоставляют аффинные f{I→D} (отображение данных), f{TS→I} (поток данных) и вектор управления c.
* Architect (Graph Synthesis) — решают уравнения повторного использования → межкомпонентные соединения (прямые/с задержкой) → MST/эвристики для минимальных рёбер и объединённых потоков данных; вычисляют банковскую память и распределительные переключатели для удовлетворения одновременного доступа без конфликтов.
* Compile & Optimize (LP + Graph Transforms) — переходят к примитивному DAG; запускают LP для согласования задержек, перестройку широковещательной передачи (MST), извлечение дерева сокращения и повторное использование контактов ILP; выполняют вывод разрядности и опциональное включение питания.
3. Какие результаты были получены при использовании фреймворка LEGO по сравнению с другими генераторами аппаратного обеспечения?
Результаты показывают, что LEGO обеспечивает 3,2-кратное повышение производительности и 2,4-кратное повышение энергоэффективности по сравнению с ведущим открытым генератором. Кроме того, примерно 35% сокращение площади достигается за счёт оптимизаций на бэкенде.
4. Какие возможности предоставляет LEGO для исследователей и практиков в области ИИ-чипов?
Для исследователей LEGO предоставляет математически обоснованный путь от спецификаций в виде вложенных циклов к пространственному оборудованию с доказуемыми оптимизациями на основе ЛП. Для практиков LEGO позволяет настраивать произвольные потоки данных и объединять их в одном ускорителе, позволяя компилятору выводить межкомпонентные соединения, буферы и контроллеры, одновременно сокращая накладные расходы на мультиплексоры/FIFO.
5. Какие перспективы открывает использование LEGO для руководителей проектов в области ИИ-чипов?
LEGO снижает барьер для создания заказного кремния, позволяя создавать настроенные под задачи энергоэффективные ускорители на периферии (носимые устройства, IoT), которые идут в ногу с быстро меняющимися стеками ИИ. Кремний адаптируется к модели, а не наоборот, что открывает новые возможности для разработки и внедрения ИИ-решений.