Microsoft изучают LTO + PGO для ядра Linux
Microsoft изучают LTO + PGO для ядра Linux

Ян Бирман – менеджер по разработке программного обеспечения в Microsoft – представил на конференции Linux Plumbers Conference доклад об исследовании профильной оптимизации ядра Linux.
Большинство поставщиков программного обеспечения используют оптимизацию времени компоновки (LTO) и оптимизацию на основе профиля (PGO) для повышения производительности компилятора. Интересной новостью стало то, что инженеры Microsoft изучают LTO + PGO для достижения большей производительности ядра Linux.
История вопроса
Использование оптимизации времени компоновки в ядре Linux не является новой концепцией. Несколько разных поставщиков на протяжении многих лет предлагали исправления LTO для ядра Linux. Но это не давало больших изменений производительности.
В свое время Линус Торвальдс не нашел существенных преимуществ применения LTO в ядре. В наши дни LTO с современным компилятором GCC уже используется в дистрибутивах openSUSE, а вскоре Fedora будет использовать LTO по умолчанию при сборке своих пакетов. Clear Linux пошли еще дальше, применяя AutoFDO (автоматическая оптимизация с обратной связью) для повышения производительности своего дистрибутива.
В отличие от LTO, использование PGO для ядра довольно редкий случай. Поскольку PGO полагается на профили – важно, чтобы они были точными. Рабочие нагрузки, наблюдаемые в Linux и на широком спектре оборудования и драйверов, значительно отличаются. Создание профилей для PGO, которые подойдут большинству пользователей, является сложной задачей. Поэтому внедрение PGO – это узкая ниша для отдельных пользователей и организаций, которые применяют его в случаях, где это оправдано.
Microsoft+Linux
Интерес Microsoft к PGO появился из-за «внутреннего запроса клиента» по вопросу производительности Linux. Microsoft активно использует LTO и PGO в Windows с компилятором MSVC, что улучшает производительность на 5% – 20%.
Работа Microsoft над оптимизацией производительности Linux ведется не первый год. В июне компания представила утилиту ProcMon для мониторинга процессов в Linux, а год назад встроила полноценное ядро Linux в Windows, сделав его частью WSL 2.0 – подсистемы Windows Subsystem for Linux. Кроме того, Microsoft является платиновым членом Linux Foundation.
Для исследования использовались серверные ARM-процессоры Marvell Thunder X3. Marvel сейчас занимается глубокой оптимизацией CPU под нужды конкретных заказчиков и не планирует выпускать «общие» версии.
Перед командой Бирмана стояла задача максимально увеличить производительность облачного сервиса на Linux с архитектурой ARM. Исходным дистрибутивом был Ubuntu 19.10 с предустановленными GCC 9.2.1, binutils 2.33 и kernel 5.3. Ранее разработчики не использовали LTO из-за проблемы совместимости в компиляторах GCC и LLVM. Чтобы ее решить, Энди Клин из Intel написал патч для корректной работы LTO с ARM.
Одним из перспективных сценариев применения LTO и PGO на ARM64 инженеры Microsoft считают повышение производительности в резидентной системе управления базами данных класса NoSQL – Redis.
Оптимизация профилирования и оптимизация времени замедляют процесс сборки и требует больше оперативной памяти для работы компилятора. При этом, оптимизация обеспечивает существенный прирост в скорости выполнения команд.
После конференции LPC2020 Microsoft планирует продолжить изучать PGO для ядра Linux.
Источник: https://infostart.ru/journal/news/tekhnologii/microsoft-izuchayut-lto-pgo-dlya-yadra-linux_1292194/
См. также
Представлен GitLab 13.7: автооткат при сбоях и улучшенная проверка мердж-реквестов
22.01.2021 1666 user1015646 0
Российские исследователи представили новый фреймворк для работы с большими данными
21.01.2021 1471 user1015646 2
Новая система находит ошибки при разработке ПО в режиме реального времени
20.01.2021 2120 user1015646 0
Искусственный интеллект научился обыгрывать людей, не зная правил игры
20.01.2021 1995 user1015646 2
10 стартапов в области машинного обучения, за которыми стоит следить в 2021 году
18.01.2021 1505 SKravchenko 0
Fujifilm и IBM создали ленточный накопитель с рекордным объемом памяти
13.01.2021 1446 user-programmist 0
Эксперты назвали 10 навыков для ИТ-специалистов, которые обеспечат прибавку к зарплате
12.01.2021 1634 user1015646 2
Microsoft и МТС планируют совместно развивать российский интернет вещей
28.12.2020 1335 user-programmist 1
Cloudflare станет хостинг-провайдером для статических сайтов JAMstack
25.12.2020 1231 VKuser24342747 0
Составлен рейтинг приложений для предустановки на смартфоны и умные ТВ
23.12.2020 1541 user1015646 4