RoadTest: Try out the Raspberry Pi Model 3 B Plus!
Author: ralphjy
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Raspberry Pi Model 3 B
What were the biggest problems encountered?: No issues with the hardware but the packaging was of concern, i.e. the board was not in an anti-static bag.
Detailed Review:
Introduction
I was happy to be selected to roadtest the new Raspberry Pi Model 3 B+. I have been working on learning AI for image processing and the improved specs should help in my application. My plan is to run some basic benchmarks on identically configured RPi3B and RPi3B+ boards as a sanity check then to focus on specific spec improvements that I believe will affect my application and finally to compare my application running on the RPi3B and RPi3B+.
Unboxing
The RPi3B+ came in a familiar red box with the Raspberry logo from Element14. The only surprise was that the board was loose in the box with no padding and not in an anti-static bag. Even after components are installed on a PCB there is a reasonable chance of ESD damage due to handling. I hope that Element14 will improve the packaging in the future (actually all of my previous RPis from Element14 were in anti-static bags - maybe just a quality control issue).
I had hoped that this roadtest might include a whole kit (board, case, power supply) but there was just the RPi board. So, for the roadtest I reused hardware from another RPi setup.
RPi3B+ (top) vs RPi3B (bottom)
Spec Comparison
The RPi3B+ has the same physical footprint and connectors as the 3B, so accessories like cases and cables are compatible. The 2.5A power supply should also work even though the 3B+ has a higher power consumption.
The RPi3B+ has improved performance over the RPi3B in the following areas:
1) Thermal performance (improved packaging)
2) Processor speed (1400MHz vs 1200MHz)
3) Ethernet speed (Gigabit vs 10/100MHz, although constrained to ~300Mbps due to USB2 network interface)
4) WiFi speed (802.11AC vs N, additional 5GHz band allows speeds to 166MBps vs 56MBps)
5) Bluetooth speed (BLE 4.2 vs 4.1, 250% faster)
Setup
I wanted to test in a configuration that approximates my use configuration. I put the boards in identical clear KuGi cases that I bought from Amazon. The cases included heatsinks that I did not use for my testing.
OS: Raspbian Stretch (2018-04-18), Linux version 4.14.34-v7+
SD: PNY Elite 16GB (up to 85MBps)
Power supply: Stontronics 5.1V, 2.5A (output is 5.28V unloaded)
Basic Benchmarks
I decided to use the benchmarking script by AikonCWD that is available on github. It's easy to use on the RPi. It is basically a bash script that runs the speedtest-cli and sysbench benchmarks. It will automatically install the software if necessary. Use the following command:
curl -L https://raw.githubusercontent.com/aikoncwd/rpi-benchmark/master/rpi-benchmark.sh | sudo bash
This script runs 7 benchmark tests to stress the Raspberry Pi hardware:
1. Speedtest-cli test: Calculate ping, upload and download internet speed
2. CPU sysbench test: Calculate 5000 prime numbers
3. CPU sysbench test: Multithread with 4000 yields and 5 locks
4. MEMORY RAM test: Sequencial access to 3Gb of memory
5. microSD HDParm test: Calculate maximun read speed for SD
6. microSD DD write test: Calculate maximun write speed with 512Mb file
7. microSD DD read test: Calculate maximun read speed with 512Mb file
Rpi-benchmark script will show the current hardware clock settings. After every test, it will show the current CPU
temperature
RPi3B+ using Wifi
Temperature performance
It is clear to see that the new board has improved performance, running 5-10 degrees C cooler during the benchmark tests. I believe that the actual thermal performance improvement is better than the data shows and also that adding heatsinks and active cooling will display a much larger temperature difference. I wasn't able to do that for the roadtest, but the data has convinced me that I should not run in an enclosed case without active airflow in a compute intense application.
Power
The power measurements that I made were more of a sanity check as I don't have power constraints (I have 3A power adapters available if required). I used an inline USB voltage/current meter so the numbers will have some inaccuracy due to the added voltage drop and lack of dynamic response (to measure peaks). I was surprised that the RPi3+ has an approximately 50% increase in power (current) but this is consistent with other reviews I have seen on the Internet. It's a good thing that the thermal design was improved.
Internet Speed Test
RPi3 RPi3+
Wifi
Download 27.96 77.99 Mbits/s
Upload 23.01 23.21 Mbits/s
Ethernet
Download 88.37 152.21 Mbits/s
Upload 22.57 23.70 Mbits/s
My intended application is image identification from streaming video using a neural network processor. I expect that I will be doing most of the actual training for the final solution in the cloud so the improved network speed will be a great benefit for downloading models. I have a reasonably fast Wan/Lan configuration. Last year I upgraded my Wifi router to a Netgear Orbi and I am using Gigabit hardware for my wired ethernet so I can easily max out my Wan connection. I consistently get 175Mbps Download and 23Mbps Upload speeds using Speedtest. For the wired ethernet test you can see the benefit of the new Gigabit interface on the RPi3+. There must be some overhead using the USB2 interface for networking also as the RPi3 only achieves 88 instead of 100Mbps and the RPi3+ only achieves 152 vs 175Mbps (the new interface should be capable of 300Mbps). I'm not sure how to explain the low Download speeds on the Wifi tests, but it is clear that the RPi3+ has significant performance gains due to the new AC interface hardware. I probably have some issues with Wifi interference and the RPi interface is probably not as capable as my other devices.
Compute Performance Tests
RPi3 RPi3+
CPU Test
Total Time 13.16 11.28 s
Threads Test
Total Time 12.42 10.52 s
Memory Test
Total Time 1K Block 1.56 1.31 s
The test time improvements in the compute benchmarks reflect the increase in clock frequency from 1200 to 1400MHz. A fairly consistent 15% improvement in all tests.
Movidius Neural Compute Stick Application
For my application testing I am going to use an object detection model running on a Movidius Neural Compute Stick (NCS) attached to the USB interface of the RPi. The NCS uses a Myriad 2 VPU (Vision Processing Unit) to run neural network models. It supports the TensorFlow and Caffe neural network frameworks. Here is a link to the NCS site: https://developer.movidius.com/ .
NCS Workflow
The first step which is the most compute intensive is the neural network model training which is frequently done with compute resources in the cloud. The trained model is then downloaded to a development system that compiles a "graph" using the NCS SDK. I am using a laptop with a mobile i7 processor running Ubuntu 16.04 for my development host. The graph is then downloaded to the RPi where it is run on the NCS using the NCS SDK API.
For the roadtest I am using YOLO real time object detection with pretrained Caffe models: https://github.com/gudovskiy/yoloNCS .
The most time consuming part of this process was installing the NCS SDK and examples on the RPi. It takes about 2 hours to install the SDK and another 4 hours to install the examples. I ran into a problem that the version of python used on Raspbian Stretch is not compatible with the NCS Tensorflow models so Tensorflow was not installed. Fortunately, I am using Caffe models, but I'll have to solve this problem later.
For this test I am using a Logitech USB webcam as my image source as shown below:
The following is a screen capture of a VNC session with the Yolo object detection model running on the RPi3+:
I am just using the frame rate as my performance metric for this test.
There is just a 7.5% improvement using the RPi3+ vs the RPi3 for this particular application.
Summary
The RPi3+ performed pretty much as I had expected in the benchmark testing. There is quite an increase in the additional power consumed but that is mitigated in part by the improved thermal performance. Good news is that there are enough choices that you can make a power/performance tradeoff within the Pi family. I was disappointed that the RPi3+ enhancements did not include USB3. That would have been a nice complement to the Gigabit ethernet and wifi upgrades, but I understand that would have required a processor change.
The small improvement in performance in the neural network application probably just indicates that most of the work is being done by the VPU in the NCS. I am just getting my feet wet with using the NCS so I'm sure I'll have a better understanding when I have run many more models. It is interesting to note that the Google AIY Vision Kit also uses the Myriad 2 VPU implemented on a Vision Bonnet (sort of a pHat). The first version of the Vision Kit was designed to run with an RPi3 but I have the second version which came with an RPi0WH. As I get more capable, it will be interesting to benchmark the Vision Kit against the NCS. I might try running the NCS on the RPi0 but I can't imagine how many hours it would take to install the SDK .
Another side note is that I also recently acquired a Ryze Tello Drone and it uses a Myriad 2 for both flight control and vision processing. I'd love to be able to add some AI to it but that's probably way out in the future.
Top Comments
Very nice roadtest report. Tracking performance, power and temperature was a really good way to show the improvements in this version. Well done!
Gene
I agree with Gene, you provided an interesting review by comparing it to previous versions.
Kind regards
Great comparison, and if you want speed you pay with consumption ... in this case current.
I've used UV4L for streaming, and they have an example to combine the feed with face detection.
https://www…