LINUX.ORG.RU
решено ФорумAdmin

Управление кулерами amdgpu (rocm_smi)

 


0

1

Здравствуйте, я в линуксе совсем новичок и никогда не писал никаких скриптов, мне нужно чтоб на видеокарте хоть как то регурировались обороты кулеров. Все работает вот уже около 4 часов и тимпература gpu меня устраивают, хочу просто знать нет ли чего то критичного в этом скрипте что могло бы навредить видеокарте или системе ?

rocm smi это утилита которая показывает тимпературы, частоты, ваты видеокарты, так же через нее можно задать скорость куллеров в процентах

while true;
do
 for var in $(rocm_smi  | grep ^0 | cut -d" " -f5 | colrm 3) -> вывод показывает двухзначный показатель тимпературы gpu
do
 if (( $var <= 55 ))
then
 rocm_smi -d 0 --setfan 45% & sleep 2
 elif (( $var >= 56)); (($var <= 58 ))
then
 rocm_smi -d 0 --setfan 55% & sleep 2
 elif (( $var >= 59)); (($var <= 62 ))
then
 rocm_smi -d 0 --setfan 65% & sleep 2
 elif (( $var >= 63)); (($var <= 65 ))
then
 rocm_smi -d 0 --setfan 70% & sleep 2
 elif (( $var >= 70 ))
then
 rocm_smi -d 0 --setfan 100% & sleep 2
fi
done
done
сделал чтоб скорость куллеров постоянно не дергать, теперь главнео чтоб работало как часы )).

#!/bin/bash
fan1=102
fan2=122
fan3=135
fan4=160
fan5=173
fan6=255
while true;
do 
	for var in $(rocm_smi  | grep ^0 | cut -d" " -f5 | colrm 3); do
	for fan in $(rocm_smi -d 0 --showfan | grep ^GPU | cut -d" " -f5); do	
	if [ $var -le 50 -a $fan -ne $fan1 ];
then
	rocm_smi -d 0 --setfan 102 & sleep 2
	elif [ $var -le 50 -a $fan -eq $fan1 ];
then
	 echo "tem <= 50" & sleep 2
	elif [ $var -ge 51 -a $var -le 55 -a $fan -ne $fan2 ];
then
	rocm_smi -d 0 --setfan 127 & sleep 2
	elif [ $var -ge 51 -a $var -le 55 -a $fan -eq $fan2 ];
then
	echo "tem 51-55" & sleep 2
	
	elif [ $var -ge 56 -a $var -le 58 -a $fan -ne $fan3 ];
then
	rocm_smi -d 0 --setfan 140 & sleep 2
	elif [ $var -ge 56 -a $var -le 58 -a $fan -eq $fan3 ];
then
	echo "tem 56-58" & sleep 2
	elif [ $var -ge 59 -a $var -le 62 -a $fan -ne $fan4 ];
then
	rocm_smi -d 0 --setfan 165 & sleep 2
	elif [ $var -ge 59 -a $var -le 62 -a $fan -eq $fan4 ];
then
	echo "tem 59-62" & sleep 2
	elif [ $var -ge 63 -a $var -le 69 -a $fan -ne $fan5 ];
then
	rocm_smi -d 0 --setfan 178 & sleep 2
	elif [ $var -ge 63 -a $var -le 69 -a $fan -eq $fan5 ];
then
	echo "tem 59-62" & sleep 2
	elif [ $var -ge 70 -a $fan -ne $fan6 ];
then
	rocm_smi -d 0 --setfan 255 & sleep 2
	elif [ $var -ge 70 -a $fan -eq $fan6 ];
then
	echo "CRIT TEM" & sleep 2		
fi
done
done
done



Последнее исправление: kep1990 (всего исправлений: 6)

Непонятно зачем каждые 2 секунды дергать установку скорости, она могла и не поменяться. А так по хорошему нужно вотчдог чтобы если скрипт упал, то он перезапустился или аларм какой-то пошёл. А так что там может случиться то? В худшем случае комп выключится из-за перегрева.

З.ы. форматирование сделай. Ответ на вопрос «как» смотри по ссылке Markdown под окном ввода текста

cobold ★★★★★
()
Последнее исправление: cobold (всего исправлений: 1)
Ответ на: комментарий от kep1990

завести переменную, в которой хранить вычисленную на предыдущей итерации цикла скорость. Перед входом в цикл присвоить ей 0

cobold ★★★★★
()
Ответ на: комментарий от tyamur

Чем отличается драйвер от набора библиотек?

mazdai ★★★
()
Ответ на: комментарий от einhander

fancontrol ругался, куллеры cpu и второй видеокарты регулирует а на первую карту ругается и все тут.

kep1990
() автор топика
Последнее исправление: kep1990 (всего исправлений: 1)
Ответ на: комментарий от cobold

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

kep1990
() автор топика
Ответ на: комментарий от kep1990
  1. rocm_smi -d 0 --setfan 100% & sleep 2 100% в этой команде заставило меня думать что обороты вентиляторов регулируются в диапазоне от 0-100% Чего добиваетесь указывая 140%?

  2. если указываете просто число без символа %, то вполне может быть что шаг регулирования на конкретной карте не кратен 1/256 максимальных оборотов. Это зависит от конкретной реализации системы охлаждения. Может быть у pwm контроллера всего есть 10 скоростей

cobold ★★★★★
()
Последнее исправление: cobold (всего исправлений: 1)
Ответ на: комментарий от cobold

во втором варианте я указывал не процентами а уровнями от 0 до 255 мне так удобней. в переменных fan1..fan6 значение взяты уже после задания скоростей зарание, проблема в том что если я задавал скорость к примеру 140 в реальности она становилась 135, и так со всем значениями . приходилось зарание задавать уровень скорости и смотреть какой уровень реально приминился. С процентами такая же проблема, главное что все работает, лучше туда не лазить )

kep1990
() автор топика
Ответ на: комментарий от Meyer

AMDGPU-PRO это собственность компании amd от сюда и проприетарный он, с моей точки зрения, но я и ошибаться могу )

kep1990
() автор топика
Ответ на: комментарий от kep1990

Суть в том что AMDGPU-PRO - это не драйвер/ядерный модуль, а просто набор проприентарных библиотек.

AMDGPU в ядре всегда был открытым и поверх него работают как проприентарные, так и свободные библиотеки.

Meyer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.