BeagleBone Black: slow as a dog

All benchmarks are artificial, but this one had me scratching my head. One hears that the BeagleBone Black is screamingly fast compared to the Raspberry Pi; faster, newer processor, blahdeblah, mcbtyc, etc. I found the opposite is true.

So I buy one at the exceptionally soggy Toronto Mini Maker Faire. Props to the CircuitCo folks, they are easy to set up: just a mini-USB cable provides power and virtual network shell. And BoneScript — an Arduino-like JavaScript library — is very clever indeed. But I need to see if this thing has any grunt, and so I need a benchmark.

Update: I’ve tried with an external power supply, and checked that the processor was running at full speed. It made no difference. I suspect that Raspbian enables armhf floating point by default, while Ångström needs to be told to use it.

Note that in this case, the Raspberry Pi’s ARM11 CPU is actually superior!

The ARM11 has a nice, pipelined VFP implementation. Cortex-A8 only has a stripped down VFP-lite configuration that is not pipelined. You can force the A8 to use the NEON unit for some VFP instructions (the so-called RunFast mode), but that has its limits and isn’t trivial to use from C.

So even with hardfloat configured correctly, Cortex-A8 is simply unlikely to outperform ARM11 clock by clock.

When using BOINC, the Beaglebone Black reports 184 MIPS floating point and 2047 MIPS Integer performance while under Ångström Linux -the OS the Beaglebone is provided with on the eMMC.
Installing Android 4.4.4 gave 277 MIPS floating point (thus up some 50% !) and 1607 integer MIPS (so down 20%) under the BOINC benchmarks.