A Comprehensive Raspberry Pi 3 Benchmark. Part 2

Raspberry Pi 3 Model B

Part 1

nBench

I thought it would be good to include this for retro' computing sake, especially considering that the Raspberry Pi is intended to be going back to the roots of learning how to code and programme with a capable hands-on computer platform. nBench has been around for so long that you can compare these benchmark results against older processors such as the 386 and even 486 based processors right up to the Intel Core i7 [1]. It can even run on Android [2].

The software is intended to test three main components of the processor, the capabilities of the CPU (Central Processing Unit), FPU (Floating Point Unit) and memory system (Table 7). You can find more information on this site. Once you have compiled nBench then it is simply ran with a single command of what the program is called. In the results, the higher the number, the better, as it is the number of iterations it can perform per second, summarised.

Table 7. nBench results
Board: Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+
memory index: 7.105 4.186 2.501
integer index: 8.976 5.812 3.208
floating-point index:   7.601 4.526 1.884

Since I threw this benchmark in for fun, here are some other processors (Table 8) that have taken the same benchmark, to put these in perspective:

Table 8. nBench benchmark for some other processors.
Processor: AMD K7 Thunderbird Pentium 3 900 МГц Qualcomm MSM7227 600 МГц
(LG Optumus GT540)
memory index: 9.473 3.930 1.171
integer index: 6.744 3.649 1.691
floating-point index:   12.501 9.631 0.489

It is totally not fair to compare the Raspberry Pi processor to these chips, except for the LG Optimus, that is using an ARM processor, however I found it interesting that the Broadcom chip has its own capabilities and areas where it excels in comparison to these older processors, for example the integer capability on the Pi 3 excels against the old AMD K7 processor and both the Pi 3 and Pi 2 processors give the Pentium 3 a run for its money, though Intel are typically known for strong Floating Point arithmetic, it is typically known that GPU (Graphical Processing Units) are better for this these days and using the VideoCore in the Broadcom chip would likely perform better.

That and these latter processors were intended for desktop computers. There are are a lot of numbers which the software outputs, like the SysBench benchmark I have attached the spreadsheet containing all of the values to this blog post that you can find at the bottom.

MemTester

This software is mainly intended to diagnose or test your system RAM (Random Access Memory). You can read more about it in its man page on linux [3]. In this test I have put a limit on it, it is to only test 256mByte of RAM (Table 9). This helps to make it a fair test across the different models of Raspberry Pi. If you are not aware, the Raspberry Pi shares its system RAM with the VideoCore processor, and it is not really recommended to deny the VideoCore processor from using any of the RAM available. So that means we cannot test the entire 512mByte or 1gByte of RAM available on the Pi 1 or Pi 2 and 3.

Memtester by itself does not time how long it takes to check the amount of memory we specify. However, we can set how many times it does it. There is also a command in Linux called 'time' which, when used in conjunction with a command, tells us how long it has taken for the command to run. Using this simple command we can check how long it has taken to test 256 MByte of RAM on each Raspberry Pi:

sudo time memtester 256M 1

Table 9. MemTester for 256 Mbyte of RAM.
Board Time Taken
Raspberry Pi Model B+ 76 minutes 23.296 seconds
Raspberry Pi 2 Model B 23 minutes 39.07 seconds
Raspberry Pi 3 Model B 8 minutes 37.078 seconds

The numbers speak for themselves, even though the RAM speed is pretty much the same being at least 400Mhz, evidently the limit is largely with the processor and we are seeing significant speed increases. In this case the Pi 3 is more than 50% faster than the Pi 2 at allocating and accessing RAM.

Roy's Benchmark Collection

There are a lot of tests. I mean, a lot. They range from whestone, ARMv6 specific tests, to ARMv7 and NEON tests. They also cover OpenGL and also memory tests deeper than by the ones previously in this blog post. So rather than go through every single test, I have compressed them together and attached them to this blog post.

I cannot cop out entirely though, can I? Well, I could, but I am not going to. Here are a few highlight comparison benchmarks from the text files that you can see as worthwhile to read:

