ИИ написал «уродливый» код, но нашёл узкие места и ускорил сборку ядра Linux

· Linux и open source
Инженер ARM Лоренцо Стоукс с помощью языковой модели выявил однопоточные узкие места в сборке ядра Linux — и добился ускорения инкрементальных сборок до 70%.

cover.svg

Инженер ARM и давний разработчик ядра Linux Лоренцо Стоукс представил серию из 23 патчей, призванных «существенно ускорить сборку ядра». В основе работы — борьба с однопоточными узкими местами, из-за которых процесс компиляции подолгу простаивает, не задействуя все ядра процессора.

Заметный прирост

Результаты, по словам автора, впечатляют. Полная сборка ядра со всеми включёнными модулями стала примерно на 36% быстрее, инкрементальные сборки — до 70%, а «пустые» сборки (noop), когда пересобирать по сути нечего, — почти на 90%. Прирост подтверждён на разном оборудовании и при разных конфигурациях ядра.

Патчи распараллеливают множество ранее однопоточных задач и в целом повышают эффективность сборки. Изменения затронули Kbuild, kallsyms, modpost, objtool, mksysmap и систему сборки для Rust.

Роль языковой модели

Самое любопытное — как эта работа была проделана. Стоукс честно признался, что неназванная большая языковая модель использовалась и для поиска узких мест, и для подготовки исправлений. По его собственным словам, модель «сгенерировала много кода, значительная часть которого была уродливой».

Разработчик подчёркивает, что не стал слепо доверять машине: он тщательно проверил и во многом переписал сгенерированный код, а также серьёзно отредактировал сообщения коммитов, сопроводительное письмо и комментарии. При этом LLM взяла на себя рутину — запуск сборок, тестирование, отладку и анализ. Корректность работы патчей на собранных и запущенных ядрах, равно как и прирост производительности, Стоукс проверял вручную.

Поскольку модель участвовала в работе так плотно, каждый коммит несёт пометку Assisted-by — своего рода честное указание на соавторство машины.

Если серию одобрят рецензенты, она имеет шанс попасть в основную ветку ядра Linux и заметно сократить время сборки для всех разработчиков. Сам эпизод хорошо иллюстрирует складывающийся баланс: ИИ неплохо справляется с поиском проблем и черновой работой, но окончательное качество по-прежнему обеспечивает человек, готовый переписать «уродливый» код набело.


Источник: Phoronix

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.