Raspberry Pi: Turbo Mode for increased performance

Today it has been announced that if you are using the Wheezy image of Raspbian you can update to allow dynamic overclocking without voiding warranty. I’ve been using my Raspberry Pi for a little while now and have begun to notice the CPU limitations when compiling code and performing other tasks so I jumped at the opportunity to give this a go. I’ll briefly go through the steps I went through in order to update the OS, as well as provide a basic benchmark that will display the changes.

Raspberry Pi benchmark graph

Upgrading

You can either upgrade your current software versions, or alternatively you download the latest version of the Raspbian image which is up to date with everything already.

So running the following as root:

apt-get update
apt-get upgrade

I had not upgraded my Raspberry Pi since my original installation so this process took me quite a while.

As I’ve never done any form of updating I needed rpi-update so I could update firmware.

wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && chmod +x /usr/bin/rpi-update

After this I tried to run rpi-update, but found that I needed to first have GIT installed.

root@raspberrypi:~# rpi-update
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
This tool requires you have Git installed, please install it first
In Debian, try: sudo apt-get install git-core
In Arch, try: pacman -S git

No problem, I installed GIT and then proceeded with running rpi-update once.

install git-core
rpi-update

rpi-update took a little while to complete, but finished successfully. After this I was able to run raspi-config

raspi-config

Once running this you will get the below menu, navigate to overclock with the arrow keys and press enter.

raspi_config

Next you will be given a warning about overclocking, after that you will be presented with the 5 levels that you can overclock to.

Raspberry Pi overclock presets

Note that every time you change the overclock preset you will need to reboot for it to take effect.

Benchmarks

The current benchmarks I have performed were done using this Python script which calculates all the prime numbers up to 1,000,000 – a task that works the CPU quite well.

I’ve run the test 3 times at each overclocking preset level so that you can get an idea of the difference in performance between the 5 levels.

None   700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt
Found 78497 primes in 0:05:24.025816
Found 78497 primes in 0:05:12.471679
Found 78497 primes in 0:05:45.434684

Modest 800MHz ARM, 300MHz core, 400MHz SDRAM, 0 overvolt
Found 78497 primes in 0:04:34.712732
Found 78497 primes in 0:04:36.838428
Found 78497 primes in 0:04:44.019617

Medium 900MHz ARM, 333MHz core, 450MHz SDRAM, 2 overvolt
Found 78497 primes in 0:04:04.950124
Found 78497 primes in 0:04:05.154845
Found 78497 primes in 0:04:10.899346

High   950MHz ARM, 450MHz core, 450MHz SDRAM, 6 overvolt
Found 78497 primes in 0:03:42.140013
Found 78497 primes in 0:03:41.933866
Found 78497 primes in 0:04:03.094127

Turbo  1000MHz ARM, 500MHz core, 500MHz SDRAM, 6 overvolt
Found 78497 primes in 0:03:54.706406
Found 78497 primes in 0:03:29.330381
Found 78497 primes in 0:03:29.302173

Here is the above data in a graph.

Raspberry Pi benchmark graph

Summary

As you can see the overclock is performing much better at the simple test I have performed, I have also noticed when using my Raspberry Pi normally that everything feels much smoother which is great.

  1. I see that some of your tests seem to increase in execution time with the 2nd and 3rd iteration. Do you believe this to be due to heat increase and the dynamic over clock adjusting itself?

    • It very well may be, at the time I didn’t monitor the temperature. I did however reboot after each set of 3 tests in order to apply the overclock preset which could have allowed time for it to cool down.

      I was thinking along the lines of performing more than one test just so that I could get a more average set of results.

      I’ll try the tests again when I get some time and monitor the temperature to see if this factor is skewing the results.

    • Alright so I ran the test again at 1GHz in the exact same way I did the first set and the temperature never passed 45c.

      During this time there was no idle CPU.

  2. Mehr Speed für den Pi | Igors HP - pingback on September 23, 2012 at 10:42 pm

Leave a Comment


× three = 15


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks and Pingbacks: