performance

Raspberry Pi 5 *can* overclock to 3.14 GHz

...and it's not just for Pi Day.

Raspberry Pi 5 with THRML tower cooler

After posting my deep-dive into the Pi 5's new BCM2712 and RP1 silicon this morning, someone linked me to this GitHub issue: Raspberry Pi 5 cannot overclock beyond 3.0GHz due to firmware limit(?).

For the past few weeks, a few blog readers (most notably, tkaiser—thanks!) commented on PLLs, OPP tables, and DVFS and how something seemed a little off with the 3.0 GHz CPU limit—which was apparently recommended by Broadcom, according to that GitHub issue.

But today, @popcornmix generated a test firmware revision without the 3.0 GHz limit, and zealous overclockers can get to pushing the clocks higher.

An important consideration about Pi 5 overclocking

Silicon lottery.

Now that the Raspberry Pi 5s been readily available (at least in most regions) for a few months, more people started messing with clocks, trying to get the most speed possible out of their Pi 5s.

Argon THRML Tower Cooler installed on Raspberry Pi 5 for Overclocking test

Unlike the Pi 4, the Pi 5 is typically comfortable at 2.6 or even 2.8 GHz, and some Pi 5s can hit 3.0 GHz (but no higher—more on why tomorrow well... this limit may be able to be lifted).

After some testing, I found the default 2.4 GHz clock on the Pi 5 is pretty much the efficiency sweet spot, and after a lot more testing recently, I can confirm that's still the case, testing a number of Pi 5 samples.

Water cooling is overkill for Pi 5

tl;dr: 52Pi and Seeed Studio's water cooling solution for the Raspberry Pi 5 can be fun, and works better than any other solution—but at a steep price, and with a number of annoying quirks.

Ice Pump water cooling block installed on Raspberry Pi 5

A few months ago, 52Pi reached out and asked if they could send a new water cooling kit they were working on for the Raspberry Pi 5. At the time, the hope was we could figure out a way to get very high overclock with adequate cooling.

Unfortunately—for reasons I'll explore more soon—the Pi 5 can't overclock beyond 3.0 GHz (it's not physically possible). Some of why is explained in my blog post Overclocking and Underclocking the Raspberry Pi 5.

But water cooling is still fun, and the product is in production now, so I figured I'd still give it a fair shot, and see if I thought it might be worth buying for certain niche use cases.

NVMe SSD boot with the Raspberry Pi 5

Pi 5 PCIe NVMe Kioxia XG8 SSD

In my video about the brand new Raspberry Pi 5, I mentioned the new external PCIe port makes it possible to boot the standard Pi 5 model B directly off NVMe storage—an option which is much faster and more reliable than standard microSD storage (even with industrial-rated cards!).

Enabling NVMe boot is pretty easy, you add a line to /boot/firmware/config.txt, modify the BOOT_ORDER in the bootloader configuration, and reboot!

Testing iperf through an SSH tunnel

I recently had a server with some bandwidth limitations (tested using scp and rsync -P), where I was wondering if the problem was the data being transferred, or the server's link speed.

The simplest way to debug and verify TCP performance is to install iperf3 and run an iperf speed test between the server and my computer.

On the server, you run iperf3 -s, and on my computer, iperf3 -c [server ip].

But iperf3 requires port 5201 (by default) to be open on the server, and in many cases—especially if the server is inside a restricted environment and only accessible through SSH (e.g. through a bastion or limited to SSH connectivity only)—you won't be able to get that port accessible.

So in my case, I wanted to run iperf through an SSH tunnel. This isn't ideal, because you're testing the TCP performance through an encrypted connection. But in this case both the server and my computer are extremely new/fast, so I'm not too worried about the overhead lost to the connection encryption, and my main goal was to get a performance baseline.

Getting to 1.5 Gbps WiFi 6E on the Raspberry Pi CM4

In the pursuit of doing crazy things on a Raspberry Pi, my latest endeavor was to see if I could consistently pipe more than a gigabit per second of traffic through WiFi using a Raspberry Pi.

Raspberry Pi Compute Module 4 IO Board with Intel AX210 on M.2 adapter card

In the past, I had some faltering attempts where sometimes things would work—sort-of—using WiFi 6 (802.11ax, 40 MHz bandwidth, 2x2) using an Intel AX200 M.2 card on the Raspberry Pi Compute Module 4.

Ubuntu's settings won't open after setting CPU to 'performance'

Recently I was doing some benchmarking on my Ubuntu 22.04 PC, and as part of that benchmarking, I tried setting the CPU performance profile to performance. In the old days, this was not an issue, but it seems that modern Ubuntu only 'knows' about balanced and power-saver. Apparently performance is forbidden these days!

$ powerprofilesctl list
* balanced:
    Driver:     placeholder

  power-saver:
    Driver:     placeholder

The problem was, I had set the profile to performance:

$ powerprofilesctl set performance

But suddenly the 'Settings' GUI app would no longer open (at least not after I had opened it and clicked into the 'power' section). A reboot didn't work, and even reinstalling control center (sudo apt-get install --reinstall gnome-control-center) didn't help!

When I tried opening the settings GUI from the command line, I got the following critical error:

Mac Studio is 4x more efficient than my new AMD PC

Last month, I built an all-AMD PC to try out Linux Gaming with Steam and Proton, and so I'd have a faster native Linux build machine for my various compilation tasks.

This month, Apple introduced the Mac Studio, and as a now full-time video producer, it was a no-brainer for me to upgrade from an M1 Mac mini.

Mac Studio M1 Max Hero

My Mac Studio arrived Friday, and over the weekend, I spent some time benchmarking it against not only my M1 mini, but also my new AMD Ryzen 5 5600x PC build.

My Mac Studio's specs:

New Docker for Mac VirtioFS file sync is 4x faster

Docker for Mac's shared volume performance saga continues!

After monitoring the issue File system performance improvements for years (discussion has moved to this issue now), it seems like the team behind Docker Desktop for Mac has finally settled on the next generation of filesystem sync.

For years, the built-in osxfs sync performance has been abysmal. For a Drupal developer like me, running a default shared volume could lead to excruciating slowdowns as PHP applications like Symfony and Drupal scan thousands of files when building app caches.

Or God forbid you ever have to install dependencies using Composer or NPM over a shared volume!

It got to the point where I started using NFS to speed up volume performance. Heck, the Docker team almost added Mutagen sync, which I tested successfully, but it caused problems for too many projects.

Check your driver! Faster Linux 2.5G Networking with Realtek RTL8125B

Since the Raspberry Pi Compute Module 4 was introduced last year, I've been testing a variety of PCI Express NICs with it. One of the main types of NIC I'm interested in is cheap 2.5 Gigabit Ethernet adapters.

2.5 Gigabits is about the highest reasonable bandwidth you can get through the PCI Express Gen 2.0 x1 lane on the Raspberry Pi, and it's also a lot more accessible than 10 Gigabit networking, especially for home users who might already have Cat5e runs that they are loathe to swap out for Cat6 or better cabling.

In my testing, besides discovering that not all 10 Gbps SFP+ transceivers are created equal, I found out that when it comes to performance, the Linux driver you're using matters—a lot.