Hack a Day

The new Raspberry Pi 4 is out, and slowly they’re working their way from Microcenters and Amazon distribution sites to desktops and workbenches around the world. Before you whip out a fancy new USB C cable and plug those Pis in, it’s worthwhile to know what you’re getting into. The newest Raspberry Pi is blazing fast. Not only that, but because of the new System on Chip, it’s now a viable platform for a cheap homebrew NAS, a streaming server, or anything else that requires a massive amount of bandwidth. This is the Pi of the future.

The Raspberry Pi 4 features a BCM2711B0 System on Chip, a quad-core Cortex-A72 processor clocked at up to 1.5GHz, with up to 4GB of RAM (with hints about an upcoming 8GB version). The previous incarnation of the Pi, the Model 3 B+, used a BCM2837B0 SoC, a quad-core Cortex-A53 clocked at 1.4GHz. Compared to the 3 B+, the Pi 4 isn’t using an ‘efficient’ core, we’re deep into ‘performance’ territory with a larger cache. But what do these figures mean in real-world terms? That’s what we’re here to find out.

Pi 4 is Very Different Hardware

The standard for benchmarking a Raspberry Pi and other single board computers is Roy Longbottom’s Raspberry Pi benchmarks. Yes, you have to compile them. When the Raspberry Pi 3 Model B+ was released, we could disregard many of these benchmarks as the memory chip and GPU were identical to the Raspberry Pi 2; there simply would be no meaningful difference apart from clock speed, which wasn’t very significant to begin with. This time, it’s different. The Pi 4 brings an entirely new SoC, a new GPU, new RAM, and new everything. The question is, does this matter? These tests will compare the Raspberry Pi 4 Model B+ to the Raspberry Pi 3 Model B+

CPU performance

The LINPACK test simply solves linear equations and is a good enough test for raw CPU performance. The test comes in two variants, single and double precision. The huge increase seen in the Linpack benchmarks is a direct result of the change in SoC. The Raspberry Pi 3 featured a quad-core Cortex-A53, the ‘efficient’ core in the family. The Cortex-A72 found in the Raspberry Pi 4 features a larger cache and the Linpack measurement is in part a measurement of cache size.

The results show a significant gain over the Raspberry Pi 3. This is only a test of how fast a computer can multiply, though, and there’s much more that goes into the speed of a system. Memory bandwidth, for example.

Memory Bandwidth

For years, the Pi has had a 32-bit memory bus, although this really didn’t matter because you could only get a Raspberry Pi 3 with 1GB of RAM. Years ago, the RAM was soldered directly onto the SoC, which meant production of that model would stop when production of that RAM chip stopped. RAM has always been the limiting factor for the Pi. This changed with the Pi 4. We now have an SoC with more data and address lines going to the RAM. Oh, and we have more than 1GB of RAM now. How does it perform?

Since 2012, there has been one problem with the architecture of the Raspberry Pi, particularly the popular Model B: the USB ports and the Ethernet are all hanging off a single USB hub. From the first Raspberry Pi Model B to last month’s Raspberry Pi 3 Model B+, the USB ports and Ethernet port were controlled through a LAN7500-series chip. This chip turns a single USB connection (on the SoC) into a few USB ports and an Ethernet controller. While this is a great part to add ports to a System on a Chip, there is a bandwidth limitation: everything must go through a USB 2.0 connection, therefore the maximum combined throughput will be 480 Mbps. Gigabit Ethernet was impossible, no matter what it says in the LAN7500 datasheet, and any use of the USB connections would sap bandwidth from the Ethernet.

The good news is that the new SoC in the Raspberry Pi 4 has an Ethernet controller:

The Ethernet connection is saturated by all accounts. This was a test pinging, downloading, and uploading from speedtest.net. I’m lucky enough to have fast (and cheap) fiber, and by every account the Raspberry Pi 4 is pulling down the bits as fast as my router will allow. The Raspberry Pi 3, however, is hindered by the USB to Ethernet controller. The Raspberry Pi 4 is now a competent 4K streaming box, and not just because this is the Raspberry Pi that supports 4K HDMI.

But what about WiFi? The Raspberry 3B+ has on board WiFi and Bluetooth thanks to a CYW43455, the Cypress chipset hidden underneath the lovely RF shield embossed with the Raspberry Pi logo. The Raspberry Pi 4 loses the embossed RF can, but does it perform better than the 3B+?

The Wireless in the Raspberry Pi 4 is better. While wired connections are always better, the Raspberry Pi 4 is no slouch pulling 85 Mbps from the router across the room. The Raspberry Pi 3 could only manage between 20 and 30 Mbps in the same environment.

Conclusion: Responsive Enough to Use as a Daily Driver

The Raspberry Pi was originally designed as a small, cheap Linux computer for education, the idea being that if you gave a kid a computer, they would learn STEM, or something to that effect. Computer education is mostly one of osmosis, though; you can’t tell someone how to code, there must be hands-on time. You can’t teach someone how to use a spreadsheet, you need hands-on time. Until now, the Raspberry Pi platform has lagged behind traditional desktops, laptops, and Chromebooks in terms of power and speed. This lessens the impact of the Pi in education.

Now the Raspberry Pi is on par with any desktop experience. If the Raspberry Pi 3 is a capable computer to shove underneath your workbench when you need to look something up real quick, the Raspberry Pi 4 is a capable daily driver. You could very well use a Raspberry Pi 4 as your main computer. It’s snappy enough, there’s enough memory, networking is great, and it’ll do everything you want it to do with the same responsiveness as a thousand dollar desktop.