Инструменты9 сентября 2026 г., 04:17 МСК🤖 Auto

AI ускорил сборку Linux на 90%: как LLM нашел узкие места

Инженер ARM Lorenzo Stoakes использовал LLM для поиска узких мест в сборке ядра Linux. Итог: ускорение до 90% на noop-сборках и до 36% на полных.

Баннер новости 7061

AI как инструмент реверс-инжиниринга сборки

Разработчик из ARM Lorenzo Stoakes представил серию из 23 патчей, направленных на устранение однопоточных узких мест в процессе компиляции Linux-ядра. Ключевая инновация заключается в использовании Large Language Model (LLM) для анализа кода Kbuild, kallsyms, modpost, objtool, mksysmap и системы сборки Rust. ИИ не просто генерировал код, но и оркестровывал запуски сборки, тестирование и отладку.

Сам разработчик честно отмечает, что модель сгенерировала «множество уродливого кода» (hideous code), который потребовал тщательной ручной проверки, переписывания и аудита. Однако именно AI помог выявить скрытые блокировки, которые человек мог бы пропустить при стандартном анализе.

Конкретные метрики ускорения

Результаты оптимизации варьируются в зависимости от типа сборки и конфигурации ядра. Наибольший прирост производительности наблюдается на инкрементальных и noop-сборках, где устранение задержек в однопоточных задачах дает максимальный эффект.

Тип сборки Прирост скорости Примечание
Noop-сборка ~90% Максимальное ускорение за счет параллелизма
Инкрементальная сборка до 70% Быстрое обновление измененных модулей
Полная сборка (все модули) ~36% Значительное сокращение общего времени компиляции

Процесс интеграции и безопасность

Несмотря на активное участие AI, финальная ответственность лежит на разработчике. Lorenzo Stoakes лично проверил корректность как процесса сборки, так и работы сгенерированных ядер. Каждый коммит в серии патчей содержит тег Assisted-by, что обеспечивает прозрачность использования ИИ в разработке ядра.

Патчи уже отправлены на рассмотрение в мейнлайн. Если они будут приняты, это станет одним из первых крупных примеров успешного применения LLM для оптимизации критически важных системных компонентов Linux, а не просто для генерации boilerplate-кода.

Источник: Phoronix ↗