Исследователи представили SeGaBench — бенчмарк для оценки способности больших языковых моделей восстанавливать семантику программ, упущенную стандартными компиляторами C/C++. Модели анализируют гетерогенный контекст кода, чтобы находить возможности для оптимизации, которые недоступны классическим алгоритмам из-за отсутствия необходимых семантических данных в промежуточном представлении программы. Результаты показывают потенциал ИИ в автоматизации низкоуровневой оптимизации кода.
Современные компиляторы опираются на строгие правила анализа потока данных, которые часто не учитывают высокоуровневые намерения разработчика или контекст, скрытый в сложных структурах кода. LLM, обладая способностью к интерпретации семантического контекста, могут выявлять паттерны, которые позволяют применять агрессивные трансформации кода без нарушения его логики и контрактов.
Использование ИИ в этой области направлено на создание «валидируемых артефактов», где модель предлагает оптимизацию, а компилятор или специализированный верификатор подтверждает её корректность. Это позволяет преодолеть ограничения статических анализаторов, которые часто вынуждены отказываться от потенциально эффективных преобразований из-за консервативных оценок безопасности.
Ключевые факты
- SeGaBench включает 100 синтетических тестов и 20 примеров, основанных на реальном исходном коде.
- Основная цель — восстановление семантики, которую пропускают стандартные оптимизирующие компиляторы.
- Исследование сфокусировано на языках программирования C и C++.
- Метод предполагает генерацию оптимизаций, сохраняющих исходные контракты и семантическую корректность программы.