Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В нашей лаборатории мы изучаем новое железо в экспериментальных сборках, а также предлагаем его на тест клиентам Selectel.

На этот раз к нам попал сервер GIGABYTE E252-P30 с 80-ядерным процессором от Ampere Altra Q80-30. Этот ARM-процессор уже отметился характеристиками: процессоры с таким числом ядер с частотой 3.0 ГГц при TDP в 210 Вт не предлагает ни один «звездный» вендор.

Прогнали этот сервер через ряд тестов и сравнили с наиболее близким по характеристикам AMD EPYC 7513. Под катом — результаты бенчмарков и предложение протестировать процессор бесплатно.

Зачем мы вообще взяли ARM-процессор на тест


Ранее в дата-центрах Selectel уже были представители семейства ARM — так, у нас есть серверы с «малинками» и процессорами M1. Но полноценно серверных ARM-ов еще не было.

При этом архитектура довольно многообещающая — ARM-процессоры хорошо показывают себя в тестах. Так, Ampere Altra Q80-30 будет полезен в высокопроизводительных вычислениях и при создании облачных платформ. Уже сейчас вы можете арендовать выделенный сервер c этим ARM-процессором или же протестировать сервер с ним бесплатно — в Selectel Lab.

Тема ARM хорошо освещена на Хабре, мы также нередко пишем про нее в блоге Selectel. Так, мы обсуждали, когда ожидать ARM-процессоры в дата-центрах, и следили за разработкой чипа Amper Altra.

ARM-архитектура привлекает внимание. Лидером по использованию таких чипов в инфраструктуре является Amazon — компания планирует перевести часть облачных сервисов на эту архитектуру к 2025 году. Также производством процессоров для открытого рынка занимаются Ampere и Huawei. К слову, AMD тоже пытался последовать тренду, но пока не достиг успеха.

Вот так растет интерес к ARM-архитектуре

Чем еще интересен ARM?

  • Последние годы ARM-архитектура развивается за счет драйвера мобильных устройств.
  • Большинство платформ (JVM, V8, PVM и др.) портированы на ARM.
  • Большая экосистема свободного ПО хорошо сочетается с ARM.

Итак, наконец Ampere Altra оказался у нас в руках. Перейдем к тестам и ответим на вопрос, действительно ли он так хорош, как говорят?

Собираем тестовый конфиг


Собранный для тестов конфиг уже трудится в стойке, в таком виде мы его и сфотографировали. Далее в тексте мы предлагаем фото другой сборки с ARM-процессором — в 1U-корпусе.

Итак, что у нас в сборке:

  • Материнская плата GIGABYTE MP32-AR1-00
  • Процессор Ampere Altra Q80-30
  • Память: 16 x 16 ГБ Micron DDR4 3200 МГц ECC (256 ГБ)
  • 2 SSD-накопителя Micron_5300 на 480 ГБ
  • NVMe-диск на 1 ТБ M.2 SSD (GIGABYTE GP-AG41TB)
  • Три видеокарты Nvidia TESLA T4

Три GPU подключены для проверки работы PCIe-линий при полной загрузке.

Еще немного о железе
Режим: UEFI
Архитектура: aarch64
System Information:
Operating System Ubuntu 22.04.1 LTS 5.15.0-50-generic aarch64
Model GIGABYTE E252-P30-00
Motherboard GIGABYTE MP32-AR1-00
Processor Information
Name ARM ARMv8
Topology 1 Processor, 1 Core, 80 Threads
Identifier ARM implementer 65 architecture 8 variant 3
part 3340 revision 1
Base Frequency 3.00 GHz

Краткий обзор модели Altra-систем GIGABYTE


В этой модели мы имеем компактный edge-сервер в 2U-шасси малой глубины: 439 × 86 × 449 мм. Для удобства в переднюю панель выведена дисковая корзина на шесть SFF-накопителей (SAS-3/SATA-3) с поддержкой горячей замены, а также IO-панель материнской платы и все слоты PCI Express.

Да, вот тут уже начались фотографии сервера в немного другой конфигурации


Список модификаций процессора Ampere Altra и примерные цены. Красным выделен наш тестируемый.


Условия тестирования


В Selectel Lab мы тестируем железо не только для того, чтобы сравнивать заявленные характеристики с реальностью. Также нам важно выяснить, насколько та или иная платформа, комплектующая сервера и т.д. способны встроиться в общую систему дата-центров Selectel. На потенциальный конфиг должны хорошо накладываться существующие автоматизации для выделенных серверов. Они позволяют нам выдавать серверы клиентам в течение 5 минут. Также нам нужно понимать, насколько энергоэффективен сервер. Потребление электроэнергии и температурный режим — важны для адаптации новичка в дата-центрах.

К слову, отечественные «Эльбрусы» тут нам не очень подошли. Прочитайте, как мы их тестировали.

В общем, у нас были некоторые требования к тестам, и они вылились в следующий список:

  • AI-Benchmark — измеряет скорость, энергопотребление и требования к памяти для нескольких ключевых алгоритмов искусственного интеллекта.
  • Geekbench 5 — утилита для тестирования CPU и GPU.
  • gpu-burn — проведем классический стресс-тест для видеокарт.
  • Проверим наши GPU с помощью показателей скорости кодирования/декодирования видео через программу ffmpeg NVENC.
  • CUDA Toolkit — пакет библиотек, компиляторов и ПО для работы с видеокартами.
  • Проверка температурного режима и энергопотребления. Для получения нужных графиков использовал стандартный софт для мониторинга — Grafana и Prometheus.

С чем будем сравнивать


Для сравнения с Amper Altra выбрали два процессора AMD EPYC 7513 — 64 ядра в сумме, базовая частота 2,6 ГГц (до 3.65 ГГц в режиме Turbo CORE). Этот CPU — достойный конкурент, который входит в топ-3 по результатам бенчмарков в single-core режиме. Это наш собственный рейтинг процессоров, которые были на тесте в Selectel Lab. Полный список можно посмотреть в нашем профиле Geekbench5.

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


Подготовка к тестам


Установка операционной системы и ПО


Пока ARM-архитектура поддерживает ограниченное количество дистрибутивов.

Операционные системы, которые поддерживает ARM
  • ALT Linux,
  • Arch linux,
  • Astra Linux,
  • Bodhi Linux,
  • Chrome OS,
  • Debian,
  • ELinOS,
  • Fedora,
  • Centos,
  • Gentoo,
  • GoboLinux,
  • iPodLinux,
  • Kali linux,
  • Maemo,
  • MeeGo,
  • MontaVista,
  • openSUSE,
  • Open webOS,
  • Sailfish OS,
  • Slackware,
  • SteamOS,
  • T2 SDE,
  • Ubuntu,
  • Wind River Linux.


Selectel поддерживает четыре из них: Astra Linux, Debian, Centos, Ubuntu.

На сервер решил установить Ubuntu, так как это наиболее частая в использовании ОС. В методиках испытаний использовал Ubuntu 22.04.01 LTS 5.15.0-50-generic aarch64 — это наиболее свежий дистрибутив Ubuntu под архитектуру aarch64.

Здесь никаких сюрпризов: операционная система установилась без проблем, с драйверами для видеокарт трудностей не возникло. Установка cuDNN 11.7, NVIDIA-SMI 515.65.01, libcudnn8 прошла корректно.


Теперь переходим к тестам.

Результаты Geekbench 5


Результат получился интересный и конкурентный. В целом, процессор Ampere Altra близок по характеристикам к флагманскому «эпику» от AMD.

Процессор Кол-во ядер/ потоков Base/Max частота, ГГц Single-Core Score Multi-Core Score Link
Ampere Altra Q80-30 80/80 1.00/3.00 883 42374 https://browser.geekbench.com/v5/cpu/17900837
2x AMD EPYC 7513 64/128 2.60/3.65 1299 32377 https://browser.geekbench.com/v5/cpu/19557141
AMD EPYC 7552 48/96 2.20/3.30 1022 35438 https://browser.geekbench.com/v5/cpu/428800

На графике ниже — сравнение проведенных тестов Ampere Altra Q80-30 и AMD EPYC 7513 в Geekbench 5.

Результат в режиме Single-core:


В этом режиме AMD имеет большое преимущество перед ARM-процессором. Но все меняется, если мы тестируем две разные архитектуры чипа в режиме Multi-core:


Мы видим, что ARM-процессор сильно выбивается вперед по всем критериям. Особенно это заметно в параметрах, которые касаются параллелизации. Если задача хорошо параллелится, чем больше ядер — тем лучше. При этом не просто квазиядер (гипертрейдинговых), с которыми работает x86-архитектура, а физических ядер. Поэтому в ряде критериев — например, гауссовском размытии, HDR, Camera и т.д. — ARM лидирует очень уверенно. Впрочем, вы видите сами: вся магия происходит именно в многопоточном режиме.


Краткий вывод: В однопоточном режиме процессор выдает довольно скромные результаты (впрочем, опять же, показатели не так далеко ушли от AMD EPYC). Зато в мультипоточном лидерство Ampere Altra очень уверенное. Даже несмотря на то, что использовалось два процессора AMD EPYC 7513, Ampere Altra Q80-30 составляет конкуренцию процессору от AMD. На момент публикации, согласно внутренним бенчмаркам Selectel, этот процессор на втором месте по производительности после AMD EPYC 7742.

Тесты видеокарт


Не все из планируемых тестов графических процессоров удалось провести из-за особенности архитектуры ARM. Так, под aarch64 TensorFlow — довольно сложно собрать. Времени на подобную работу не было заложено в первую итерацию тестирования, поэтому мы отложили эту задачу на будущее. В итоге провести тест GPU через AI-Benchmark не удалось.

Geekbench 5, в свою очередь, не поддерживает на данный момент бенчмарк CUDA и OpenCL GPU под aarch64. Здесь тоже без результатов.

Зато результаты кодирования/декодирования через ffmpeg получены.

Результаты декодирования видео


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

Для тестов взяли наше эталонное видео в разрешении 4K размером 618 МБ.

Команда на выполнение декодирования:

time ffmpeg -y -i input.mp4 -preset fast  -b:v 5M -profile:v high -bf 3  -rc-lookahead 20 -vsync 0 output.mp4

Конфигурация FPS Время
Ampere Altra Q80-30 65 4m53.608s
2х AMD EPYC 7513 95 3m20.599s

Краткий вывод: В данном тесте выиграл AMD — возможно из-за большего количества потоков (напомним, что их 128). Также не стоит забывать, что у него два сокета, а у ARM — один.



Стресс-тест процессора


Справочная информация по политикам работы процессора


Для стресс-теста ARM-процессора мы использовали несколько режимов политик работы процессора — ondemand, performance. Эти режимы есть и на х86-архитектурах.

Ondemand. Режим установлен по умолчанию. В нем — пошаговое повышение работы частоты CPU, в зависимости от нагрузки, а также напряжения CPU. Каждые 20~200 мс замеряется нагрузка на CPU, общая или системным пользователем. Если нагрузка на текущей частоте более 95%, частота повышается. Если менее 20% — частота понижается на один шаг.

Например, если доступные частоты — 800-2000-3000 МГц, то при загрузке CPU на 95% частота переходит с 2000 на 3000 МГц. Частота замера, процент загрузки перехода для всех режимов выставляется при компиляции ядра.

Performance. Название режима говорит само за себя. В нем процессор выдает максимально доступную частоту, максимум своей производительности.

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

Возможные режимы работы процессора:

  • powersave — из названия можно догадаться, что это режим сохранения энергии: минимум производительности, максимум энергоэффективности.
  • shedutil — похож на ondemand, но умеет использовать данные планировщика задач CFS. За счет этого действует более разумно. Однако он не работает с отличными от CFS планировщиками — например, с muQSS Коливаса.
  • userspace — работа процессора на заданной пользователем частоте.
  • conservative — похож на режим ondemand, но показатель для перехода частоты процессора в большую или меньшую сторону ниже — обычно 20%. Например, доступно 500-1000-2000 МГц, работаем на 500 МГц. Нагрузка возросла на 30% — переходим на 1000 МГц.

Чтобы выставить режим, или политику, работы процессора в Ubuntu, используйте следующую команду:

#echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor


Результаты стресс-теста


Результаты стресс-теста любопытные: температурные графики не менялись, хотя частота ядер в первом тесте была меньше, чем во втором.


  • График сверху указывает на среднюю частоту среди ядер.
  • Второй график показывает частоту на каждое ядро.

Первый тест начался с 12:50 до 13:40 в режиме ondemand. Повторный стресс-тест — c 13:40 до 14:50 — в режиме performance. При этом энергопотребление не изменилось. Как можно увидеть, в режиме ondemand процессор работает не на максимум и скидывает частоту на некоторых ядрах.

