Site menu:

Sponsored by

Bitcube Ltd.  Expert Linux Consultancy

Currently...

  • @popey superb, now you can cook and iron your shirts at the same time. Quite what your colleagues will think of the hickory aroma I dunno in reply to popey 3 days ago
  • @geehowquaint surely normal people are never "in" fashion, only weirdos :-) in reply to geehowquaint 5 days ago
  • not bad hold music on this teleconference 1 week ago
  • ripped jeans with backing cloth to avoid bare skin does seems a little silly. I doubt I'll ever understand fashion. 1 week ago
  • Dear PCWorld, I knew your computer skills were bad, I didn't know until recently that your grammar was too. It's not "a 3gigs memory". 1 week ago
  • More updates...

Categories

Meta

Site search

 

November 2009
M T W T F S S
« Oct   Dec »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Archives

Links:

Underclocking NVIDIA

Recently my desktop has become a little noisier than usual (it is pretty quiet).

After some investigation I found that the cause was the fan on the graphics card.

Using nvclock you can find out (retrospectively only AFAICT) the fan speed, let’s reduce it to 40%:

sudo nvclock -f -F 40
Current fanspeed: 1612 RPM
PWM duty cycle: 60.0%
Changing duty cycle from 60.0 to 40.0
Fanspeed: 1612 RPM
New PWM duty cycle: 60.0

Here we are dropping it from 60% (1612 rpm) to 40%, a bit later we rerun the command and see:

Current fanspeed: 853 RPM
PWM duty cycle: 40.0%
Changing duty cycle from 40.0 to 40.0
Fanspeed: 853 RPM
New PWM duty cycle: 40.0

Great. Now let’s add this to /etc/rc.local and it will work on boot. Rats, it speeds up on resume from suspend, first I tried adding it to /etc/acpi/resume.d, this had no effect - the correct location is in /etc/pm/sleep.d/nvclock (nice name eh?)

#!/bin/sh

# Action script to slow down Nvidia fan to make less noise

if [ ! -x /usr/bin/nvclock ]; then
	exit 0
fi

FAN_SPEED=40

if [ "$1" = "resume" ]; then
  /usr/bin/nvclock -f -F $FAN_SPEED 2>&1 | tee /tmp/nv2
  sleep 30
  echo resumig fan >>/tmp/nv2
  /usr/bin/nvclock -f -F $FAN_SPEED  2>&1 | tee /tmp/nv2
fi

Now run nvidia-settings and select GPU -> Thermal Monitor. My card was at 97°C - scorching! Fortunately we can do something about this too (at least if you are using the proprietary “nvidia” driver.

Firstly you’ll probably have to enable coolbits. Edit /etc/X11/xorg.conf and check you have a section like this:

Section "Device"
        Identifier      "Nvidia 8800GTS"
        Driver          "nvidia"
        Option          "OnDemandVBlankInterrupts" "True"
        Option          "Coolbits" "1"
        ...
EndSection

“OnDemandVBlankInterrupts” should result in some power savings.

If you aren’t playing games, you can drop the clock rates right down too - GPU -> Clock Frequencies - I’ve set mine all the way down to 128MHz (GPU) and 198MHz (memory). This dropped the temperature from 97°C to 88°C. If the graphics card is producing less heat the other fans in the system also slow down.

The only issue was how to run this on startup and/or resume. Since this talks to the Xserver, you can’t use rc.local and friends, I created a ~/bin/xstartup file instead:

#!/bin/sh

# slow down gfx card:

/usr/bin/nvidia-settings -a GPUOverclockingState=1 -a \
   GPU2DClockFreqs=128,198 -a GPU3DClockFreqs=128,198

Then in Gnome, System -> Preferences -> Startup Applications -> Add (/home/fbloggs/bin/xstartup as the Command).

Thanks to aldeby for some of this info.

Write a comment