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

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

10.09.2020     

Ян Бирман –  менеджер по разработке программного обеспечения в 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/
Автор:
Сергей Кравченко Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. awk 725 11.09.20 08:36 Сейчас в теме
2. Darklight 27 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 Ответить
Оставьте свое сообщение

См. также

Минпромторг готов выделять по 500 млн рублей в год на разработку ИИ

Новость Искусственный интеллект ИТ-новость Минпромторг Цифровая экономика

Минпромторг подготовил проект постановления для поддержки разработчиков решений на базе ИИ. Компании смогут получить до 3 млрд рублей на пять лет, по 500 млн каждый год.

сегодня в 13:52    133    VKuser24342747    0       

ARM представила новую процессорную архитектуру v9

Новость ИТ-новость Микроэлектроника

Компания ARM разработала инновационную процессорную архитектуру v9. Она обладает масштабным потенциалом и будет использоваться для систем искусственного интеллекта и безопасности, мобильных устройств и специализированных вычислений.

вчера в 15:06    891    user1015646    0       

Microsoft разделит ключевые компоненты Windows

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

Модули Windows 10 становятся всё более независимыми. Меню «Пуск» стало отдельным компонентом около двух лет назад. Теперь пришёл черёд отделить панель задач – это должно исправить проблему с зависаниями системы.

09.04.2021    2837    user1015646    0       

Правительство начнет регулировать цифровые экосистемы

Новость Импортозамещение ИТ-новость Новости компаний Цифровая экономика

Правительство готовит концепцию регулирования для быстро развивающихся цифровых экосистем, таких как Сбер, Яндекс, Тинькофф и других. Цель – повысить конкурентоспособность экосистем за рубежом.

08.04.2021    5940    mouse187    1       

Ремонтировать технику Apple в России станет проще

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

Компания Apple расширила программу независимого ремонта своей техники. В список стран, где она теперь доступна, попала и Россия.

08.04.2021    7379    user1015646    0       

Треть пользователей готова избавиться от предустановленного отечественного ПО

Новость Импортозамещение ИТ-новость Мобильные приложения

Компания ESET провела опрос, в котором 29% респондентов заявили о своем желании удалить предустановленные российские приложения со смартфонов, ноутбуков и телевизоров.

07.04.2021    2150    VKuser24342747    2       

Google начала тестировать FLoC – технологию-убийцу cookies в Chrome

Новость Google Безопасность Интернет ИТ-новость

Google продолжает разрабатывать альтернативу cookie-файлам. Поисковый гигант уже приступил к тестированию технологии, позволяющей хранить данные о пользователе браузера в обезличенном виде.

06.04.2021    4684    VKuser24342747    0       

В России пройдет закрытое тестирование электронной почты с кириллицей в адресах

Новость Импортозамещение Интернет ИТ-новость

Проект поддержки доменных имен на национальных языках и регистратор доменных имен начали проект по тестированию работы электронной почты с кириллице в адресах.

02.04.2021    2245    Senator_I    1       

Crystal – простой, как Ruby, и «быстрый», как C

Новость ИТ-новость Языки программирования

Вышел первый стабильный релиз языка Crystal. Синтаксис Crystal схож с Ruby, что делает язык легким для чтения и записи и снижает кривую обучения для опытных разработчиков.

02.04.2021    2641    SKravchenko    1       

Платежная система Visa разрешит платежи в криптовалюте

Новость Безопасность Блокчейн ИТ-новость Онлайн-торговля

Крупнейшие поставщики платежных услуг для банковских карт выходят на криптовалютный рынок. Visa вслед за Mastercard сообщила, что начнет поддерживать транзакции в цифровых токенах.

02.04.2021    2189    VKuser24342747    1       

Samsung стала предустанавливать на смартфоны неудаляемые приложения. Яндекс против

Новость Импортозамещение ИТ-новость Мобильные приложения Новости компаний Яндекс

С 1 апреля в России вступает в силу закон об обязательной предустановке отечественных приложений. Samsung стала инсталлировать ПО Яндекса на свои устройства без возможности удаления. Российский ИТ-гигант призвал производителя не делать этого.

01.04.2021    2493    user1015646    0       

Линус Торвальдс рассказал о том, где Rust впишется в Linux

Новость Linux ИТ-новость Языки программирования

Медленно, но верно язык Rust проникает в Linux. Линус Торвальдс и Грег Кроа-Хартман поделились своим мнением насчет перспектив Rust в Linux.

