Skip to content

Instantly share code, notes, and snippets.

@Tknott95
Last active March 5, 2024 18:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tknott95/c8b71c69055cd317970df591e4b6c70e to your computer and use it in GitHub Desktop.
Save Tknott95/c8b71c69055cd317970df591e4b6c70e to your computer and use it in GitHub Desktop.
shell script clocking SETTERS (from honeybadgerminer aka platform137)
#!/bin/bash
# p - power draw | NVIDIA-SMI
# t - temp threshold | NVIDIA-SMI
# f - fan speed | NVIDIA-SETTINGS
# m - memory transfer rate offset | NVIDIA-SETTINGS
# g - graphics clock offset | NVIDIA-SETTINGS
# NEEDS TO BE REFACTORED AS THIS IS SLOPPY CODE
while getopts 'p:t:f:m:g:' OPTION; do
case "$OPTION" in
p)
which_gpu=$(echo $OPTARG | grep -Eo "^[0-9]+")
power_val=$(echo $OPTARG | grep -Eo ':.*' | grep -Eo '[0-9]+.[0-9]+')
# POWER COMES IN AS FLOAT SO REGEX IT A TAD DIFF
nvidia-smi -i $which_gpu -pl $power_val
;;
t)
which_gpu=$(echo $OPTARG | grep -Eo "^[0-9]+")
temp_val=$(echo $OPTARG | grep -Eo ':.*' | grep -Eo '[0-9]+')
nvidia-smi -i $which_gpu -gtt $temp_val
;;
f)
# VAL COMES IN AS <#-of_gpus>:<fan-speed>
# '20:30' in examples
which_fan=$(echo $OPTARG | grep -Eo "^[0-9]+")
fan_val=$(echo $OPTARG | grep -Eo ':.*' | grep -Eo '[0-9]+')
echo "ARG COMING IN: $OPTARG";
echo "FAN TARGETING: $which_fan"
echo "FAN PERCENTAGE: $fan_val"
nvidia-settings -a GPUFanControlState=1 -a [fan:$which_fan]/GPUTargetFanSpeed=$fan_val
# nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=$fan_val
;;
m)
which_gpu=$(echo $OPTARG | grep -Eo "^[0-9]+")
clock_val=$(echo $OPTARG | grep -Eo ':.*' | grep -Eo '[0-9]+')
nvidia-settings -a [gpu:$which_gpu]/GPUMemoryTransferRateOffset[2]=$clock_val
# nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[2]=$OPTARG
;;
g)
which_gpu=$(echo $OPTARG | grep -Eo "^[0-9]+")
clock_val=$(echo $OPTARG | grep -Eo ':.*' | grep -Eo '[0-9]+')
nvidia-settings -a [gpu:$which_gpu]/GPUGraphicsClockOffset[2]=$clock_val
# nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[2]=$OPTARG
;;
?)
echo "script usage: $(basename \$0) [-l] [-h] [-a somevalue]" >&2
exit 1
;;
esac
done
# shift "$(($OPTIND -1))"
@Tknott95
Copy link
Author

Tknott95 commented Mar 5, 2024

needs to be refactored as you will see when you read the code. I was using vim at the time and just yanking down variables instead of setting it once to speed things up at the time.

@Tknott95
Copy link
Author

Tknott95 commented Mar 5, 2024

Could be a nice bash function to everything from one function. With most Linux support it is hard to get all of this in one GUI/tool. Just refactor the variables to only be set once.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment