Introducing turbo mode: up to 50% more performance for free

Since launch, we’ve supported overclocking and overvolting your Raspberry Pi by editing config.txt. Overvolting provided more overclocking headroom, but voided your warranty because we were concerned it would decrease the lifetime of the SoC; we set a sticky bit inside BCM2835 to allow us to spot boards which have been overvolted.

We’ve been doing a lot of work to understand the impact of voltage and temperature on lifetime, and are now able to offer a “turbo mode”, which dynamically enables overclock and overvolt under the control of a cpufreq driver, without affecting your warranty. We are happy that the combination of only applying turbo when busy, and limiting turbo when the BCM2835’s internal temperature reaches 85°C, means there will be no measurable reduction in the lifetime of your Raspberry Pi.

You can now choose from one of five overclock presets in raspi-config, the highest of which runs the ARM at 1GHz. The level of stable overclock you can achieve will depend on your specific Pi and on the quality of your power supply; we suggest that Quake 3 is a good stress test for checking if a particular level is completely stable. If you choose too high an overclock, your Pi may fail to boot, in which case holding down the shift key during boot up will disable the overclock for that boot, allowing you to select a lower level.

What does this mean? Comparing the new image with 1GHz turbo enabled, against the previous image at 700MHz, nbench reports 52% faster on integer, 64% faster on floating point and 55% faster on memory.

Previous image (2012-08-16-wheezy-raspbian):

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST : Iterations/sec. : Old Index : New Index
 : : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 222.08 : 5.70 : 1.87
STRING SORT : 31.659 : 14.15 : 2.19
BITFIELD : 7.1294e+07 : 12.23 : 2.55
FP EMULATION : 44.808 : 21.50 : 4.96
FOURIER : 2188.1 : 2.49 : 1.40
ASSIGNMENT : 2.6545 : 10.10 : 2.62
IDEA : 671.41 : 10.27 : 3.05
HUFFMAN : 414.2 : 11.49 : 3.67
NEURAL NET : 2.9586 : 4.75 : 2.00
LU DECOMPOSITION : 77.374 : 4.01 : 2.89
=====================ORIGINAL BYTEMARK RESULTS=====================
INTEGER INDEX : 11.414
FLOATING-POINT INDEX: 3.619
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, ...
=========================LINUX DATA BELOW==========================
CPU :
L2 Cache :
OS : Linux 3.1.9+
C compiler : arm-linux-gnueabihf-gcc
libc : static
MEMORY INDEX : 2.447
INTEGER INDEX : 3.192
FLOATING-POINT INDEX: 2.007
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, ..
* Trademarks are property of their respective holder.

New image, with 1GHz turbo enabled:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST : Iterations/sec. : Old Index : New Index
 : : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 340.8 : 8.74 : 2.87
STRING SORT : 47.52 : 21.23 : 3.29
BITFIELD : 1.05e+08 : 18.01 : 3.76
FP EMULATION : 66.32 : 31.82 : 7.34
FOURIER : 3431 : 3.90 : 2.19
ASSIGNMENT : 4.5311 : 17.24 : 4.47
IDEA : 991.67 : 15.17 : 4.50
HUFFMAN : 615.08 : 17.06 : 5.45
NEURAL NET : 4.76 : 7.65 : 3.22
LU DECOMPOSITION : 135.12 : 7.00 : 5.05
=====================ORIGINAL BYTEMARK RESULTS=====================
INTEGER INDEX : 17.356
FLOATING-POINT INDEX: 5.933
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, ...
=========================LINUX DATA BELOW==========================
CPU :
L2 Cache :
OS : Linux 3.2.27+
C compiler : arm-linux-gnueabihf-gcc
libc : static
MEMORY INDEX : 3.810
INTEGER INDEX : 4.768
FLOATING-POINT INDEX: 3.291
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, ..
* Trademarks are property of their respective holder.

Other changes to the latest firmware include:

Temperature and frequency widgets

You can enable a core temperature widget for the lxde taskbar to see how close to 85°C you get (in the UK, it’s not very), and a cpufreq widget that will show the current ARM frequency when you hover over it. See here for more details.

USB interrupt rate reduction

We have enabled Gordon’s “FIQ Fix” in the USB driver, which reduces the USB interrupt rate, improving general performance by about 10%.

WiFi is now supported out of the box

If your WiFi driver is supported by the default linux tree, or is based on the popular RTL8188CUS chipset, then WiFi should work out of the box. Boot the image with the WiFi dongle plugged in (a powered hub is recommended). Run startx and select “WiFi Config”. You can scan for wireless networks and enter your wireless password and connect from the GUI. No need to install additional packages or scripts.

Improved analogue audio

Analogue audio quality has been improved.

Extra software installed by default

SmartSim and PenguinsPuzzle are pre-installed.

If you are using an older wheezy image, you can upgrade: “sudo apt-get update && sudo apt-get upgrade” will get almost all these improvements.

Thanks to MrEngman for his amazing work supporting users with various WiFi dongle, Dorian Peake for the cpufreq and temperature drivers, and Dmitry Dudkin for his work on the USB and SD card drivers.

Alex has started a forum thread for further discussion – pile in!