Управление кулерами amdgpu (rocm_smi)
Здравствуйте, я в линуксе совсем новичок и никогда не писал никаких скриптов, мне нужно чтоб на видеокарте хоть как то регурировались обороты кулеров. Все работает вот уже около 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