Table 10. Memory Reading Speed Test 32bit Version 4 (memSpeedPiA6)
Memory Kbytes used Double MB/s
Raspberry Pi 3 Model B Raspberry Pi 2 Model B Raspberry Pi Model B+  
8 1523 1015 602
16 1641 1015 538
32 1523 1016 292
64 1524 930 262
128 1524 853 176
256 1525 853 142
512 1409 682 132
1024 1094 393 134
2048 1075 310 134
4096 1023 301 136
8192 1071 307 134

Now there is no doubt here that the Pi 3 is performing really well, what I am most interested in is the scaling from where it starts to drop off in performance. On both the Pi 2 and the Pi 1 we can clearly see that performance reduces at around the 32/16Kbyte used mark, but with the Pi 3 we do not start seeing degradation in speed until we hit 512kByte, though 16kByte is obviously a sweet spot even when we hit 1024kByte and above the drop is not as consistently severe as it is with the Pi 2. So there is obviously a fundamental change in how the hardware handles memory or pushes its numbers around.

Table 11. NEON Speed Test v1.0

Table 11. NEON Speed Test v1.0
Raspberry Pi 3 Model B Raspberry Pi 2 Model B
Результаты теста движка NEON на Raspberry Pi 3 Результаты теста движка NEON на Raspberry Pi 2

NEON technology was added with the Raspberry Pi 2, so it is not possible to test it on the Pi 1 Model B+, however I had not seen any benchmarks that had actually put it to the test until now (Table 11). This increase in speed result should mean that the Pi 3 is faster at handling calculations relating to video, vector graphics rendering (so gaming and 3D) and potentially audio processing. Again it is interesting to see the point at which the performance starts to fall off.

There was also another NEON related test, which was the Linpack Single Precision Benchmark. This related the speed to MFLOPS, the Pi 2 came in at 299.93 MFLOPS and the Pi 3 at 462.07 MFLOPS.

Worth it?

The Raspberry Pi 3 Model B is paving the way for not only a faster processor, but hopefully an inclination as to the future of the Raspberry Pi platform as a whole. The move over to supporting 64bit with the ARMv8 processor should allow the chip to be better supported by operating systems from now on. The addition of WiFi and Bluetooth on the board is welcomed by many, and this is one feature that I did not have time to benchmark. What I would love to do is compare the WiPi to the Broadcom on board WiFi to see what the throughput is like and to see if how the chip is now connected has improved the speeds at all. Though we may still be limited to the speed of connected storage (SDCard or even USB).

It would also have been nice to properly benchmark the OpenGL functionality of the VideoCore with the new open source driver and to compare that with the past iteration(s) of Raspberry Pi. Though it is likely there is negligable difference as shown by the comparisons between the benchmarks using Roy's OpenGL program (see attachment to this blog post), and it is nigh impossible to test is on the Raspberry Pi 1 range due to the low amount of supported RAM on the board.

Aside from the repeated call for "faster processor!" that people keep calling out, in some hope that a small board can replace their desktop computer, the Raspberry Pi 3 is still a gradual step in the right direction and the price of it is amazing. I find it highly commendable that the Pi Foundation have made everything backwards compatible so far, but this cannot last forever and the support for the systems will have to fracture somewhere as packages move over to 64bit, even if it does mean supporting them side by side. Time to educate the masses!

Bonus Coverage: Temperature

This was not by me, turns out the Raspberry Pi 3 runs hotter than previous models, enough that it should require a heatsink, and ventilation if contained (Figure 3).

Температурный режим платы Raspberry Pi 3 Model И в условиях высокой нагрузки на процессор
Figure 3. Raspberry Pi Operating Temperature.

I discovered this was the case with the Raspberry Pi 2 overclocked to 1.1Ghz, so it makes sense. Though you will encounter people that claim the Raspberry Pi does not need cooling, I think we may see a change.

Downloads

System benchmarks results- download
Roy Longbottom's benchmark collection results - download

References

1. nBench rezults
2. Linux/Unix Nbench
2. Linux MemTester
3. ARM architecture