31.03.2021    2481    SKravchenko    0       

В России создали невидимые этикетки

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

Специалисты из Университета ИТМО и Санкт-Петербургского академического университета представили новую технологию создания этикеток. Она призвана защитить рынок от распространения контрафакта.

30.03.2021    1372    user1015646    8       

Google и Microsoft начали совместную работу над совместимостью браузеров

Новость Google Интернет ИТ-новость Новости компаний

Компании Google, Microsoft и Igalia объявили о запуске совместного проекта Compat2021. С его помощью будет улучшена совместимость браузеров Chrome, Edge, Firefox и Safari.

30.03.2021    1167    VKuser24342747    0       

Представлен Windows Community Toolkit v7.0: что нового

Новость ИТ-новость Новости компаний Языки программирования

Компания Microsoft выпустила новую версию Windows Community Toolkit v7.0. Это коллекция расширений, инструментов помощи и настраиваемых кнопок для разработки UWP- и .NET-приложения для Windows 10.

29.03.2021    7066    user1015646    1       

Google Chrome начнет автоматически добавлять https:// ко всем веб-адресам

Новость Google Безопасность Интернет ИТ-новость

В новой версии браузера Google Chrome будет отключен редирект с http:// на https://. Веб-обозреватель будет сразу загружать сайт через защищенный протокол, уже ставший стандартом.

29.03.2021    3147    VKuser24342747    0       

Разработчик придумал фейковый язык программирования MOVA, чтобы отсеивать лживые резюме

Новость ИТ-новость Языки программирования

MOVA – язык программирования, который предлагает способ представления независимо изменяющихся объектов без обращения к какой-либо схеме для назначений. Такая парадигма могла бы быть увлекательной, если бы MOVA не был фейком.

26.03.2021    2424    SKravchenko    4       

Фонд свободного программного обеспечения назвал лауреатов премии Free Software Awards 2020

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

Фонд свободного программного обеспечения (FSF) ежегодно вручает награды разработчикам, повлиявшим на развитие open source решений. В этом году премия была присуждена троим номинантам.

25.03.2021    4704    VKuser24342747    0       

В ногу с Apple: Google снизила комиссию с разработчиков приложений

Новость Android iOS Google ИТ-новость Мобильные приложения Новости компаний

Корпорация Google уменьшила комиссию с разработчиков в официальном магазине приложений Google Play с 30% до 15%. Аналогичный шаг в прошлом году сделала Apple.

24.03.2021    1150    user1015646    10       

Apple согласилась предустанавливать российское ПО

Новость iOS Гаджеты Импортозамещение ИТ-новость Мобильные приложения

Минцифры обязало производителей техники устанавливать софт из реестра отечественного ПО на устройства для рынка РФ. Компания Apple ранее выступала резко против этой инициативы, но теперь, похоже, решила пойти на компромисс.

23.03.2021    3512    user1015646    1       

Представлена Java 16: что нового

Новость ИТ-новость Языки программирования

Java 16 получила механизм записей для компактного объявления классов, сопоставление шаблонов для оператора instanceof, параллельная обработка потоков сборщиком мусора и инструменты для упаковки автономных приложений.

22.03.2021    2092    user1015646    0       

Создан сервис, который поможет отдохнуть от Zoom-конференций

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

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

19.03.2021    5326    user1015646    0       

Исследователи разработали оптический диск емкостью 700 терабайт

Новость ИТ-новость Микроэлектроника

Азиатские ученые создали технологию, которая позволяет записывать на диск размером как DVD до 700 ТБ данных. Разработка таких носителей не должна быть очень дорогой, что позволяет наладить их массовое производство.

19.03.2021    2837    VKuser24342747    3       

Мода на электронное искусство: цифровой коллаж продали за 69 млн долларов

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

У шедевров классической живописи появились цифровые конкуренты. На аукционе Christie’s художник под ником Beeple продал коллаж «Первые пять тысяч дней» (Everydays: The First 5000 Days) за 69,3 млн долларов США.

18.03.2021    4984    user1015646    0       

Google открыла доступ к Android Sleep API

Новость Google ИТ-новость Мобильные приложения

Интерфейс Android Sleep API предназначен для создания приложений по отслеживанию активности пользователей. Отличительной особенностью таких приложений станет низкое энергопотребление.

16.03.2021    4770    SKravchenko    0