Did some speed testing to compare my various single-board computers to some personal computers.
System | CPU | OS | Bits | Speed (GHz) | Threads | Time (mins) |
Raspberry Pi 3 | ARM Cortex-A53 | Yocto | 64 | 1.2 | 4 | 145.38 |
Odroid C2 | ARM Cortex-A53 | Ubuntu 16.04 | 64 | 1.5 | 4 | 48.28 |
Odroid U3 | ARM Cortex-A9 | Ubuntu 14.04 | 32 | 1.7 | 4 | 288.67 |
Dimension E520 | Intel Pentium D 820 | Mint 14 | 64 | 2.8 | 2 | 179.92 |
Latitude E6530 | Intel Core i7-3540M | Win7 | 64 | 3.0 | 4 | 28.26 |
Laditude E5450 | Intel Core i5-5300U | Win10 | 64 | 2.3 | 4 | 35.56 |
These tests were performed using my threaded prime number counter which offers a 100% CPU for a given number of cores. The single-boards hold their own even against the PCs clocked at much higher speeds. The slowest system on the list is the Sun-Dragon which is the 32- bit Cortex-A9 Odroid U3. The fastest system is my work laptop, the Core i7 Latitude E6530. However what I find interesting is that at half the clock speed and a fraction of the total power the Emerald Dragon, a Cortex-A53 Odroid C2, is less half as slow. That is, if the Emerald Dragon were clocked at 3 GHz it would have out performed the Core i7.
Another thing to note is all the single board computers are RISC machines and all the PCs CISC. What this generally means is that the RISC computers require more operations to do the same task, but can do those operations faster whereas a CISC machine can combine steps in a single instruction. Thus one expects that with a RISC and CISC machine clocked at the same speed, the CISC machine would have better performance. Clearly there are other factors at play here, such as memory speed, cache, instruction pipelining, etc.
Right now the Cortex-A53s are the top-of-the-line for ARM based computers. While they cannot yet compete with desktop machines, the gap is closing. Having always been an ARM fan this is encouraging and maybe one day I will have a screaming fast ARM-based PC.
At work I have been working on a project that uses Yocto Linux. When it looked likely we were going to get the project, I decided to see about building Yocto for a Raspberry Pi. I never got it to work, but I think I know why. My failures were due to the fact I incorrectly identified which version of the Pi I had. I had been building for a Raspberry Pi 2 but that SBC was actually version 1.2, not a 2. The Pi 2 has either a 32-bit ARM Cortex-A7 or a 64-bit ARM Cortex-A53. The Pi 1.2 has a 32-bit ARM11. These processors not the same at all and the fact the build even generated a test pattern is impressive.
Over the weekend Pluvius picked me up a Raspberry Pi 3 which is the latest model based on a 64-bit Cortex-A53. So I decided to try a Yocto build for that. Using the Noire Dragon, my 64-bit quad-core laptop, the build completed in 6 hours. This time when I loaded the image, it worked. I was able to log in and play the movie Big Buck Bunny, confirming the build with functional.
The Pi 3 is fast and even playing a 1080p movie barely stresses the CPU.