
Использование утилиты rocm-smi для мониторинга и разгона видеокарт АМД в linux
Операционная система linux предоставляет массу возможностей для управления аппаратным обеспечением компьютера, что дает возможность в полной мере раскрыть его мощь.
Использование утилиты rocm-smi значительно расширяет возможности мониторинга и разгона видеокарт АМД в linux, что особенно важно при майнинге.
В данной статье рассматриваются особенности применения этой полезной программы для изучения возможностей gpu, отслеживания их состояния, а также тонкой настройки.
Коротко об утилите rocm-smi
Утилита ROC System Management Interface (сокращенно rocm-smi ) расширяет функционал системы путем получения контроля над частотами, напряжением и температурой видеокарт производства компании AMD в операционных системах с ядром linux.
Установка утилиты rocm-smi в ОС Linux на примере Xubuntu 18.04
Скачать программу rocm-smi можно с официального репозитория на Github путем выполнения команды:
git clone https://github.com/RadeonOpenCompute/rocm_smi_lib
В результате ее выполнения в каталоге из которого запускался терминал появится папка с исходниками:

Для компиляции последней версии rocm_smi нужно установить doxygen и latex (pdfTeX).
Компиляция утилиты осуществляется из папки rocm_smi командами:
mkdir -p build&& cd buildcmake ..make
Запуск утилиты rocm-smi производится в терминале в директории, где она находиться командой:
sudo ./rocm-smi Для успешного применения rocm-smi ее запуск обязательно должен производить с правами суперпользователя.
Все операции с программой производятся из консоли путем выполнения команд, поддерживающихся программой и системой. Полная поддержка всех функций программы станет доступна после активации технологии OverDrive.
Команды, использующиеся для управления программой rocm-smi
Для работы с программой rocm-smi для тонкой настройки и контроля видеокартrocm-smi AMD используются следующие команды:
Примеры практического использования утилиты rocm-smi для мониторинга, даунвольтинга и разгона видеокарт АМД
Для безошибочного выполнения команд rocksmi в командной строке нужно использовать полный путь к ее исполняемому файлу, а также иметь права рут.
При запуске rocksmi tool без дополнительных ключей:
sudo ./rocm-smi
на экран выводится информация об основных параметрах видеокарт(температура, среднее потребление, частота ядра, памяти, скорость вращения вентиляторов, установленный уровень производительности, лимит потребления, загрузка видеопамяти и ядра gpu):
Команда:
rocm-smi -h
выдает данные о версии программы/ядра и перечень доступных команд.
Для отображения информации о вольтаже на ядре используют команду:
Полный список команд, использующихся утиоитой ROCM-SMI версии 1.3.1:
Опциональные аргументы:
-h, --help — отображение помощи и выход; --gpureset - ресет GPU (должен быть указан номер одной видеокарты); --load FILE - загрузит Clock, Fan, Performance и установки Profile из FILE; --save FILE - сохранить Clock, Fan, Performance и Profile в файл.
Сохранение происходит в папке с установленной программой, в файле хранится следующая информация:
{"card1": {"profile": "1", "vJson": 1, "perflevel": "auto", "overdrivemclk": "0", "clocks": {"pcie": "1", "sclk": "4", "mclk": "1"}, "fan": 73, "overdrivesclk": "0"}}
-d DEVICE [DEVICE ...], --device DEVICE [DEVICE ...] - выполнить команду для видеокарты (видеокарт через пробел).Опции отображения (Display Options):
--alldevices — выполнить команду относительно всех не-AMD, а также AMD устройств; --showhw — показать детали устройства (Show Hardware details);-a, --showallinfo показать температуру, скорость вентиляторов и частоту.
Основные опции:
-i, --showid показать GPU ID; -v, --showvbios — показать информацию о версии VBIOS; --showdriverversion — показать информацию о версии kernel driver;--showfwinfo [BLOCK [BLOCK ...]] - показать информацию о FW; --showmclkrange — отобразить данные о частотах памяти (mclk range); --showmemvendor — показать информацию о производителе GPU memory; --showsclkrange — отобразить диапазон частот ядра (sclk range); --showproductname — показать имена SKU/Vendor; --showserial — показать серийный номер GPU; --showuniqueid показать уникальный ID GPU; --showvoltagerange - показать диапазон значений вольтажа (voltage range); --showbus — показать номер шины PCI (bus number); Информация о страницах памяти (Pages information): --showpagesinfo — показать retired, pending и незарезервированные страницы; --showpendingpages — показать pending странцы; --showretiredpages — показать retired странцы.
Отображение информации относительно аппаратного обеспечения:
-f, --showfan - показать текущую скорость вращения вентиляторов (fan speed); -P, --showpower — отобразить текущее потребление; -t, --showtemp — показать температуру; -u, --showuse — показать уровень загрузки GPU; --showmemuse -уровень загруженности памяти GPU ; --showvoltage показать текущий вольтаж ядра GPU.
Информация, касающаяся софта и контроллеров:
-b, --showbw - показать загруженность PCIe;-c, --showclocks - показать текущие частоты ядра, памяти видеокарт и шины pcie; -g, --showgpuclocks — показать текущие частоты gpu; -l, --showprofile — показать атрибуты профиля Compute;
-M, --showmaxpower — показать максимальный уровень энергопотребления видеокарты; -m, --showmemoverdrive - — показать текущий уровень разгона OverDrive по частоте памяти GPU (Memory Clock level) — в последних драйверах АМД эта опция разгона не используется; -o, --showoverdrive — показать текущий уровень GPU Clock OverDrive — в последних драйверах АМД эта опция разгона не используется; -p, --showperflevel — отобразить уровень DPM Performance; -S, --showclkvolt показать напряжения ядра и памяти, которые поддерживаются GPU и Memory; -s, --showclkfrq — показать возможные значения частот GPU и Memory; --showmeminfo TYPE [TYPE ...] - отобразить информацию о загруженности памяти для определенных блоков; --showpids - показать KFD PID-ы; --showreplaycount - показать PCIe Replay Count; --showrasinfo BLOCK [BLOCK ...] - показать информацию о RAS и количество ошибок для определенных блоков; --showvc показать кривую вольтажа (voltage curve); --showxgmierr — показать ошибки XGMI с момента последнего обращения.
Опции управления:
--setsclk LEVEL [LEVEL ...] установить уровень частоты GPU (карта должна быть установлена в manual Perf level); --setmclk LEVEL [LEVEL ...] - установить уровень частоты GPU Memory (карта должна быть установлена в ручной режим Perf level); --setpcie LEVEL [LEVEL ...] - установка уровня частоты PCIE Clock Frequency Level(s) (должен быть установлен ручной режим Perf level); --setslevel SCLKLEVEL SCLK SVOLT — изменить частоту GPU (MHz) и Voltage (mV) для определенного уровня; --setmlevel MCLKLEVEL MCLK MVOLT — изменить частоту памяти GPU (MHz) и Voltage (mV) для определенного уровня; --setvc POINT SCLK SVOLT — изменить кривую вольтажа ядра SCLK (зависимость MHz от mV) для определенной точки; --setsrange MINMAX SCLK - установить min(0) или max(1) частоту ядра SCLK; --setmrange MINMAX SCLK - установить min(0) или max(1) частоту памяти MCLK; --setfan LEVEL — установка уровня скорости вращения вентиляторов GPU (уровень или %); --setperflevel LEVEL - установить Performance Level; --setoverdrive % - установить уровень GPU OverDrive (manual/high Perf level) --setmemoverdrive % - установить разгон GPU Memory Overclock OverDrive level (manual|high Perf level); --setpoweroverdrive WATTS — установить предел потрбеления GPU с помощью OverDrive в ваттах; --setprofile SETPROFILE — установить Power Profile level (#) или quoted string для CUSTOM (атрибуты профилей "# # # #..." требуют устанвоки в manual Perf level); --rasenable BLOCK ERRTYPE - включить RAS для определенного блока или типа ошибок; --rasdisable BLOCK ERRTYPE - выключить RAS для определенного блока или типа ошибок; --rasinject BLOCK - Inject RAS poison для определенного блок.
Опции сброса (Reset options):
-r, --resetclocks — сбросить частоту и OverDrive к настройкам по умолчанию; --resetfans — сброс скорости вентиляторов на автоматическое управление драйвером; --resetprofile — сброс Power Profile; --resetpoweroverdrive — установить максимальную потребляемую мощность (GPU power) на значение по умолчанию; --resetxgmierr — сброс счетчика XGMI error.

--showfwinfo [BLOCK [BLOCK ...]] - показать информацию о FW;
--showmclkrange — отобразить данные о частотах памяти (mclk range);
--showmemvendor — показать информацию о производителе GPU memory;
--showsclkrange — отобразить диапазон частот ядра (sclk range);
--showproductname — показать имена SKU/Vendor;
--showserial — показать серийный номер GPU;
--showuniqueid показать уникальный ID GPU;
--showvoltagerange - показать диапазон значений вольтажа (voltage range);
--showbus — показать номер шины PCI (bus number);
Информация о страницах памяти (Pages information):
--showpagesinfo — показать retired, pending и незарезервированные страницы;
--showpendingpages — показать pending странцы;
--showretiredpages — показать retired странцы.
-c, --showclocks - показать текущие частоты ядра, памяти видеокарт и шины pcie;
-g, --showgpuclocks — показать текущие частоты gpu;
-l, --showprofile — показать атрибуты профиля Compute;
-M, --showmaxpower — показать максимальный уровень энергопотребления видеокарты;
-m, --showmemoverdrive - — показать текущий уровень разгона OverDrive по частоте памяти GPU (Memory Clock level) — в последних драйверах АМД эта опция разгона не используется;
-o, --showoverdrive — показать текущий уровень GPU Clock OverDrive — в последних драйверах АМД эта опция разгона не используется;
-p, --showperflevel — отобразить уровень DPM Performance;
-S, --showclkvolt показать напряжения ядра и памяти, которые поддерживаются GPU и Memory;
-s, --showclkfrq — показать возможные значения частот GPU и Memory;
--showmeminfo TYPE [TYPE ...] - отобразить информацию о загруженности памяти для определенных блоков;
--showpids - показать KFD PID-ы;
--showreplaycount - показать PCIe Replay Count;
--showrasinfo BLOCK [BLOCK ...] - показать информацию о RAS и количество ошибок для определенных блоков;
--showvc показать кривую вольтажа (voltage curve);
--showxgmierr — показать ошибки XGMI с момента последнего обращения.

