Найти тему
Техно плюс

192-ядерные чипы Ampere ломают ядро Linux ARM64 в системах с двумя сокетами

Да, у вас может быть слишком много процессорных ядер - 192-ядерные чипы Ampere ломают ядро Linux ARM64 в системах с двумя сокетами, компания запрашивает поддержку большего количества ядер.

Количество ядер серверных процессоров на базе ARM превосходит количество операционных систем Linux.

(Image credit: Ampere)
(Image credit: Ampere)

Новые процессоры Ampere One для центров обработки данных от Ampere трещат по швам, имея до 192 ядер, но такое обильное количество ядер вызвало некоторые трудности с поддержкой Linux. Согласно Phoronix, новые процессоры Ampere имеют так много ядер, что Linux не поддерживает системы, в которых два из 192-ядерных чипов Ampere (всего 384 ядра) установлены на одном сервере.

На данный момент ядро Linux ARM64 поддерживает только системы с 256 ядрами или меньше. Чтобы устранить проблему, Ampere представила исправление, предлагающее увеличить количество ядер ядра Linux до 512 с помощью метода под названием "CPUMASK_OFFSTACK".

Этот метод позволяет Linux переопределить ограничение на 256 ядер по умолчанию в текущем ядре Linux, выделив из памяти свободные растровые изображения для масок процессора. Это означает, что ограничение на ядро Linux может быть увеличено без увеличения объема памяти образа ядра, поскольку каждое ядро добавляет 8 КБАЙТ к размеру образа ядра.

Новые процессоры Ampere оснащены самым большим количеством процессорных ядер, которое мы когда-либо видели в процессорах на сегодняшний день. Даже новейшие процессоры AMD Zen 4c EPYC не дотягивают до этого уровня, поскольку чип с самым высоким количеством ядер составляет ровно 128 ядер — два чипа достигли бы предела, но не вышли бы за его пределы.

Это объясняет, почему Ampere является первым производителем процессоров, у которого возникли серьезные проблемы с ограничением ARM64 Linux на 256 ядер.

К счастью, это не повлияет на системы, оснащенные только одним 192-ядерным чипом AmpereOne, но это серьезная проблема для серверов центров обработки данных, оснащенных двумя такими чипами в конфигурации с двумя сокетами. (Однако логические ядра SMT, они же потоки, также значительно превышают цифру 256 в различных системах.)

Новая линейка процессоров

AmpereOne - это новая линейка процессоров от Ampere, отличающаяся поразительно высоким количеством ядер в моделях со 136, 144, 160, 176 и 192 ядрами. Эти чипы построены на наборе инструкций ARMv8.6+ и 5-нм узле TSMC, оснащены двумя векторными блоками по 128 Мб, 2 МБ кэш-памяти L2 на ядро, тактовой частотой 3 ГГц, восьмиканальным контроллером памяти DDR5, 128 полосами PCIe Gen 5 и TDP мощностью 200-350 Вт.

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

По словам Phoronix, может пройти некоторое время, прежде чем лимит количества ядер увеличится до 512. Еще в 2021 году был разослан патч, предлагающий увеличить количество ядер процессора ARM64 до 512, но разработчики Linux опровергли это, поскольку в то время не было доступно оборудование для процессора с более чем 256 ядрами.

В лучшем случае поддержка 512 ядер будет доступна только в 2024 году, когда выйдет ядро Linux 6.8.

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

Технически, исходящее ядро Linux уже поддерживает метод CPU mask off-stack для увеличения лимитов количества ядер процессора, поэтому разработчики Linux просто должны включить эту функцию по умолчанию.