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 728 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 Ответить
Оставьте свое сообщение

См. также

JetBrains представила крупное летнее обновление IntelliJ IDEA 2021.2

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

Новая версия IDE получила поддержку анализа Java-кода во всем проекте, дополнительные действия при сохранении изменений и более наглядное отображение зависимостей.

вчера в 17:09    2123    VKuser24342747    2       

HeadHunter назвал самые необычные вакансии для ИТ-специалистов в России

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

Кадровый портал HeadHunter подготовил список экзотических вакансий в России за лето 2021 года. В перечень попали разработчики с сфере распознавания изображений, 3D-скульптор, создатель смарт-контрактов на блокчейне.

вчера в 15:20    934    VKuser24342747    1       

Microsoft не позволит установить Windows 11 на старые компьютеры

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

Microsoft намерена блокировать установку Windows 11 на компьютеры, не соответствующие системным требованиям. Компания закроет все сторонние методы обхода ограничений.

03.08.2021    1528    VKuser24342747    2       

ARM разработала гибкий пластиковый микропроцессор

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

Специалисты ARM представили пластиковую версию процессора Cortex-M0. Решение с тонкопленочными транзисторами на полиамидной подложке унаследовало все возможности популярного микроконтроллера.

02.08.2021    2976    user1015646    0       

Intel признает, что отстает от конкурентов на четыре года и будет выпускать чипы для Qualcomm

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

Представители корпорации Intel заявили, что компания начнет производство чипов Qualcomm. Также компания подготовила план развития, чтобы догнать своих конкурентов, таких как Taiwan Semiconductor Manufacturing и Samsung Electronics, к 2025 году.

30.07.2021    1469    SKravchenko    1       

Представлено водяное охлаждение для чипов мощностью 2,6 кВт

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

Компания TSMC, один из крупнейших производителей микропроцессоров, разработала инновационную систему водяного охлаждения. Она позволяет отвести от чипа 2,6 кВт тепла.

30.07.2021    1981    user1015646    1       

«Сбер» впервые в России получил патент на программу, написанную ИИ

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

Подразделение Sber AI зарегистрировало в Роспатенте приложение, написанное предварительно обученной нейросетью. Искусственный интеллект сгенерировал код на C++ и Java.

30.07.2021    1176    VKuser24342747    3       

Линус Торвальдс добавит в Linux драйвер для NTFS от российских разработчиков

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

Создатель Linux заявил о готовности добавить драйвер в ядро операционной системы, если программисты из России займутся его интеграцией и сопровождением. Торвальдс лично примет этот pull-запрос.

28.07.2021    2224    VKuser24342747    0       

Amazon представил игровой движок с открытым исходным кодом

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

Компания Amazon всерьез намерена покорить все цифровые рынки – в том числе индустрию гейминга. Разработчики выпустили движок Open 3D Engine для создания игр и других приложений с открытым исходным кодом.

28.07.2021    960    user1015646    0       

Microsoft представила эмулятор Altair 8800 на Azure Sphere

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

Microsoft представила эмулятор ретрокомпьютера Altair 8800 на операционной системе для работы с облаком Azure Sphere.

27.07.2021    1906    SKravchenko    0       

Microsoft выпустит облачную ОС

Новость ОС ИТ-новость Облачные технологии

Компания Microsoft активно конкурирует с Amazon и Google на рынке передовых облачных технологий. Чтобы предоставить пользователям возможность гибридной работы в Windows с любого устройства, разработчики анонсировали облачную ОС – сервис Windows 365.

26.07.2021    2180    user1015646    0       

Google добавит в Chrome режим приоритетной загрузки сайта по HTTPS

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

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

21.07.2021    1486    VKuser24342747    0       

JetBrains назвала JavaScript и SQL самыми популярными языками в России

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

Компания JetBrains провела ежегодный опрос об экосистеме разработки в 2021 году. В нем приняли участие 31 743 разработчика из 183 стран, в том числе из Российской Федерации и СНГ.

