Введение: когда ИИ сам ведёт исследование

Что если искусственный интеллект может не просто писать код, но и сам итеративно оптимизировать его — тысячи раз подряд, без сна и выходных? Именно это продемонстрировал разработчик Санкальп Шубхам на соревновании GPU Mode в июне 2026 года.

GPU Mode совместно с Core Automation провели соревнование, посвящённое авто-исследованию. Задача — реализовать пакетную компактную QR-факторизацию Хаусхолдера для квадратных матриц. Санкальп занял 12-е место из 183 участников, достигнув ускорения в 232 раза по сравнению с эталонным решением.

Эта история — не просто об оптимизации GPU-ядра. Это манифест нового подхода к инженерии: когда человек задаёт цель, выстраивает обратную связь, а ИИ-агент самостоятельно ищет путь к результату.


Что такое авто-исследование (auto-research)?

Для Санкальпа это была первая серьёзная попытка авто-исследования. Некоторые называют это «loop engineering» — и это тоже вполне подходящее название.

Концепция авто-исследования строится на простой идее: LLM — это мощный решатель задач, но только при наличии:

  1. Чёткой цели — конкретной метрики, которую нужно улучшить
  2. Верификации — способа автоматически проверить результат
  3. Обратной связи — быстрого цикла «предложи → протестируй → улучши»
ℹ Что такое авто-исследование
Авто-исследование (auto-research) — это процесс, при котором ИИ-агент самостоятельно генерирует гипотезы, тестирует их и итеративно улучшает результат, используя автоматизированную обратную связь. Человек задаёт рамки и проверяет направление, а ИИ выполняет тысячи экспериментов.

«Агенты жаждут тесных циклов обратной связи. Они позволяют им карабкаться на вершину в своё удовольствие.»

По мнению участников Hacker News, LLM стоит воспринимать как продвинутую версию Prolog или линейного программирования: вы задаёте ограничения, имеете способ проверки корректности и ставите чёткую цель. Если модель может верифицировать себя и корректировать курс — можно оставить её на автопилоте.


Задача: QR-декомпозиция на GPU B200

Суть проблемы

Задача состояла в реализации пакетной квадратной компактной QR-факторизации Хаусхолдера. Это фундаментальная операция линейной алгебры, которая раскладывает матрицу на ортогональную матрицу Q и верхнетреугольную матрицу R.

Поскольку отражение каждого столбца зависит от результата предыдущего, наивный алгоритм является последовательным и «недружелюбным» к GPU. Но существуют GPU-совместимые алгоритмы, например, блочный Хаусхолдер, где хитрость заключается в накоплении отражений в компактной форме с последующим применением одного большого матричного умножения.

Санкальп взаимодействовал с Claude и смотрел видео на YouTube, чтобы выстроить интуицию. После обсуждений с Claude стало ясно, что нужно использовать блочный алгоритм Хаусхолдера как основную архитектуру с WY-обновлением хвостовой матрицы.

Почему это сложно?

Традиционные последовательные реализации алгоритма Хаусхолдера имеют существенные ограничения в производительности и масштабируемости при работе с большими матрицами. Для преодоления этих ограничений необходима параллелизация на GPU с использованием CUDA.

Соревнование проходило на аппаратуре NVIDIA B200 — новейшем GPU архитектуры Blackwell. Это добавляло сложности: нужно было не просто написать рабочий код, но и использовать специфические возможности новой архитектуры.


Архитектура авто-исследовательского цикла

Ключевым инструментом в работе Санкальпа стал OpenAI Codex — агент, способный запускать код, читать результаты профилирования и итеративно улучшать реализацию.


graph TD
    A[🎯 Постановка задачи] --> B[📚 Изучение алгоритма с Claude/GPT]
    B --> C[⚙️ Первичная реализация на Triton/PyTorch]
    C --> D[🔁 Цикл авто-исследования]
    D --> E[📊 Профилирование: torch + nsys + NCU]
    E --> F{Улучшение найдено?}
    F -->|Да| G[✅ Принять изменение]
    F -->|Нет| H[↩️ Откатиться]
    G --> D
    H --> D
    D --> I[🏆 Результат: 232x ускорение]

Инструменты обратной связи

Агенты могли тестировать, бенчмаркировать и отправлять решения напрямую на лидерборд. Чекер предоставлял обратную связь по каждой форме матрицы вместе с общим геометрическим средним времени выполнения.

За 14 дней соревнования Санкальп сделал более 1500 отправок. Это ~107 попыток в день — темп, невозможный без автоматизации.

По мере продвижения к сложным оптимизациям приходилось всё активнее включаться в цикл — изучать концепции и управлять моделью. Codex получил доступ к профилированию через Modal и использовал torch profiling / nsys profiling для тестирования разных идей, сравнения реализаций и более быстрого перебора параметров.

💡 Ключевой принцип
Чем быстрее и богаче обратная связь — тем эффективнее работает авто-исследовательский агент. Профилировщики (torch profiler, nsys, NCU) стали «глазами» Codex, позволяя ему видеть узкие места и точно направлять оптимизации.

Инструменты авто-исследования (AutoKernel)

Помимо самого Codex, в экосистеме GPU-оптимизации уже появились специализированные инструменты. Файл program.md специально сделан исчерпывающим, чтобы агент мог работать 10+ часов без остановок. Он включает 6-уровневый плейбук оптимизации, систему принятия решений, обработку сбоев и рассуждения по закону Амдала.

# Пример запуска AutoKernel-агента
# Агент сам профилирует → ранжирует → оптимизирует
python profile.py --model my_model.py
python extract.py --backend triton --top-n 3
# Агент (Codex/Claude) запускает бесконечный цикл улучшений

