Extends [Roy Longbottoms Raspberry Pi benchmarks](http://www.roylongbottom.org.uk/Raspberry Pi Benchmarks.htm). This Docker image compiles and executes the most of them, and collects hand-picked data from the benchmarks. Then it runs a C++ script, which summarizes and calculates the benchmark data.
The reference point is 100 points and a Raspberry Pi 1 Model B should perform 100 in every test.
So, this way you may roughly measure how fast other computers or ARM boards are compared to a RPi 1. For the moment it benchmarks only single-core performance.
And seriously, you should take these benchmarks with a big grain of salt. But they're useful anyway.
The images are pushed to Docker Hub, so it's easy to run directly:
$ docker run -it luxas/benchmark-arm
$ docker run -it luxas/benchmark-amd64
For amd64:
$ make ARCH=amd64
For arm, from an amd64 host:
$ make ARCH=arm
A results file will be in /bench/results.json
inside the container.
Example output for Raspberry Pi 2:
{
"overall": "223",
"cpu": "150",
"ram": "298",
"real": "222",
"subPerf": {
"floatingPoint_whetstone": "126",
"integerPerf_dhrystone": "116",
"linearAlgebraSinglePoint_linpack": "182",
"linearAlgebraDoublePoint_linpack": "185",
"kernelDoublePrecision_liverloops": "142",
"L1CacheMFLOPS_l1flops": "130",
"L2CacheMFLOPS_l2flops": "318",
"RAMCacheSpeed_ramflops": "388",
"RAMMIPS_rammips": "511",
"wordReadingBusSpeed_busspeed": "144",
"compileTimeAllBenchmarks": "222"
},
"rawData": {
"floatingPoint_whetstone": "296",
"integerPerf_dhrystone": "1010",
"linearAlgebraSinglePoint_linpack": "104",
"linearAlgebraDoublePoint_linpack": "78",
"kernelDoublePrecision_liverloops": "87",
"L1CacheMFLOPS_l1flops": "121",
"L2CacheMFLOPS_l2flops": "121",
"RAMCacheSpeed_ramflops": "70",
"RAMMIPS_rammips": "686",
"wordReadingBusSpeed_busspeed": "989",
"compileTimeAllBenchmarks": "57"
}
}
Some notes:
overall
is the average value ofcpu
,ram
andreal
cpu
is the average value offloatingPoint_whetstone
,integerPerf_dhrystone
,linearAlgebraSinglePoint_linpack
,linearAlgebraDoublePoint_linpack
andkernelDoublePrecision_liverloops
ram
is the average value ofL1CacheMFLOPS_l1flops
,L2CacheMFLOPS_l2flops
,RAMCacheSpeed_ramflops
,RAMMIPS_rammips
andwordReadingBusSpeed_busspeed
real
is the value ofcompileTimeAllBenchmarks
subPerf
is calculated values of how much better the machine did score compared to a RPi 1 Model B.rawData
is the (sometimes calculated) raw output from Roy Longbottom benchmarks. Except forcompileTimeAllBenchmarks
, which represents how many seconds it took for the machine to compile the source code into binary files.
If you like more precise benchmarks and like the idea of running the same benchmarks on ARM, amd64 and other architectures, feel free to create issues and pull requests.