Обзор технологии Intel® Speed Select Technology
В современных процессорах применяются десятки различных технологий, каждая из которых по-своему уникальна. Сегодня мы расскажем об одной из них.
Что такое Intel® Speed Select Technology
Intel® Speed Select (SST) — это технология, которая предоставляет возможность гибкой настройки производительности, доступная на процессорах Intel® Xeon® Scalable с суффиксом «Y».
Процессоры с технологией SST имеют несколько преднастроенных профилей, каждый из которых задает количество активных ядер и базовую частоту процессора. Это позволяет иметь множество одинаковых серверов, которые конфигурируются под текущие задачи.
Так для тестового окружения можно выделить сервера с большим количеством ядер, а для продуктового окружения — с большей тактовой частотой. При этом использование одинаковых конфигураций серверов упростит построение и обслуживание серверов. Дополнительный «плюс»: при необходимости тестовые сервера можно переконфигурировать для работы в продуктовом окружении.
Рассмотрим на примере Intel® Xeon Gold 6336Y.
Название профиля | Количество ядер | Базовая частота, ГГц | Максимальная частота, ГГц | TDP, Ватт |
Base | 24 | 2.4 | 3.6 | 185 |
Config 3 | 12 | 2.9 | 3.6 | 150 |
Config 4 | 8 | 3.1 | 3.6 | 140 |
По умолчанию процессор работает в профиле «Base» с 24 ядрами и базовой частотой 2.4 ГГц. В случае, если сервер используется с включенной опцией Intel® Turbo Boost, то снижение количества ядер приведет лишь к снижению энергопотребления и тепловыделения.
При использовании технологии SST на серверах с выключенной опцией Turbo Boost прирост базовой частоты ощутим.
Как включить
Выбор профиля технологии SST производится в Setup Utility при загрузке сервера. Местонахождение настроек и их именование может отличаться в зависимости от используемой материнской платы. В нашем случае путь до настроек следующий:
Setup Utility -> CPU Configuration -> Advanced Power Management Configuration -> CPU P States Configuration
На серверах, арендуемых в Selectel, указанные действия выполняются силами технической поддержки через запрос в тикете.
Меню настроек SST содержит множество пунктов и краткую таблицу с характеристиками доступных профилей. Рассмотрим наиболее интересные:
- SpeedStep (Pstates) — включает или отключает управление производительностью процессора через P-states.
- Intel SST-PP (Speed Select Technology — Performance Profile) — позволяет выбрать один из доступных профилей, описанных в таблице ниже.
- Dynamic SST-PP — включает режим изменения профиля без перезагрузки сервера.
- Activate SST-BF (Speed Select Technology — Base Frequency) — включает возможность повышения базовой частоты для определенных ядер ценой снижения для остальных.
- Configure SST-BF — определяет кто должен конфигурировать ядра с повышенной частотой.
- Turbo Mode — включает или выключает режим Intel® Turbo Boost.
Функция Base Frequency позволяет выбрать определенные процессорные ядра и повысить на них тактовую частоту, снизив частоту остальных ядер. Это позволяет ускорить выполнение приложений, критичных к тактовой частоте.
Внесение изменений в раздел настроек Intel Speed Select обычно требует перезагрузки и манипуляций в Setup Utility. Однако, если включить опцию Dynamic SST-PP, то изменение числа ядер возможно прямо на «живой» системе.
Для настройки SST-PP и SST-BF необходима утилита intel-speed-select. Хотя данная утилита включена в исходные коды ядра, в некоторых дистрибутивах Linux она отсутствует. Установить ее достаточно просто.
Посмотрим на установленную версию ядра:
uname -a
Сперва скачиваем исходный код вашей версии ядра, например, с kernel.org.
Далее распаковываем и компилируем требуемую утилиту.
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.143.tar.xz
tar xvf linux-5.4.143.tar.xz
cd linux-5.4.143/tools/power/x86/intel-speed-select/
make
sudo make install
Теперь утилита доступна для использования. Включаем профиль 3:
intel-speed-select perf-profile set-config-level -l 3 -o
В некоторых случаях выполнение этой команды может привести к ошибке.
Option is set to online/offline
offline cpu 0
intel-speed-select: /sys/devices/system/cpu/cpu0/online open failed: No such file or directory
Это связано с тем, что для данного процессора ядро 0 (самое первое, на котором загружается ОС) не может быть отключено по умолчанию. Решить эту проблему просто: включить поддержку отключения первого ядра через добавление параметра cpu0_hotplug в аргументы ядра.
При использовании загрузчика GNU GRUB 2 достаточно дополнить переменную GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub и выполнить команду update-grub.
Теперь, когда мы умеем настраивать процессор, перейдем к тестам.
Тестирование
Для тестирования мы используем GeekBench 5. Мы провели тесты всех профилей с включенным и выключенным Turbo Boost. Результаты представлены в таблицах ниже.
Single-Core Score
Профиль | С Turbo Boost | Без Turbo Boost |
Base | 1286 | 848 |
Config 3 | 1288 | 1081 |
Config 4 | 1285 | 1155 |
Multi-Core Score
Профиль | С Turbo Boost | Без Turbo Boost |
Base | 37184 | 28328 |
Config 3 | 24469 | 20649 |
Config 4 | 18737 | 15456 |
Легко заметить, что с режимом Turbo Boost производительность одноядерных вычислений не изменилась, а в многоядерных задачах производительность упала. Однако, если решаемые задачи не предполагают использования Turbo Boost, то тонкая настройка с помощью Intel® SST может быть актуальна.
Заключение
Технология Intel® SST — это специфичная технология, которая позволяет «изменять» конфигурацию сервера без физического вмешательства. Эта технология имеет узкую специализацию и заточена под задачи, которые не используют режим Turbo Boost.