AutoMegaKernel наследует авто-исследовательский цикл AutoKernel (предложи → фиксированная оценка → принять/откатить, часами, без вмешательства) и добавляет новое измерение поиска: расписание.


Прогресс оптимизации: от 419 мс до 1,8 мс

Финальный результат оказался впечатляющим: время выполнения ядра сократилось с примерно 419 миллисекунд до 1,805 микросекунд (1,8 мс) для различных форм матриц.

ЭтапВремя выполненияУскорениеПодход
Baseline (torch.geqrf)~419 мсСтандартный PyTorch
Ранняя реализация Triton~50 мс~8×Базовый Triton-кернел
Блочный Хаусхолдер~10 мс~40×Алгоритмическое улучшение
После профилирования nsys~3 мс~140×Тонкая настройка параметров
Финальный результат1,805 мс232×Гибрид Triton + PyTorch

Где были найдены узкие места?

Оптимизации становились значительно сложнее после отметки в 3000 мкс. Приходилось глубже вникать в цикл — изучать концепции и корректировать направление модели.

В финальном решении было много переходов между PyTorch и Triton. Можно было бы держать хвостовую матрицу в формате fp16 вместо постоянных переключений между представлениями — но это был «неизвестный неизвестный» момент, пропущенный из-за нехватки экспертизы в конкретной предметной области.

⚠ Ловушка для ИИ-агентов
Авто-исследование эффективно для поиска известных оптимизаций, но плохо справляется с «неизвестными неизвестными» — экспертными знаниями предметной области, которые не представлены в тренировочных данных. Топ-10 решений использовали пользовательскую треугольную инверсию вместо стандартных библиотечных функций — именно такую экспертизу Codex не смог предложить самостоятельно.

Что делали топ-решения иначе?

Решения из топ-10 агрессивнее исключали библиотечные функции. Например, 2-е и 5-е решения использовали пользовательскую треугольную инверсию вместо стандартного треугольного решателя PyTorch.


Уроки и выводы: что работает в авто-исследовании?

1. Обратная связь — это всё

Главный урок: качество авто-исследования равно качеству цикла обратной связи. Без мгновенного бенчмаркинга, без чёткой метрики и без автоматической верификации агент слеп.

При разработке Codex приоритет отдавался безопасности и прозрачности, чтобы пользователи могли верифицировать его результаты. Пользователи могут проверять работу Codex через цитаты, логи терминала и результаты тестов. При неопределённости или при ошибках тестов агент явно сообщает об этих проблемах.

2. Человек остаётся архитектором

Авто-исследование не означает «запустил и забыл». Санкальп активно управлял процессом:

  • Изучал алгоритмы самостоятельно через Claude и YouTube
  • Настраивал направление поиска на сложных этапах
  • Интерпретировал результаты профилирования

3. Модель + домен = результат

Достижение стало не результатом недель интенсивного ручного кодирования, а продуктом систематического процесса авто-исследования с использованием ИИ-моделей, таких как Codex и Claude.

4. Что можно улучшить

Стоило иметь пул кандидатов с самого начала; написать более надёжный профилировщик для тестирования случаев смешанной точности; не удалось использовать инструкции tcgen05 — тензорные инструкции пятого поколения NVIDIA для Blackwell, чтобы лучше задействовать тензорные ядра B200.

📝 Шаблон авто-исследования

Алгоритм успешного авто-исследования:

  1. Определите чёткую числовую метрику (время выполнения, потребление памяти)
  2. Создайте автоматический бенчмарк с мгновенной обратной связью
  3. Сформируйте стартовую реализацию вместе с LLM
  4. Запустите цикл: генерация → тест → принять/откатить
  5. На сложных этапах углубляйтесь в предметную область лично
  6. Используйте профилировщики как «глаза» агента

Будущее авто-исследования в GPU-оптимизации

Экосистема инструментов авто-исследования для GPU быстро развивается:

  • AutoKernel (адаптация подхода Карпати для работы с Triton/CUDA ядрами)
  • AutoMegaKernel — за 10 минут автономной работы самоулучшает мегаядро в 1,47× по сравнению с начальным расписанием
  • InferenceBench — все агенты получают одинаковый шаблон промпта с указанием роли, цели, ограничений и инструкцию продолжать улучшения до исчерпания бюджета. Скрипт оценки внутри контейнера служит петлёй обратной связи

OpenAI выпустила GPT-5.3-Codex в феврале 2026 года — модель, сфокусированную на генерации кода, скорости и умении работать с репозиториями, запускать команды в терминале и одновременно отлаживать код.


Заключение: это не магия — это инженерия циклов

Главное, что вынес Санкальп — это глубокие знания об оптимизации GPU-ядер, основах авто-исследования и специфических деталях архитектуры B200.

232-кратное ускорение — это не волшебство. Это результат:

  • Правильно выбранного алгоритма (блочный Хаусхолдер с WY-обновлением)
  • Тысяч автоматизированных экспериментов через Codex
  • Грамотно выстроенного цикла обратной связи
  • Человеческой экспертизы для управления направлением

Мы стоим на пороге эпохи, когда исследования по оптимизации низкоуровневого кода становятся доступны не только GPU-экспертам с 10-летним опытом, но и любому разработчику, умеющему правильно выстроить цикл авто-исследования.

Авто-исследование — это не замена инженеру. Это инструмент, который умножает его возможности в сотни раз.

Попробуйте сами: исходные материалы и лидерборд GPU Mode доступны на gpumode.com, а AutoKernel — на GitHub.