Комбинатор YT. из автотурнир.
Что происходит, когда вы берете автономный цикл исследований из своей зоны комфорта и направляете его в область, в которой у него нет бизнеса? Андрей Карпаты самоисследование Показано, что кодирующий агент, учитывая два дня и наночат с одним графическим процессором, самостоятельно находит 20 оптимизаций времени обучения. Рецепт общий — предлагать, реализовывать, измерять, сохранять выигрыши — но демонстрация была внутри домашнего поля агента: Python, градиентный спуск, известные ручки.
Я хотел знать, обобщено ли это. Так что я указал на процессор.
Настройка
auto-arch-tournament Это 5-ступенчатое ядро RV32IM в SystemVerilog - учебник, который вы напишете в классе архитектуры для выпускников. Ни тайников, ни предсказателей ветвей, ни мульти-проблем в первый день. Это гипотезы исследовательского цикла, а не особенности.
Оркестр жестко закодирован. LLM никогда не редактирует его. Каждый раунд, три слота проходят параллельно:
- Агент предлагает микроархитектурную гипотезу, как YAML, схема, проверенная на соответствие.
schemas/hypothesis.schema.json. - Агент реализации редактирует файлы под
rtl/в изолированном гит-дерево. - Ворота Эвал ходят:
- рисково-формальный — 53 символические проверки BMC (декод, ловушки, заказ, живость, M-ext)
- Козим верилятора — RVFI байт-идентичный против Python ISS, ~ 22% случайных остановок автобусов
- 3-семя Nextpnr P&R на Gowin GW2A-LV18 (Tang Nano 20K) — медиана Fmax × CoreMark iter/cycle = фитнес
- Проверка CoreMark CRC — те же 4 CRCs VexRiscv сообщает против
- Улучшение → сливается в багажник, становится новым базовым уровнем. Regression / broken / placement-failed → Рабочее дерево уничтожено.
Вращение разнообразия вынуждает каждый слот выбирать другую категорию (micro_opt | structural | predictor | memory | extensionЧтобы агент не зацикливался на одной идее.
Покажите мне результаты
Базовая строка заблокирована по той же методологии, которую публикует VexRiscv — полное отсутствие кэша, данные 2K, -O322% автобусное давление — при 2.23 CoreMark/MHz, 301 iter/sЧеловеческим эталоном является опубликованный VexRiscv 2.57 CoreMark/MHz @ 144 MHz.
Тогда я позволил ему бежать. 73 гипотезы, 9ч 51м настенные часы.
РезультатыграфУлучшение (принято)1010Регрессия50Сломанный (формальный/косим)9 9Размещение провалилось4.410 признанных победителей в порядке:
Δtитер/CM/MHzFmaxLUT4гипотеза0,0 ч.301.042.226135 Гц9 880Базовая линия0,4 часа313.102.320135 Гц10 186Обратная ветвь Taken Predictor0,7 ч.324.482.348138 МГц10 192Предсказатель прямого прыжка2.1 ч.375.432.348160 Гц5 888Холодный мультицикл DIV/REM2.7 ч.397,552.366168 МГц5 854One-Deep Store Пенсионный слот3,5 часа422,772.366179 МГц5 933Сегментированный счетчик заказов RVFI3.8 ч.472,962.891164 МГц5,916Системные требования Lookahead I-Fetch Replay Predictor4,0505,652.891175 МГц5 938Обсуждение Compressed Resetless I-Fetch Replay5,3 часа529,352.891183 МГц5 930Сплит только горячий / холодный ALU Opcode6.1 ч.577,762.908199 Гц5 944Зарегистрированный I-Fetch Replay PredictorКонец состояния: 2.91 CoreMark/MHz, 577 iter/s, 199 MHz Fmax, 5944 LUT4.
Это +92% по сравнению с заблокированным исходным уровнем и +56% по сравнению с VexRiscv на CoreMark iter/sec (370 → 578), с 40% меньшим количеством LUTСоединения выигрыша: ~13% от его архитектурной эффективности (2,91 против 2,57 CoreMark / МГц), а остальное - Fmax (199 против 144 МГц) - меньшая, более простая конструкция, которую синтезатор также быстрее. Для контекста, зазор CoreMark/MHz между VexRiscv full no cache и linux balanced Конфигурации (их следующий уровень с кэшами) составляет около 40 процентных пунктов, поэтому цикл закрыл 13 из них менее чем за десять часов, по одной цели FPGA, против базового VexRiscv потребовались годы, чтобы достичь.
Черная пошаговая функция лучше всего работает. Он пересекает настроенную человеком линию VexRiscv на итерации 6 и никогда не оглядывается назад. Интересным шагом стала итерация 3 — вытаскивание DIV/REM из одноциклового пути. Агент не знал, что это также уменьшит количество LUT вдвое. Об этом он узнал, сделав это и наблюдая за синтезатором.
Интересной частью является не петля
Сейчас много шума вокруг петли агента. Постройте планировщик, создайте кодировщик, дайте им инструменты, запустите их в рой, поднимите семенной круг. Петля в основном является решенной проблемой. Выберите модель, выберите библиотеку строительных лесов, выберите, сколько параллельных слотов вы можете себе позволить. Какой бы ров вы ни думали, что у вас есть на петле, он у вас есть в течение шести месяцев.
То, что никому не платят за строительство, и то, о чем этот проект на самом деле, является проверяющим.
73 гипотезы, 63 были неправыОни регрессировали, сломали ISA или не смогли вовремя. Некоторые реальные примеры из журнала:
- Та же идея, дважды.
Move DIV/REM off the single-cycle ALU pathСначала он вышел в 1-м раунде слота 0 и сломал косим на самотесте, прежде чем он попал в FPGA. Агент перефразировал это какCold Multi-Cycle DIV/REM UnitЧерез два часа — та же идея, фиксированная реализация — и это стало прорывной победой. Без Косимских ворот первая попытка была бы сорвана. - Нарушение песочницы. Две отдельные гипотезы пытались добавить
test/_helpers.pyФайл снаружиrtl/**иtest/test_*.pyСписок разрешений. Песочница отклонила раунд, прежде чем какой-либо эвал пробежал. Если вы позволите агенту редактировать упряжку, в конечном итоге он будет редактировать упряжку. - Регрессия −73%. В 24-м раунде, после того, как пиковая пригодность 577 итер/с уже была заблокирована, агент предложил
Registered Lookahead JALR Target PredictorФитнес рухнул до 154 итера/с — падение на 73%. Принятая в багажнике, эта ошибка отменяет каждую предыдущую победу в одном раунде. Оркестр поймал его на проверке сравнения с базой. - Ошибки схемы. Объявлена одна гипотеза
fitness_delta_pct: 1.5где схема требует целого числа. Отклоняется до создания любого кода. Тривиальное — и именно то, что без схемы становится молчаливым принуждением.
Каждый из этих отказов стоит ~ 5-15 минут вычислений. Каждый из них, невежественный, либо испортил бы пробег, либо научил бы агента, что неправильный ход — правильный.
Проверяющий в этом проекте делает неприглядные вещи, которые вы хотели бы пропустить:
- The
ill / unique / liveness / coverформальные проверки, а не толькоinsn_*Один. Первые четыре ловят бесшумно разбитые ядра;insn_*Они ловят только бесшумно разбитую арифметику. - Путь песочницы. Агент может редактировать
rtl/**иtest/test_*.pyПрикосновениеformal/checks.cfg,tools/eval/fpga.pyКанонический стол CRC и раунд отклоняются перед любыми эвалами. В противном случае агент в конечном итоге «улучшит», смягчив чек. - 3-семя P&R, медиана Fmax. Одно семя — это подбрасывание монеты; три — это число, которое можно сравнить по итерациям.
- Проверка CRC на выходе скамейки. Отпечатки CoreMark
Correct operation validated.Даже если это не так, потому что он проверяет свои собственные CRC и печатает буквальный независимо. Эвал повторно подтверждает четыре CRC против канонических 2K-конфигураций. - Установить временную область с помощью маркеров MMIO start/stop. Разминка и печать CoreMark съедят ваш фитнес-номер, если вы будете измерять сквозной.
Агентская петля — это производитель. Проверяющий — единственное, что стоит между вами и уверенно неверным числом.
Что это значит для следующей партии компаний
Следующей волной компаний будут не люди, пишущие код. Это будут люди, пишущие проверяющие, с петлей, бегущей против них.
Цикл - это товар. Модель + подсказка + инструменты + табло + параллельные слоты. Все сходятся в одной и той же форме, и поставщики этих частей скачут друг с другом с нулевой маржой.
Проверка не является товаром. Это артефакт, который кодирует то, что на самом деле означает ваш бизнес. исправлятьВ процессоре это ISA и формальный пакет недвижимости. В платежном конвейере это инварианты в бухгалтерской книге. В компиляторе это дифференциальный тест против ссылки. В клиническом рабочем процессе это собственность, которую FDA подписало. Ни одна из них не является проблемой ИИ. Это «что такое ваш домен, и вы можете записать правила».
Если вы можете записать правила, агент удовлетворит их быстрее, чем ваша команда. Если вы не можете — а большинство команд не могут, потому что правила живут в головах трех инженеров и на странице Confluence никто не обновляется — агент удовлетворит вас. различный набор правил, которые он вывел из того, что он мог наблюдать. Вы не заметите до начала производства.
Компании, которые выигрывают, не самые умные планировщики. Это те, кто проверяет контракт.
Что дальше
Проект в настоящее время является последовательным на круглом уровне — проигравшие отбрасываются каждый раунд, хотя их неудачные пути являются полезным сигналом. Следующая итерация переходит к популяционному поиску: держите верхнюю часть K каждый раунд, мутируйте от любой из них, пусть тупиковые ветви остаются мертвыми. Это должно масштабировать пространство поиска без линейного масштабирования счета модели.
Мне также любопытно, как много побед в первые 10 часов обобщает CoreMark. Некоторые из этих предикторов явно переквалифицированы в профиль своей ветви. Следующий эксперимент своп в Эмбенхе против того же базового уровня, и мы видим, какие победители выживают при изменении рабочей нагрузки, а какие были мелочами CoreMark.
Оба вопроса интересны. Более интересный вопрос — для меня и для любого, кто отправляет продукт, — это то, в каких частях вашего бизнеса уже есть достаточно четкий верификатор, чтобы указать на петлю. Найдите это, и производительность вашей команды перестанет расти.
Будущее светлое. Граница является проверяющим.

