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!
(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|
|Raspberry Pi B+||ADATA||42||15||12||3||2||3||2|
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|
|Raspberry Pi Model B+||2770.2||2794.7||2787||2771.5||2765.9|
|ODROID C1 ADATA||790.6||512.3||385.4||384.4||391|
|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||# Cores||CPU (sec)||Mem (MB/sec)|
|Raspberry Pi B+||1||507.0||88.9|
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||Type||iperf||iperf -w 128k|
|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|
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.
- Introduction, Booting & Launching Apps, Compiling Emacs, SysBench, iPerf
- nBench, UnixBench, hdparm, dd, Conclusion
Pages: 1 2