Краткий вывод: Причин у такого поведения в режиме ondemand может несколько. Первый — процессор реально перегревается и дропает частоту на наиболее горячих ядрах. Второй — ARM настолько умный, что видит: ядро не утилизилируется и просто понижает частоту для экономии энергопотребления.

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

Температурный режим и энергопотребление


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

Теперь — к заводским значениям температуры:


Энергопотребление процессора составило 150 Вт в пике стресс-теста при паспортном TDP — 210 Вт.


Краткий вывод: Показатели температур и энергоэффективности довольно комплиментарны для использования в дата-центрах. Но мы еще планируем перепроверять данные в других конфигах и сборках. Процессор новый для нас и требует более масштабной проверки.

Заключение


Базовые тесты ARM-процессора Ampere Altra показали, что на данный момент этот CPU эффективнее с точки зрения электропотребления. Учитывая этот факт и цену процессора, он экономически выгоден для дата-центра.

Для клиента же этот процессор — возможность оценить преимущества ARM-архитектуры в высокопроизводительных вычислениях. Кроме того, конфиг с новым ARM стоит дешевле, чем сборка со сравниваемым AMD EPYC. Это хорошее предложение, учитывая небольшую разницу в бенчмарках процессоров.

Мы продолжим тесты новой платформы — в конкретных приложениях и задачах. Приглашаем к тестированию и вас. Сейчас вы можете оставить заявку в Selectel Lab и попробовать ARM-процессор в своих рабочих задачах.

Комментарии (10)


  1. OBIEESupport
    28.12.2022 16:22
    +4

    Выводы по статье поддерживаю. Тестировал предложенные конфигурации в облаке Oracle во Франкфурте-на-Майне. Конфигурация и количество ядер - просто огонь!


  1. RuslanHamhoev
    28.12.2022 16:53
    +2

    AWS уже давно их продвигает, тестировали, в следующем году планируем использовать в проде. Главная причина конечно же цена.


  1. DmitryZlobec
    28.12.2022 17:01
    +8

    Отличный обзор, но было бы интересно сравнить именно сервера, на серверных задачах. Например СУБД, web или виртуализация.


    1. Maksvelis Автор
      28.12.2022 17:05
      +1

      Спасибо, будем делать, в будущем.


  1. maeris
    28.12.2022 20:57
    +3

    А как там дела с ценой? Мне одному кажется, что сравнивать абсолютные цифры перформанса некорректно?

    Было бы намного интереснее увидеть сравнение по score/price, и в price кроме самого ядра заложить ещё какое-нибудь типовое решение. Рынок ARM слабо развит, конкуренции мало, цена решения может существенно зависеть от доступной обвязки.

    Ну и, конечно же, серверные решения сравнивать только по цене сервера бессмысленно, потому что есть ещё и энергопотребление. Было бы интересно посмотреть на энергоэффективность (score/kWh) и амортизацию (за сколько времени окупается разница в цене более энергоэффективных решений относительно какого-нибудь бейзлайна).

    Если бы я оценивал, стоит ли использовать ARM в собственном датацентре, мне кажется, эта статья была бы в целом бесполезна.


    1. Maksvelis Автор
      28.12.2022 22:04

      Цены у всех разные, кто как договориться, у кого то дисконт может быть и 40% от рыночной цены по этому данное сравнение тяжело сделать. Сделали приблизительно по рек. цене.

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


  1. rPman
    28.12.2022 23:46

    Как на arm-машинах организован загрузчик? работает EFI? как проводилась установка? типовые инструменты или специализированные от производителя?


    1. Maksvelis Автор
      29.12.2022 09:22
      +1

      Не понял вопрос про загрузчик имеете ввиду схему загрузки?


      EFI работает
      Установка с флешки и через PXE с постинсталом.

      Инструменты типовые.


      1. rPman
        29.12.2022 09:50

        pxe тоже работает? неплохо

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

        p.s. а есть ли на arm машинах bios, аналогичный как у x86 архитектуры, в смысле графический/текстовый интерфейс для получения информации о машине и изменения настоек?


        1. Maksvelis Автор
          29.12.2022 10:05
          +2

          Да PXE работает, сейчас собираем доступные образы для теста поддерживающих ОС.
          по поводу BIOS да он есть и не сильно отличается от x86