Skip to content

Instantly share code, notes, and snippets.

@GRinvest
Created November 29, 2017 02:47
Show Gist options
  • Save GRinvest/29c4f1a821820c61b39d148cd9ea051a to your computer and use it in GitHub Desktop.
Save GRinvest/29c4f1a821820c61b39d148cd9ea051a to your computer and use it in GitHub Desktop.
Скрипт для автоуправления вентиляторами для Nvidia карт в Linux
#!/bin/bash
export DISPLAY=:0
NUM_CARDS=5
NS="/usr/bin/nvidia-settings"
while true
do
for ((i=0; i<$NUM_CARDS;i++))
{
GPU_TEMP=`nvidia-smi -i $i --query-gpu=temperature.gpu --format=csv,noheader`
FAN_SPEED=`nvidia-smi -i $i --query-gpu=fan.speed --format=csv,noheader,nounits`
if (($GPU_TEMP < 55)); then
(($GPU_TEMP!=$FAN_SPEED)) && $NS -a [gpu:$i]/GPUFanControlState=1 -a [fan-$i]/GPUTargetFanSpeed=$GPU_TEMP > /dev/null 2>&1
else
if (($GPU_TEMP < 65)); then
let "TARGET_FAN_SPEED=GPU_TEMP+10"
(($TARGET_FAN_SPEED != $FAN_SPEED)) && $NS -a [gpu:$i]/GPUFanControlState=1 -a [fan-$i]/GPUTargetFanSpeed=$TARGET_FAN_SPEED > /dev/null 2>&1
else
let "TARGET_FAN_SPEED = GPU_TEMP + 20"
(($TARGET_FAN_SPEED != $FAN_SPEED)) && $NS -a [gpu:$i]/GPUFanControlState=1 -a [fan-$i]/GPUTargetFanSpeed=$TARGET_FAN_SPEED > /dev/null 2>&1
fi
fi
}
sleep 5
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment