Предупреждение: сейчас будет ускорение. Если ваша модель на Mac до этого «шуршала», то после этого текста она попросит ремни безопасности и очки пилота. Мы проверили простую идею: могут ли фронтир‑модели сами написать быстрые GPU‑ядра под Metal и разогнать PyTorch без вашего участия? Ответ — да: средний прирост составил 1.87× (то есть на 87%) по 215 модулям, а отдельные кейсы ускорились на порядки.
Почему это важно? Эффективность инференса определяется тем, как исполняются ядра на железе. История с FlashAttention показала, насколько критичны грамотные оптимизации памяти и вычислений. И хотя PyTorch и torch.compile закрывают «середину», финишная миля часто требует ручных, трудоёмких ядер — особенно за пределами CUDA.
Мы взяли 8 моделей (Anthropic, OpenAI, DeepSeek) и прогнали их по KernelBench: 215 PyTorch‑модулей от примитивов до целых архитектур. Агент генерировал Metal‑ядра, проверял корректность и мерил время против базового PyTorch. По пути модели находили нетривиальные упрощения — четыре задачи на уровне 2 вообще свелись к «тривиалам» и были исключены из сводной статистики, хотя в реальности такой «санитарный эффект» полезен.
Оказалось, что «одна лучшая модель» — миф. GPT‑5 часто побеждает, но в ~30% случаев кто‑то другой находит более бодрое ядро. Значит, нужен «рой»: Best‑of‑N по нескольким агентам. Такой рой уже дал средний прирост ~1.31× без дополнительного контекста и ещё сильнее расцвёл, когда мы подлили два ингредиента:
- CUDA‑референсы (там оптимизаций много по определению),
- подсказки из профилинга gputrace на M‑чипах. Скриншоты мы снимали автоматикой через cliclick и гнали их в субагента для советов.
С контекстом рой выстрелил на полную: средний прирост вырос до 1.87×, медиана — 1.35×, а несколько ядер обогнали базовый вариант в сотни раз. Среди примеров — ускорения для Mamba‑подобных блоков (см. теорию в SSM/«Mamba2») за счёт агрессивного фьюза и уменьшения накладных расходов на запуск.
Что это даёт вам уже завтра:
- Автогенерация быстрых ядер под Metal без переписывания модели.
- Профилируем — выбираем лучший вариант — кэшируем. Если медленнее, откатываемся.
- Перенос идей на другие бэкенды (ROCm, CUDA, SYCL) — логика роя масштабируется.
Итог простой: ИИ способен автоматизировать значительную часть низкоуровневой оптимизации, оставив людям «вкусные» сложные куски. А модели — станут быстрее на день ноль, без шаманства и суждений о духах кэшей.