«

»

Nov 17

Playing with the GPU frequencies on a Samsung NP530-U3C

[warning]DISCLAIMER: GOING THROUGH ANY OF THE STEPS BELOW COULD DAMAGE YOUR HARDWARE, YOU ARE DOING SO AT YOUR OWN RISK[/warning]

The Samsung NP530U3C works fairly well with Linux (at least on Ubuntu) providing that your kernel and firmware 
are recent enough (Ubuntu 12.04.3 or at least 12.10 are recommended).

There is a few revisions of this laptop, the one I used to test this is the Ivy Bridge version.

Your first question should be "Why would I change the GPU frequencies of my laptop?", to that I have two 
possible answers
1. Battery life
2. Heat dissipation

This laptop seems to have a table of frequencies linked to the governor/CPU speed in use.

First you can see the current min and max frequencies by running the following commands as root.

cat /sys/kernel/debug/dri/0/i915_min_freq
and see the following result
min freq: 350

cat /sys/kernel/debug/dri/0/i915_max_freq
again result with appears as
max freq: 1050

To understand the extent of the possibilities there is a handy frequency table that you can access as follow
cat /sys/kernel/debug/dri/0/i915_ring_freq_table
you will get something like this.

 GPU freq (MHz)    Effective CPU freq (MHz)
 350        800
 400        800
 450        800
 500        800
 550        800
 600        800
 650        800
 700        800
 750        1200
 800        1300
 850        1300
 900        1400
 950        1500
 1000        1600
 1050        1700

Now let's say that you are playing a game that hits your CPU fairly hard, you will see the temperature of the 
latop rocketting at above 80C, not very healthy.

Now thank to this you can actually limit the frequency of the GPU to something a bit more manageable for the 
very limited cooling capabilities of an ultra-book.

You just need to run a command like this to cap the GPU.
echo 550 > /sys/kernel/debug/dri/0/i915_max_freq

And in my particular case, that reduced the operating temperature to 64C, a huge bonus!

All of the changes are lost after a restart and you will to do that again after each reboot.