That's weird in 2d the fan control would work but not in 3d, but they are diff tables in the bios, it's just weird it's not able to be set.
But yeah you gotta use msi afterburner.
Or on linux you have to write a script.
If you need this code lemme know, I may not respond right away but I will eventually...
It's really a requirement on my card.
Mine runs at 0rpm at most loads except for the heaviest.
My 680's default was 30% rpm, I set to 37 because at 30 the temp goes to high.
At 0, it's a huge prob as soon as I watch youtube or watch a video of any kind, esp 4k ones, it just doesn't know any better.
When gaming I set my own profile script up, linux, same for windows.
Part of my script, this wil give you an idea of how to setup the ramp up in msi afterburner:
GPU_Fan_Speed_Min="37"
GPU_Fan_Speed_Max="90"
I don't really recommend that you max the fans out, it'll burn them out quicker.
Unless you have them powered up directly to the psu, I'm not sure if these fans are pwm or not (if there were then there's no reason not to use a ramp).
Anyways you get the idea.
Set a min of 30-40%, I recommend the latter.
It's almost silent anyways and you wont end up in trouble later on.
Good deal you got a new card anyways...
This so called feature of silent fans is a bad thing for vga cards.
Eh screw it, I'll give you the code right now incase you do end up using linux or someone else does, it does what it needs to, you need to run it in a terminal and ctrl-c to exit it, then set the fan to a fixed speed after you're done gaming, this isn't important but I have it in .bashrc, and I created a file called bash_api in /bin to call these from menu's and so on, like I said that's just my config.
There's a few things in here for my specific cpu and mobo, but I use them the same every boot.
The cpu tdp code does soemthing, but not much lol, it lowers the max mhz by just a few lmao, whatevers.
The actual statues code doesn't work right anymore I need to redo parts, it's older and before I started doing fan stuff and redid it for the 1080ti.
Code:
gpu_status ()
{
#GPU_Temp="$(nvidia-smi -q --display="Temperature" | grep "GPU Current Temp" | cut -c 39- | sed 's/ C//g')"
#GPU_Fan_Speed="$(nvidia-smi -q | grep "Fan Speed" | cut -c 39- | sed 's/ %//g')"
GPU_Temp="$(nvidia-smi -q --display="Temperature" | grep "GPU Current Temp" | awk '{print $5}')"
GPU_Fan_Speed="$(nvidia-smi -q | grep Fan | awk '{printf $4}')"
printf "\n"
printf " ########################################\n"
printf " # nVdia GPU Status #\n"
printf " ########################################\n"
printf "\n"
printf " GPU Temp:\t\t\t$GPU_Temp ?C\n"
printf " Fan Speed:\t\t\t$GPU_Fan_Speed %%\n"
printf "\n"
printf " ########################################\n"
printf "\n"
}
gpu_fan_ctl ()
{
GPU_Temp="$(nvidia-smi -q --display="Temperature" | grep "GPU Current Temp" | awk '{print $5}')"
GPU_Fan_Speed="$(nvidia-smi -q | grep Fan | awk '{printf $4}')"
if [ "$GPU_Temp" = "$GPU_Fan_Speed" ]
then
# cls
# gpu_status
echo hi
else
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="$GPU_Temp"
#comment this out for actual use for now...
# cls
# gpu_status
fi
}
gpu_fan_ctl2 ()
{
# GPU_Fan_Speed_Min="30"
# GPU_Fan_Speed_Max="100"
GPU_Fan_Speed_Min="37"
GPU_Fan_Speed_Max="90"
# test
# GPU_Temp="70"
GPU_Temp="$(nvidia-smi -q --display="Temperature" | grep "GPU Current Temp" | awk '{print $5}')"
GPU_Fan_Speed="$(nvidia-smi -q | grep Fan | awk '{printf $4}')"
# set this to the min to prevent the main code engaging under the min limit
if [ "$GPU_Temp" -le "37" -a "$GPU_Fan_Speed" = "$GPU_Fan_Speed_Min" ]
then
# do nothing...
echo "Hi.. Temp equ or less 37... Gpu fan speed 37"
elif [ "$GPU_Temp" -le "37" -a "$GPU_Fan_Speed" -lt "$GPU_Fan_Speed_Min" ]
then
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="$GPU_Fan_Speed_Min"
elif [ "$GPU_Temp" -ge "38" -a "$GPU_Temp" -le "69" ]
then
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="$GPU_Temp"
elif [ "$GPU_Temp" -ge "70" ]
then
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="$GPU_Fan_Speed_Max"
elif [ "$GPU_Temp" = "$GPU_Fan_Speed" ]
then
# do nothing...
echo "Hi.. Temp = Fan"
else
# echo "Hi.. Last case..."
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="$GPU_Temp"
fi
}
nVidia-Fan_Profile ()
{
if [ "$1" = "" ]
then
printf "\n"
printf " ########################################\n"
printf " # nVidia Fan Profile #\n"
printf " ########################################\n"
printf "\n"
printf " GPU Temp:\t\t\t$GPU_Temp ?C\n"
printf " Fan Speed:\t\t\t$GPU_Fan_Speed %%\n"
printf "\n"
printf " ########################################\n"
printf "\n"
elif [ "$1" = "--auto" ]
then
nvidia-settings -a [gpu:0]/GPUFanControlState=0
elif [ "$1" = "--fix" ]
then
nvidia-settings -a [gpu:0]/GPUFanControlState=1
# nvidia-settings -a [fan:0]/GPUTargetFanSpeed="30"
nvidia-settings -a [fan:0]/GPUTargetFanSpeed="37"
elif [ "$1" = "--profile" ]
then
nvidia-settings -a [gpu:0]/GPUFanControlState=1
for (( ; ; ))
do
# msi afterburner uses 1 sec for sensors, and 5 secs for fan updates
# hwinfo32 uses 2 sec for sensors
# sleep 2
# sleep 4
sleep 5
# gpu_fan_ctl
gpu_fan_ctl2
done
else
# whatever
echo hi
fi
}
# Just throw in teh intel tdp limit thing in here for now for ease of access, does need testing though, the intel tdp
nVidia-Power_Profile ()
{
if [ "$1" = "" ]
then
printf "\n"
printf " ########################################\n"
printf " # nVidia Power Profile #\n"
printf " ########################################\n"
printf "\n"
printf " GPU Temp:\t\t\t$GPU_Temp ?C\n"
printf " Fan Speed:\t\t\t$GPU_Fan_Speed %%\n"
printf "\n"
printf " ########################################\n"
printf "\n"
nvidia-smi --query --display=POWER
cat "/sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw"
cat "/sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw"
elif [ "$1" = "--Min" ]
then
# 140W Min Power Limit
nvidia-smi --power-limit=140
# 45w limit
# echo 45000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
# echo 45000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
# 65w limit, half tdp, like how my vga card is set at it's min
echo 65000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
echo 65000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
elif [ "$1" = "--Stock" ]
then
# 280W Stock Power Limit
nvidia-smi --power-limit=280
# Intel CPU
# stock, 1000w limit (can't go past the 130w max anyways)
echo 1000000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
echo 1000000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
elif [ "$1" = "--Max" ]
then
# 330W Max Power Limit
nvidia-smi --power-limit=330
# Intel CPU
# stock, 1000w limit (can't go past the 130w max anyways)
echo 1000000000 > /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw
echo 1000000000 > /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw
else
# whatever
echo hi
fi
}
RIVBE-Fan_Profile ()
{
if [ "$1" = "--default" ]
then
# Stock
echo 153 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
echo 20000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_temp"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
echo 70000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_pwm"
echo 70000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_temp"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_pwm"
echo 70000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_temp"
# it's hardset to 255 anyways...
## echo 255 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_pwm"
echo 75000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp"
echo 100 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
echo 100 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
elif [ "$1" = "--profile" ]
then
# Modded
# echo 127 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
echo 20000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_temp"
# echo 153 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
echo 30000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp"
echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_pwm"
echo 40000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_temp"
echo 204 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_pwm"
echo 50000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_temp"
# it's hardset to 255...
# echo 229 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_pwm"
# echo 60000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp"
echo 65000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp"
echo 2000 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
echo 2000 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
else
cat "/sys/class/hwmon/hwmon1/pwm2"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point1_temp"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point3_pwm"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point3_temp"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point4_pwm"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point4_temp"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point5_pwm"
cat "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp"
cat "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
cat "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
fi
}
# sensors
# nct6791
# https://gist.github.com/kevinlekiller/c567bb070e94369840163d6c8872c651
#this is the nct, hwmon0 is the coretemp sensor
#/sys/class/hwmon/hwmon1
#echo 255 > "/sys/class/hwmon/hwmon1/pwm2"
# doesn't work
#cat "/sys/class/hwmon/hwmon1/pwm1"
#cat "/sys/class/hwmon/hwmon1/pwm2"
#cat "/sys/class/hwmon/hwmon1/pwm3"
#cat "/sys/class/hwmon/hwmon1/pwm4"
#cat "/sys/class/hwmon/hwmon1/pwm5"
#255 x 100% = 255
#255 x 90% = 229.5
#255 x 80% = 204
#255 x 70% = 178.5 1.432 x
#255 x 60% = 153 1.67 x
#255 x 50% = 127.5
#it's the value, ie 127.5 / 2.55 = 50%
#it won't be 100% without the dec point but ohwell
#what I think it should be
#50% 20c 127
#60% 30c 153
#70% 40c 178
#80% 50c 204
#90% 60c 229
#or if that don't work well...
#50% 20c 127
#60% 45c 153
#70% 55c 178
#80% 65c 204
#90% 75c 229
#50% 20c 127
#60% 45c 153
#70% 55c 178
#80% 70c 204
#90% 75c 229
#cat "/sys/class/hwmon/hwmon1/pwm2"
#cat "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
#cat "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
#echo 4000 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
#echo 4000 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
#echo 1000 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
#echo 1000 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
#echo 2000 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
#echo 2000 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
#echo 1500 > "/sys/class/hwmon/hwmon1/pwm2_step_down_time"
#echo 1500 > "/sys/class/hwmon/hwmon1/pwm2_step_up_time"
#I like 2000, or 1500
# experiment, to aggressive
#echo 153 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
#echo 20000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_temp"
#echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#echo 30000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp"
#echo 204 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_pwm"
#echo 40000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point3_temp"
#echo 229 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_pwm"
#echo 50000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point4_temp"
#echo 229 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_pwm"
#echo 60000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp"
# mod min and max
#echo 127 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
#echo 204 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#stock
#echo 153 > "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm"
#echo 178 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#cat "/sys/class/hwmon/hwmon1/pwm2" 160..., varies a tiny bit to 159 or whatever
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point1_pwm" 153
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point1_temp" 20000 lower cpu temp limit 20c
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm" 178
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp" 70000 upper cpu temp limit, 70c
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point3_pwm" 178
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point3_temp" 70000
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point4_pwm" 178
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point4_temp" 70000
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point5_pwm" 255
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point5_temp" 75000
#cat "/sys/class/hwmon/hwmon1/pwm2_crit_temp_tolerance" 2000
#cat "/sys/class/hwmon/hwmon1/pwm2_enable" 5
#cat "/sys/class/hwmon/hwmon1/pwm2_floor" 1
#cat "/sys/class/hwmon/hwmon1/pwm2_mode" 1
#cat "/sys/class/hwmon/hwmon1/pwm2_start" 1
#cat "/sys/class/hwmon/hwmon1/pwm2_step_down_time" 100
#cat "/sys/class/hwmon/hwmon1/pwm2_step_up_time" 100
#cat "/sys/class/hwmon/hwmon1/pwm2_stop_time" 6000
#cat "/sys/class/hwmon/hwmon1/pwm2_target_temp" 50000
#cat "/sys/class/hwmon/hwmon1/pwm2_temp_sel" 7
#cat "/sys/class/hwmon/hwmon1/pwm2_temp_tolerance" 0
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_duty_base" 0
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_duty_step" 0
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_temp_sel" 1
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_temp_step" 0
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_temp_step_base" 0
#cat "/sys/class/hwmon/hwmon1/pwm2_weight_temp_step_tol" 0
# ^^ this seems to increase my fan speed of my pwm fans...
# I thnk it means 25c
#echo 25000 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_temp"
#cat "/sys/class/hwmon/hwmon1/pwm2"
#says 178 now
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#178
#echo 165 > "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#cat "/sys/class/hwmon/hwmon1/pwm2_auto_point2_pwm"
#165
#cat "/sys/class/hwmon/hwmon1/pwm2"
#165 ...
#ok now I'm getting it
# 255 must be max
Bookmarks