February 28, 2022

Новое ядро Linux будет выжимать максимум из процессоров Intel, хоть и с колоссальным опозданием

Linux научится выжимать максимум из новейших процессоров Intel семейства Alder Lake благодаря поддержке интерфейса HFI, который позволит планировщику операционной системы правильно распределять вычислительную нагрузку между быстрыми и экономичными ядрами чипа. Сейчас, в отличие от Windows 11, Linux этого не умеет. Соответствующие патчи будут включены в ядро Linux 5.18, выхода которого следует ожидать весной 2022 г.

Linux «догонит» Windows 11

В состав Linux версии 5.18 будут включены драйверы, которые позволят операционным системам на его основе оптимальным образом распределять нагрузку между ядрами процессора различного типа. Об этом сообщил профильный ресурс Phoronix. Данное изменение, как ожидается, позволит значительно повысить производительность гибридных чипов Alder Lake в Linux-системах.

Ключевой особенностью ряда десктопных процессоров Intel 12 поколения, представленных в конце октября 2021 г., является разделение входящих в их состав ядер на производительные (архитектура Golden Cove) и энергоэффективные (Gracemont).

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

Похожая схема реализована в архитектуре big.LITTLE компании ARM. Процессоры на ее базе широко применяются при производстве смартфонов, планшетов и прочей портативной техники.

В Linux 5.18 появится поддержка Intel HFI

В отличие, к примеру, от Microsoft Windows 11, Linux пока не располагает поддержкой технологии Intel Thread Director, которая использует специальный интерфейс ([Enhanced] Hardware Feedback Interface, HFI) для обмена информацией о производительности/энергоэффективности отдельных ядер. Таким образом, Linux не имеет достаточно данных, чтобы сформировать полное представление о том, обработку каких именно потоков необходимо «повесить» на те или иные ядра.

По информации Tom’s Hardware, сейчас решение о привязке потока к тому или иному ядру Linux получает через драйвер Intel Turbo Boost Max 3.0, который, в свою очередь, опирается на данные микропрограммы (прошивки) процессора. Именно поэтому система нередко отдает предпочтение быстрым ядрам Golden Cove с максимальной тактовой частотой, оставляя ядра Gracemont без какой-либо полезной нагрузки, несмотря на их доступность. Такое положение дел приводит к тому, что вычислительный потенциал процессоров Intel 12 поколения в Linux остается нереализованным.

Патчи давно готовы

Решить данную проблему призвана серия патчей, добавляющих поддержку HFI в Linux, они были подготовлены Intel в конце 2021 г. Впервые Intel упомянула HFI в официальной документации в конце декабря 2020 г.

По данным Phoronix, этот механизм взаимодействия процессора с операционной системой в Linux появится в ядре версии 5.18. Точная дата его выхода пока не определена, однако известно, что релиз состоится весной 2022 г.

Источник обратил внимание на то, что в конце прошлой недели код HFI был включен в ветку linux-next Рафаэлем Высоцким (Rafael Wysocki), который является сотрудником Intel и отвечает за поддержку кода управления питанием в Linux.

Как работает HFI

Intel Thread Director посредством HFI способен отдавать операционной системе числовые значения, характеризующие степень энергоэффективности и производительности отдельного ядра процессора.

Значение может лежать в диапазоне от 0 до 255 и меняться в зависимости от внешних факторов с различной периодичностью. Чем оно выше, тем лучше соответствующий показатель. Нулевое значение параметра сообщает операционной системе о том, что использовать данное конкретное ядро не рекомендуется.

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

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

Windows 11 и процессоры Ryzen

Несмотря на полноценную поддержку Thread Director, Windows 11 в отношении оптимального использования имеющихся вычислительных мощностей тоже не без изъяна.

В октябре 2021 г. CNews писал о проблеме падения производительности процессоров AMD под управлением новейшей версии ОС Microsoft. Как как оказалось, Windows 11 не «дружит» с чипами Ryzen линеек 2000, 3000, 4000 и 5000 на архитектурах Zen+, Zen 2 и Zen 3. Среди возможных причин назывались некорректная работа механизма Collaborative Processor Performance Control (CPPC2) и задержки в работе кэш-памяти третьего уровня (L3).

Патч, выпущенный Microsoft спустя несколько дней после обнаружения проблемы, ее лишь усугубил. Однако впоследствии проблема все же была устранена.