21.07.2021    1491    VKuser24342747    3       

MongoDB с последней версией Atlas стал бессерверным

Новость СУБД ИТ-новость

13 июля MongoDB представила версию 5.0 платформы баз данных NoSQL. Последние обновления поддерживают многие рабочие нагрузки в бессерверном режиме. Новая версия включает новые возможности для приложений и улучшения конфиденциальности и безопасности.

20.07.2021    1844    SKravchenko    1       

«Яндекс» представил уникальный сервис для автоматического перевода видео

Новость Искусственный интеллект ИТ-новость Новости компаний Яндекс

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

20.07.2021    1847    VKuser24342747    2       

Появился способ игнорировать запрет установки Windows 11 на слабые ПК

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

Новая Windows 11 не может быть установлена на компьютеры, которые не соответствуют системным требованиям, определенным разработчиками. Однако продвинутые пользователи нашли способ обойти это ограничение.

19.07.2021    1737    VKuser24342747    0       

На свежих процессорах Intel создали микрокомпьютер под Windows 10

Новость Windows Гаджеты ИТ-новость Микроэлектроника

Энтузиасты и стартаперы полюбили Arduino и Raspberry Pi. Но инженеры Commate Computer (Commell) пошли дальше и представили миниатюрный ПК LE-37O на базе новейших чипов Intel Tiger Lake. И на нем можно запустить Windows 10.

16.07.2021    1656    user1015646    3       

Вот это поворот: Microsoft выпустила дистрибутив Linux

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

Пока мир замер в ожидании новой Windows 11, Microsoft решила преподнести пользователям большой сюрприз – и представила собственный дистрибутив Linux, CBL-Mariner 1.0.

15.07.2021    1899    user1015646    2       

Стартовала программа возмещения затрат разработчикам на скидки для малого бизнеса

Новость Законодательство Импортозамещение ИТ-новость Облачные технологии

Утверждена программа, в которой предусмотрено субсидирование разработки облачного программного обеспечения для малого и среднего бизнеса, а также скидки на софт, разработанный в рамках данной программы, до 50%.

15.07.2021    938    ЕленаЧерепнева    0       

Исследователи установили: ИИ-программы для собеседований не понимают речь соискателя

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

Эксперты из Массачусетского технологического института (MIT) изучили приложения, анализирующие резюме кандидатов. Ученые пришли к выводу, что такой софт плохо справляется с задачами и дает неверные результаты.

14.07.2021    946    VKuser24342747    1       

Юбилейный индекс TIOBE на июль. Рейтинг отмечает 20-летие

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

Ежемесячный индекс TIOBE показывает, какие языки программирования наиболее популярны, и как их популярность растет с течением времени. В июле TIOBE отмечает 20-летие, публикует новый рейтинг и график популярности языков программирования за 20 лет.

12.07.2021    1434    SKravchenko    0       

Google сделает обязательной двухэтапную аутентификацию для аккаунтов разработчиков

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

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

08.07.2021    1253    VKuser24342747    1       

Google установил новый обязательный формат для Android-приложений

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

Компания Google объявила, что стандарт приложений Android App Bundle (AAB) станет обязательным в Play Store. Он заменит монолитный формат APK.

07.07.2021    2108    user1015646    0       

Токен исходного кода интернета продали с аукциона

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

NFT-токены – уникальные двойники цифровых произведений – становятся все популярнее: их стали предлагать на традиционных аукционах с вековой историей. На этот раз ушел с молотка токен исходного кода интернета – на Sotheby’s его продали за 5,43 млн долларов США.

06.07.2021    2515    user1015646    0       

Российский разработчик научил нейросеть генерировать голос Геральта из The Witcher 3

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

Программист под ником nikich340 создал модификацию A Night to Remember для игры The Witcher 3: Wild Hunt, в которую добавлены новые реплики главного героя, озвученные нейросетью. 

06.07.2021    1670    VKuser24342747    0