Raspberry Pi 2: Raspbian vs. Linaro (ARMv6 vs ARMv7)

The introduction of the Raspberry Pi 2 Model B has certainly turned the Raspberry Pi community into a buzzing hornets nest!

Raspberry Pi 2 Model B Review @ http://Mikronauts.com

(click on image for larger version)

In my Raspberry Pi 2 Model B Review I took a close look at the new Raspberry Pi, and compared it to its direct ancestor, the Raspberry Pi Model B+ and other similar small single board computers.

The new Pi 2 uses a quad core ARM with the ARMv7 instruction set, whereas the previous Pi’s used the ARMv6 instruction set. The new release of Raspbian supports both old and new Pi’s, and other than the boot kernel, it is compiled as ARMv6 code so it will run on all Pi’s (the boot process selects the appropriate kernel).

One recurring question in the forums was:

Would it be worth having separate versions of Raspbian, one for ARMv6, and one for ARMv7?

Forum member and Raspberry Pi Foundation volunteer jamesh said he found up to a 30% advantage for ARMv7 compiled code, and that he intended to investigate the matter further.

Meanwhile, forum member mimi123 pointed out to me that wintrmute started a thread Ubuntu / Linaro for Raspberry Pi 2 for his Ubuntu 14.10 / Linaro 15.01 OS image for the new Raspberry Pi 2 Model B, and asked if I was going to test it.

(Before I forget: a big THANK YOU to wintrmute for his hard work!)

Talk about waving a red flag in front of a bull!!!

I was really interested in the comparison as well, so more benchmarking ensued.

I hope you find the results informative!

Throughout this article, I will generally use ‘Linaro’ to refer to results obtained under Linaro which is Ubuntu compiled for ARMv7, and ‘Raspbian’ to refer to Debian Wheezy compiled for ARMv6 results.

Booting & Launching Apps

System boot times and application launch times are very important metrics to users, as they are a measure of how “snappy” a system is.

Launch Times media Start Web 1 Web 2 Shell 1 Shell 2 File 1 File 2
Raspbian Pi2B ADATA 22.9 8.2 2.5 1 0.5 1 0.5
Linaro Pi2B ADATA 19.5 14.4 9.5 1.0 0.7 1.2 0.6
Raspberry Pi B+ ADATA 42 15 12 3 2 3 2
MIPS CI20 eMMC 115 25 9 4 2 7 2
Banana Pro ADATA 35 3 2 1 0.5 1 0.5
ODROID-C1 ADATA 36.9 11.5 6.8 1.3 0.9 1.8 0.9
ODROID-C1 ADATA UHS 35.4 9.4 6.9 1.2 0.9 1.6 0.8
ODROID-C1 EeMMC 25.4 8.9 6.7 1.1 1.1 1.1 0.7

All times shown are in seconds, measured with a stopwatch app on my phone.

Linaro boots faster, but Raspbian loads most apps faster.

Compiling GNU Emacs 24.4

This bencmark tests a real-world large project compilation in order to show the effect of multiple cores on compiling large software projects.

Make -j 1 -j 2 -j 4 -j 6 -j 8
Raspbian Pi2B 933.3 575.9 403.8 409.2 408.4
Linaro Pi2B 1175.9 727.0 568.4 571.6 515.5
Raspberry Pi Model B+ 2770.2 2794.7 2787 2771.5 2765.9
Banana Pro 1189.6 724.1 722.4 729.9 739.7
ODROID C1 ADATA 790.6 512.3 385.4 384.4 391
ODROID-C1 eMMC 762 471.7 382.6 375.6 366.6
MIPS Create CI20 1459.5 899.5 922.8 923 920.4

All times shown are in seconds.

Compiling under Linaro is roughly 25% slower than compiling under Raspbian – I suspect this may be due to additional optimization for ARMv7 (or a less optimized gcc).

SysBench 0.4.12

Sysbench # Cores CPU (sec) Mem (MB/sec)
Raspbian Pi2B 1 295.3 174.4
Raspbian Pi2B 2 149.9 348.5
Raspbian Pi2B 4 74.7 648.5
Linaro Pi2B 1 252.5 174.8
Linaro Pi2B 2 126.5 343.2
Linaro Pi2B 4 63.5 574.7
Raspberry Pi B+ 1 507.0 88.9
Banana Pro 1 291.6 222.4
Banana Pro 2 147.6 422.3
MIPS CI20 1 138.8 174.7
MIPS CI20 2 69.2 237.0
C1 1 212.8 288.3
C1 2 110.1 554.5
C1 4 57.9 998.3

Sysbench CPU results show total execution time in seconds for the same amount of work, which is why the CPU dual threaded results show twice the time on the single core Raspberry Pi, and half on the dual core Banana Pi.

Linaro holds an approximately 15% advantage in pure CPU performance here, but the four core memory benchmark gives quite an advantage to Raspbian.

iperf 2.0.5

iPerf Type iperf iperf -w 128k
Raspbian Pi2B 100Mbps 94.2 94.2
Raspberry Pi 2B USB Gige 178.0 176.0
Linaro Pi 2B 100Mbps 94.4 94.0
Raspberry Pi B+ 100Mbps 47.6 47.6
Banana Pro 100Mbps 96.4 94.4
Banana Pro 1000Mbps 653.0 487.0
Banana Pro WiFi 30.1 28.1
MIPS CI20 100Mbps 27.5 27.7
MIPS CI20 WiFi 0.8 0.8
ODROID-C1 100Mbps 83.7 83.7
ODROID-C1 1000Mbps 386.0 355.0

Results shown are in megabits per second

There is no significant performance difference in iperf – but it is noting that Linaro did not support my Linksys USB3 Gigabit adapter.

Article Index:

  1. Introduction, Booting & Launching Apps, Compiling Emacs, SysBench, iPerf
  2. nBench, UnixBench, hdparm, dd, Conclusion

Pages: 1 2

If you liked this article, please help us grow! "Like" us and let your friends know with the Twitter and Facebook buttons at the top left - We appreciate your support!