К содержимому
Журнал QIO

ИИ и автоматизация3 мин чтения

Планировщик команд для Эльбруса: почему LLM проиграла жадному алгоритму

Процессор Эльбрус с архитектурой VLIW требует, чтобы компилятор заранее расписал операции по каналам и тактам. Автор исследования на Хабре построил такой планировщик команд и проверил, может ли языковая модель Qwen заменить классический жадный алгоритм. Ответ: сама по себе нет, в связке — да.

Планировщик команд для Эльбруса: почему LLM проиграла жадному алгоритму

Почему на VLIW расписание считает компилятор

В обычных процессорах порядок исполнения подбирает само железо. В VLIW, на которой построен Эльбрус, одна широкая команда содержит несколько операций, и решать, что в какой канал и такт положить, должен компилятор. Ошибка расписания не ломает программу, но замедляет её: каналы простаивают, зависимые операции ждут.

У e2k-v6 ограничения жёсткие: умножение идёт только по четырём каналам с задержкой 4 такта, деление по одному каналу с задержкой 11 тактов, загрузка по четырём каналам с задержкой 5, сохранение по двум. Автор снял эти параметры тремя способами: опросом матрицы портов у ассемблера lcc, замером задержек цепочками зависимых операций и измерением пропускной способности потоком независимых.

Мы применяем ту же схему в автоматизации: модель классифицирует и предлагает, а действия с последствиями выполняет детерминированный код. Исследование про Эльбрус показывает на цифрах, почему это работает лучше, чем доверить модели всё.

Жадный алгоритм и его предел

Стандартный планировщик принимает жадные необратимые решения: берёт готовую операцию и кладёт в первый свободный канал. На простых графах из 6–14 узлов он почти безупречен: 298–300 из 300 расписаний оптимальны. На трудном наборе из 300 графов разрыв до оптимума составил 1,03 такта в среднем, а точных решений не оказалось вовсе. Разрыв измерим и доказуем, значит есть что улучшать.

Два измерительных прибора, сравнение жадного алгоритма и связки с моделью
Разрыв до оптимума: 1,03 такта у жадного алгоритма против 0,82 у связки.

Что показала языковая модель

Первая попытка — отдать расписание модели Qwen2.5-3B целиком. Результат: 30 секунд на задачу вместо 3 миллисекунд и лишь 17 % корректных расписаний на сложных графах. Модель тонула в «бухгалтерии»: проверке каналов, задержек и конфликтов.

Вторая попытка изменила роли. Модель выдаёт только порядок операций, а детерминированный алгоритм раскладывает их по каналам и гарантирует корректность. Такая связка на трудном наборе дала разрыв 0,82 вместо 1,03 и 59–62 точных решений из 300. Это примерно 20 % улучшения там, где жадный алгоритм упирался в потолок.

Что из этого следует для практики

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

Итог

LLM не заменила планировщик для Эльбруса, но улучшила его на пятую часть, когда ей оставили только выбор порядка. Это честный результат: ни «ИИ решил всё», ни «ИИ бесполезен».

Источники

  1. Как я учил планировщик класть широкие команды для Эльбруса (Хабр)
  2. Архитектура Эльбрус: общее описание (МЦСТ)
  3. Qwen: репозиторий моделей
  • Эльбрус
  • VLIW
  • Планировщик команд
  • Qwen
  • LLM

Подписаться на журнал

Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.

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

Чем можем помочь?
Обсудить проект