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

10.09.2020      24486

Ян Бирман –  менеджер по разработке программного обеспечения в 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.


Автор:
Обозреватель


См. также

Новость ИТ-Новость

Российский Альянс по искусственному интеллекту обновил требования к специалистам по ИИ: вышла новая модель с основными профессиями и навыками. Теперь базовых профессий в сфере ИИ осталось только четыре.

01.11.2024    671    user1915669    0       

2

Новость ИТ-Новость

Система платежей «Волна» по планам сделает возможной бесконтактную оплату для владельцев IPhone в России, а BRICS Pay позволит совершать безналичные расчеты иностранцам по картам Visa и Mastercard.

23.10.2024    897    AnastasiaKl    0       

3

Новость ИТ-компания ИТ-Новость

Конструктор сайтов Wix уходит из России с 12 сентября 2024 года – перестанут работать все российский аккаунты. Сайты, привязанные к аккаунтам, также перестанут работать.

11.09.2024    945    user1915669    2       

2

Новость Искусственный интеллект ИТ-Новость

ИИ научат разработке цифровых интегральных микросхем – несколько российских научных институтов заявили об участии в проекте. Проект рассчитан на 3 года – с 2024 по 2026.

23.07.2024    600    user1915669    0       

2

Новость Дата-центры Искусственный интеллект ИТ-Новость

Развитие искусственного интеллекта и цифровых сервисов в России стало причиной роста потребности в мощных центрах обработки данных. Эксперты прогнозируют, что дефицит ЦОД, который уже наблюдается сегодня, в ближайшие годы будет только усиливаться.

18.07.2024    722    AnastasiaKl    0       

1

Новость ИТ-Новость

В сентябре 2024 года видеоигры в России начнут маркировать – пока на добровольной основе. Геймерам будут сообщать о семи видах чувствительного (неприятного) контента в игре.

17.07.2024    802    user1915669    0       

1

Новость Законодательство ИТ-Новость

Депутаты Госдумы работают над законопроектом по ужесточению контроля за электросамокатами. Среди мер: обязательная регистрация СИМ (средств индивидуальной мобильности) и разработка системы отслеживания их перемещений.

10.07.2024    769    AnastasiaKl    2       

1

Новость Искусственный интеллект ИТ-Новость

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    1649    AnastasiaKl    3       

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. awk 744 11.09.20 08:36 Сейчас в теме
Ждем Microsoft Linux XP...
2. Darklight 33 11.09.20 09:34 Сейчас в теме
(1)Вполне вероятно, что в будущем Микрософт действительно может выпустить новую ОС (вероятно уже не в семействе Windows), которая в большей степени будет основана на наработка Linux, чем на windows. В этом есть много преимуществ - сейчас Linux ядро доминирует на ARM архитектурах, и иных не x86 архитектурах, и имеет достаточно высокий уровень охвата в профессиональных и специализированных отраслях на x86 архитектуре, особенно в серверной и промышленной (научной) среде. И это не спроста (тут финансовая составляющая не очень существенна, ведь часто такие системы на Linux имеют не дешёвую платную поддержку).

Компания Микрософт не спроста уже встроила ядро Linux в свои современные Windows решения.
Далее возможны два пути:
1. Либо будет продолжаться постепенная гибридизация Windows и Linux - так, что в итоге грань будет окончательно стёрта и на такой гибридной ОС будут одинаково работать и Windiws и Linux приложения (правда в этом случае не удастся достичь наибольшей оптимизации, да и по-прежнему придётся тянуть большой багаж старой совместимости). Пока ОС Windows развивается в таком ключе - вот скоро обещают поддержку GUI Xwindows на Windows ;-)

2. Либо отточив навыки и набравшися опыта на гибридизации. Мелкомягкие возьмутся за разработку новой ОС - уже в большей степени на ядре Linux (но с кучей своих оптимизаций и дополнений). Естественно, встроив хороший эмулятор для поддержки старых приложений для Windows. В этом есть очень много смысла:
- Можно активно ориентироваться на ARM архитектуру - она сейчас в тренде, и вполне может вытеснить x86 архитектуру
- Можно изначально ориентироваться на кросс-поддержку разных архитектур - тем самым расширяя потенциальные рынки сбыта (с такими ресурсами как и Микрософта такая задача не выглядит утопической)
- Можно отказаться о поддержки старых API и устаревших архитектурных фишек - которые сейчас приходится поддерживать из-за обратной совместимости. Тем самым повысив эффективность актуальной модели - скорость и безопасность выполнения программного кода.
- Это развяжет руки и Intel (ключевым партнёром мелкомягких) - она сможет выпустить для такой ОС совершенно новые процессоры - тоже лишённые багажа устаревшей совместимости - полностью перешедшие на RISC архитектуру, имеющие более простое внутреннее устройство, а значит и меньшее число транзисторов и более эффективные пакеты TDP
- Под новый API и новый процессор можно будет выпустить более эффективные компиляторы - которые будут генерировать ещё более производительный код
- Программирование тоже сразу можно затачивать под кросс-платформенную разработку - это дело ближайшего будущего отрасли
- С новой кросс-платформенной ОС можно попробовать снова выйти на рынок мобильных приложений - особенно с лозунгом - Работай дома, на работе и вне - на разных устройствах, но в одной и той же среде, с тем же функционалом и теми же данными, моментально, без переключений, да хоть одновременно!
- Ну и про маркетинг это вообще отдельная песня - под такую разработку можно развернуть нехилую рекламную компанию - и привлечь много новых клиентов!
- А прямая поддержка Linux в первую очередь привлечёт тех, кто на ней уже работает - профессиональное сообщество - на новой ОС они смогут так же эффективно запускать свои профессиональные Linux приложения: те же сервера WEB и СУБД например. Или какие-то специализированные супер-приложения, разработанные для Linux.

В общем, поживём, узнаем!
SKravchenko; +1 Ответить
Оставьте свое сообщение