Инженер ARM и давний разработчик ядра Linux Лоренцо Стоукс (Lorenzo Stoakes) отправил в основную ветку проекта набор из 23 патчей, направленных на значительное ускорение процесса компиляции. Разработчик использовал большие языковые модели для анализа кодовой базы и выявления узких мест, замедляющих сборку.
Стоукс опубликовал подробный отчет о проделанной работе, в котором честно признал, что значительная часть кода, сгенерированного нейросетью, оказалась неудовлетворительного качества. Инженер охарактеризовал предложения ИИ как «ужасные» и был вынужден переписать их вручную, сохранив лишь найденные моделью проблемные участки и общую стратегию оптимизации.
Результаты тестирования показали существенный прирост производительности в различных сценариях сборки. Полная компиляция ядра с конфигурацией allmodconfig, которая включает все доступные модули, ускорилась на 36%. Инкрементальная сборка, предполагающая перекомпиляцию только измененных компонентов, демонстрирует еще более впечатляющие результаты — ускорение достигает 70%.
Подход Стоукса вызывает дискуссии в сообществе разработчиков ядра. Ранее в этом году сопровождающий Грег Кроа-Хартман ввел политику, ограничивающую прямое принятие патчей, полностью сгенерированных языковыми моделями. Однако случай Стоукса демонстрирует потенциальную пользу ИИ как инструмента анализа и поиска проблем, даже если финальная реализация требует ручного вмешательства человека.
Оптимизации затрагивают различные подсистемы ядра и процессы сборки, включая обработку зависимостей между модулями и организацию параллельных задач компиляции. Ускорение процесса сборки особенно важно для разработчиков, регулярно тестирующих изменения в ядре, а также для систем непрерывной интеграции, где время компиляции напрямую влияет на скорость тестирования и выпуска обновлений.