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 |
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 |
Keep yourself alert and don’t consume the drug if you are reactive tadalafil best prices to Tadalafil.Consult the physician if you are already consuming nitrate drugs to cure your ailment but use physical treatments that include hand pressure and massage therapies. In viagra prescription a recently carried out “impotency study” in two human trials it was shown that Muira Puama was proven to be effective as it contains Sildenafil, an ingredient approved by the FDA as a cure for erectile dysfunction. Whatever she taught her children buy cialis levitra was to point them towards God. There are several who would want tadalafil cialis from india to take their ads out of morning television and beer brewers wouldn’t want to take their ads out of sports shows.
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:
- Introduction, Booting & Launching Apps, Compiling Emacs, SysBench, iPerf
- nBench, UnixBench, hdparm, dd, Conclusion
Pages: 1 2