Adventures In Overclocking: Which Raspberry Pi 4 Flavor Is Fastest?

There are three different versions of the Raspberry Pi 4 out on the market right now: the “normal” Pi 4 Model B, the Compute Module 4, and the just-released Raspberry Pi 400 computer-in-a-keyboard. They’re all riffing on the same tune, but there are enough differences among them that you might be richer for the choice.

The Pi 4B is easiest to integrate into projects, the CM4 is easiest to break out all the system’s features if you’re designing your own PCB, and the Pi 400 is seemingly aimed at the consumer market, but it has a dark secret: it’s an overclocking monster capable of running full-out at 2.15 GHz indefinitely in its stock configuration.

In retrospect, there were hints dropped everywhere. The system-on-a-chip that runs the show on the Model B is a Broadcom 2711ZPKFSB06B0T, while the SOC on the CM4 and Pi 400 is a 2711ZPKFSB06C0T. If you squint just right, you can make out the revision change from “B” to “C”. And in the CM4 datasheet, there’s a throwaway sentence about it running more efficiently than the Model B. And when I looked inside the Pi 400, there was this giant aluminum heat spreader attached to the SOC, presumably to keep it from overheating within the tight keyboard case. But there was one more clue: the Pi 400 comes clocked by default at 1.8 GHz, instead of 1.5 GHz for the other two, which are sold without a heat-sink.

Can the CM4 keep up with the Pi 400 with a little added aluminum? Will the newer siblings leave the Pi 4 Model B in the dust? Time to play a little overclocking!

Raspberry Overdrive

Overclocking a Raspberry Pi is basically painless. In most cases, it’s as simple as editing your /boot/config.txt file and typing in the desired maximum speed and CPU core voltage. If it doesn’t boot, you pick a lower CPU speed until you get something that works. But that doesn’t mean that you’re going to get the full performance bump — the main CPUs run alongside, or maybe underneath, the GPUs which run the ThreadX RTOS, and throttle the main CPUs when they get hot.

This thermal throttling means that you can run a Raspberry Pi as fast as you can shed the excess heat that it generates, below a ceiling of about 2.15 GHz. Not too shabby for a system that’s marketed as either 1.5 GHz or 1.8 GHz. But this is also the Pi’s Achilles’ heel; when our own Jonathan Bennett tried to use a Pi 4B as a desktop machine for a week, without a heatsink, he found it throttled occasionally. On all three of the test models here, throttling occurs around 82.5 °C.

Our test suite consisted of running stress-ng in --matrix 0 mode to fully load the CPU, and then recording the time and temperature from the Linux system, and measuring the CPU speed with vcgencmd measure_clock arm. Simple!

Bone-Stock Baseline

The absolutely worst thing you can do with a brand new Raspberry Pi 4B that’s going to see any load is to buy an unventilated case, like the official Raspberry Pi case, and put it in there, even at the stock 1.5 GHz. As you can see, plotted below in red, it starts throttling after as little as 10 minutes at full load, and that pulls the average speed down to something like 1.1 GHz after a while.

Opening the case up to get some cool breezes buys you a lot: there was evidence of just the tiniest bit of throttling at the nominal 1.5 GHz after just about 25 minutes on full blast, and it’s not so bad. This is why 1.5 GHz is the advertised speed of the Pi 4B: it’s right on the edge of where it’s happy, if left out in the open.

Compare this with the Compute Module at the same 1.5 GHz, in yellow, and you can see that it’s making less heat — the energy savings mentioned in the datasheet. No doubt, the Compute Module gets hot without a heatsink. But it settles down at around 75 °C in the open air, maybe 7 °C below the throttling threshold.

For contrast, check out the Pi 400 in blue. That massive aluminum heatsink does what it’s supposed to, and then some. At the stock 1.8 GHz, which is already 20% faster than either of the other modules, it’s not breaking a sweat — holding it down under 60 °C. You could run the Pi 400 full throttle forever, in my attic, in the summer.

Hotrodding the Pi 400

So if the Pi 400 runs just fine at stock speeds, what happens if we turn up the speed? To do so, I edited the /boot/config.txt file and set arm_freq=2000 and over_voltage=6 and rebooted. Why six? Because that’s the highest over-voltage level available without pushing the chip outside of its design envelope and voiding the warranty — you can go higher, but there’s likely little gain and you might burn things up.

(Oddly enough: the Pi 400 ships with over_voltage=0x11170 by default, which feeds it 0.95 V instead of the default 0.86 V, but less than the 1.03 V you get at over_voltage=6. I don’t understand the new format, so I didn’t play around with it. Anyone?)

At 2.0 GHz, the Pi 400 got up above 60 °C and showed signs of continuing to warm up even after 50 minutes, but it was nowhere near throttling. So I tried 2.2 GHz, at which speed the CPU refused to boot entirely. Backing down to 2.15 GHz, it ran just fine, so I left it for three hours. It settled in at a cozy 62.5 °C, which is warm, but well within specs. My guess is that is about the limit to the performance you’ll get out of the Pi 400, but note that this is all totally stock, and it’s hammering all four cores 100% for hours on end.

Given that all of the Pi 4 series use dynamic CPU speed, and throttle down to 600 MHz when idle to save power, there’s absolutely no reason I can think of to not overclock it. It’ll be faster when you need it, but not use more power when you don’t.

But the Compute Module and the Pi 400 have the same, more efficient, SOC in them. Could you get the same results from the CM4 with a little heatsinking? I bought some cheap heatsinks to find out.

Cheap Heatsinks Don’t Really Help

First, I thought that adding the small heatsinks to the CM4 would get it up at least into the 1.8 GHz region that the Pi 400 runs stock. And the answer was a definitive “kinda”. Where before it was on the edge of throttling at 1.5 GHz, the small aluminum wonder got it running at 1.8 GHz, on the edge of throttling. An improvement for sure, but not a good life for the SOC to be living.

For science, I put another cheap heatsink set on the Pi 4B and ran it at 1.8 GHz. This is as close to an apples-to-apples test of the two revisions (“B” and “C”) of the SOC as is possible — both boards had free air circulation, with the fins of identical heatsinks, oriented vertically. But overclocking isn’t kind to the Pi 4B. It got up to throttling temperature after just five minutes. Worse, it throttled so much that it ran at an average 1.5 GHz, no faster despite consuming more power and heating up my office.

The culprit is increasing the core voltage to facilitate overclocking, and maybe it’s possible to find a lower voltage setting that’ll run more efficiently, but at this point my conclusion was that cheap heatsinks are a marginal benefit at best.

Bring the Aluminum!

Not to be beaten, I went searching in my junk box for a heatsink that would fit both the CM4 and Pi 4B. Selecting a well-aged tube of paste from the heatsink cellar, and two gamer-grade overclocking zip-ties, I affixed the aluminum to both the CM4 and Pi 4B in turn. How would they run now?

First, I ran the CM4 with the larger heatsink at 1.8 GHz to give some basis for comparison to the cheap heatsinks. What a big difference a big hunk of aluminum makes! It settled in at a comfortable 68 °C or so. Even pushing it up to 2.15 GHz and leaving it for a couple hours, it stayed just a hair below 70 °C — a safe margin on the throttling threshold — and only a few degrees warmer than that huge heat spreader in the Pi 400. That worked!

When I tried to replicate the success with the Pi 4B, I ran into the first two spontaneous shutdowns in mid-run, which I didn’t expect to see due to the built-in thermal management. (Flashback from the era of lapping Celerons!) It seems that 2.15 GHz is just a little too fast for the 4B and the junk-box heatsink. I stepped it down to 2.1 GHz, and it ran on the ragged edge, for hours, with the heatsink oriented vertically. But it’s really on the edge: during the first 2.1 GHz run, I turned the board flat on the table after a couple hours, which meant that the heatsink was no longer vertical, and it picked up a few degrees and went into full crash. This is no way to live.

Summary

This whole experiment has been playing around with two effects. First, the CM4 and the Pi 400 have a slightly more energy-efficient chipset that allows them to run cooler or faster — take your pick. And that effect is very real, with the CM4 running about 10 °C cooler at the stock 1.5 GHz, giving a nice margin against thermal throttling right where it counts. Or if you’re willing to live on the edge, for the same temperatures and cooling solutions, you can run the CM4 at 1.8 GHz where the Pi 4B runs at 1.5 GHz, and that without a heatsink.

But over and above the efficiency gain, any member of the Pi 4 family will run up into the 2 GHz range with no problem if you put a good enough heatsink on it. How big is big enough? That’s going to be a product of your environment, your tolerance for throttling and/or shortening the lifespan of the SOC, and how badly you want to get the heatsink into a small space. From my tests with a junkbox heatsink, you should be able to figure out a passive cooling solution that’ll work for anything but the tightest of fits.

What’s definitely true is that the Raspberry engineers have pulled off a nice design with the Pi 400. A big enough hunk of aluminum gives them plenty of thermal overhead to run the four CPUs inside at full bore without breaking a metaphorical sweat, and on top of that it runs the more energy efficient chipset. I’m still surprised that the Pi 400 heatsink is so effective, being nothing more than a big sheet of aluminum inside a plastic box, but it is more than sufficient. I’m going to run my Pi 400 at 2.15 GHz, because — why not?

Does any of this make sense? In the end, you’re talking about a small and only moderately powerful single-board computer, not a liquid-cooled mega-number-crunching rig of doom. It has limited memory and a moderate GPU. The overclocking gains are on the scale of 10% to 30%, so they’re moderate as well. The configuration effort involved, editing a config file, is truly minimal, but you’ll spend a moderate amount of time and money sourcing the right heat sink.

For average workloads, you probably don’t need to overclock, and for hard-core workloads the Raspberry Pi might not be the right choice anyway. But if what you need is a mid-sized speed bump, you can get it. And in our mind, you might as well.

We think it’s cool that the Raspberry crew got their hands on a better silicon revision and put it into their two latest products. If the Broadcom “C” series SOC is a drop-in replacement for the “B”, we wouldn’t mind seeing the newer version in future Pi 4Bs. Why not? It seems to be about 10% more energy efficient, and while that’s maybe not earth-shattering, it’s certainly nothing to sneeze at. Meanwhile, just put a little bit more aluminum surface area on your 4B, and you’re all set.

56 thoughts on “Adventures In Overclocking: Which Raspberry Pi 4 Flavor Is Fastest?

  1. Not seeing the usual docs on this one yet. Is this a custom carrier board for a CM4 internally, or a completely custom board? It only comes in 4GB ram, so I’m wondering if you can swap in an 8GB ram CM4 with eMMC. SD cards are a horrible storage solution as a boot drive, not that eMMC is drastically better. I’d rather see a SATA M.2 option, but I know it’s limited to the single PCIe lane….

        1. Not sure if he meant the CM4+breakout: he might’ve meant the Pi 400. Which, if you read the Hackaday article, is a bit ambiguous – the teardown says “surprise! a raspberry pi 4” whereas, in fact, it’s a completely new PCB.

      1. Probably pretty well. I have the “without the fan” model and it keeps my pi nice and cool. Granted, I have not attempted to overclock it, but if the thermal pads are installed correctly, it should shed the heat quickly.

        I don’t know, but I suspect that the version with the fans is actually LESS effective than the one without. I suspect that since the fans sit so close to the heatsink, there is very little actual air flowing across the surface of the heatsink. It would make sense that the additional surface area on the non-fan version would actually dissipate more heat. This is pure speculation though.

        1. The fans sit on a few short ribs from the heatsink. There is plenty of air movement. The only annoying thing is the fan noise and the dangling fan cable. The case is pretty good design and quite efficient. It gives me access to the camera connector which is a must for me.

    1. Sounds about right.

      https://www.tomshardware.com/how-to/overclock-any-raspberry-pi says 2100 and 750.

      Funny enough, when I was looking around the rest of the web, there’s an old overclocking test that suggests that 2147 was the max for the Pi4 CPU. Somehow that stuck, and if you read up, you’ll see that (very exact) number all over.

      I ran into 2150 by accident. Round numbers and all that. And then I read that 2147 was the max. So maybe I’ve run the world’s fastest Pi 4? :)

  2. I use daily an rpi4 8GB overclocked to 1.8GHz with a cheap heatsink, but with the smallest noctua fan on. whatever I do it never goes more than 43°C. Even with recompiling opencv. and the rpi is much snappier, I do not use higher overclock as it is fine for me that, and I do not what do destroy it.

      1. I designed my own RAM expansion. I piggy backed static RAM chips on top of the factory installed chips and then broke out addressing with a 74LS139 mounted dead bug style. When done each of the 8 RAM ICs had 3 additional ICs soldered on top and then the banks of chip select pins were wired to the correct 74LS139 output pins.

    1. It’s not mentioned, and I totally should have measured it. Probably in the neighborhood of 22 °C, no more than a couple degrees either way.

      None of the runs were overnight, for instance, when we let our house run ~5 °C colder. On a couple of the tests (not sure any of the ones that made the final cut) I put the Pi out the window to cool off before starting it up again — it’s been in the 10 °C range — so some of the readings might have started from lower than 20ish, even though the room was probably ~22 °C.

      What are you thinking?

      1. Well, what I’m thinking is: Q = UA * (T1 – T2)
        Heat = (heat transfer coefficient) * (area of heat sink) * (Temperature of CPU – Temperature of the room)

        Translated: the colder the room, the more cooling you get from your heat sink. So you won’t hit the throttling of the CPU in a colder room.

        And while on that subject, You could run the Pi 400 full throttle forever, in my attic, in the summer. , yeah hyperbole, I know. But my attic is about 55 C in the summer, much closer to the throttling temperature. I won’t be running my rPi up there.

      2. I wouldn’t worry about the cooling out the window between tests, it seems that the temperature in all tests immediately soars past 40C due to the low thermal capacities, so it’s not effecting much data.

        Looking at some of the long term tests that level off quickly then stay flat lined, you can see that some are then slowly decreasing without any throttling. It seems the temperature of the room is likely cooling in those cases. So it’s likely the temperature is going up or down a bit during the tests.

        If I had to give a rough boundary from a gut feeling, I’d say the ambient throughout the day would then be your estimate (22) with a tolerance of +/- 2C at best. That’s assuming your estimate is accurate.

        1. I’m not so sure that they drop over time. I think there’s a little optical illusion going on there. Anyway, it’s probably just a degree or two.

          I’m also not entirely happy with the junkbox heatsink for the CM4. It’s a little hot, and should probably be running with something bigger.

          Your mileage _will_ vary, but I think these results are certainly representative.

  3. CM4’s are supposed to come in all the ram flavours, as well as with and without onboard storage and wifi. Have to admit though the local suggested stockists didn’t advertise them all, and focused on the 4GB ram and less.

      1. Indeed, and I have seen 8gb around. Just mentioning you might not find the variant you want at the local stockist but it is out there for small quantities orders. And that the suppliers I’ve looked at are very centred on the lower ram end in what they are offering – so they at least don’t think the 8 is so worth stocking (which frankly makes alot of sense – 4gb is enough to use it as a desktop well enough most folks won’t notice its not the 8…).

  4. My daily driver is a Pi 4B 8GB with an Argon ONE case, it’s like one big heatsink with active cooling from the built in fan. Overclocked CPU to 2.2GHz and GPU @ 750 MHz, haven’t seen it go above 55°C even under sustained heavy load :)

      1. Double thumbs up, here! I love BOTH of my Argon One M.2 cases and the newly released Argon x NanoSound ONE is scheduled to arrive tomorrow. IMHO, these are the best RPi cases on the market. Also modified the second M.2 case to accommodate the Geekworm X872 NVMe SSD board. Unfortunately, nothing was gained, because r/w speeds are limited by the USB3.0 connection.
        For the past 2 months, I’ve been looking at a CM4 Gumstix M.2 NVME board w/o a CM4 module |-(

  5. I’d like to see some aluminum heat sinks tested then glass bead blasted on all surfaces except where they contact what they’re cooling, and tested again to see what, if anything, it does.

    In theory the performance should improve some. The roughening would increase the surface area and more surface = more capability to radiate heat and conduct heat to air flowing past.

    Then get more heat sinks of the same designs and try various grits of sand to sandblast them.

    1. Airflow is the limiting factor witih passive heatsinks, though. It’s surface area in contact with fresh, cool, moving air. If you’re talking fan-forced, then maybe the extra surface area will buy you something.

      I’m saying this b/c there was a real (~5 °C) difference between orienting the fins vertically, so that the air flows up in chimneys between them, and horizontally. And this was the 5 °C necessary to crash the Pi 4B at 2.1 GHz a couple times.

      Of course the solution is just to get a proper (bigger) heatsink. I was just messing around with what I had on hand.

    2. I wonder if your reasoning is correct… If you roughen up the surface, you‘re basically decreasing the drag of the air (Magnus effect). So the air would indeed be flowing faster. The drag is basically causing the air to flow slower along the surface, enabling the molecules to pick up more heat. I have a feeing that a rough surface will actually cause less contact of air against aluminium.

      I have a feeling that engraving long channels in the direction of the air flow, will work better than roughening up the surface with a random pattern.

      Worth a test, I guess. :)

      1. Exactly, always worth a test – the fluid dynamics are always hard to really simulate, and very situational.

        I would expect inside a case with crap airflow so the air is rather static bead blasting should make a difference – but static/slow air sucks at transferring heat air being a rather good insulator.. But that sort of pattern could well act like golfball dimples/shark skin in airflow and actually lower the transfer efficiencies. Where grooves in the correct orientation for natural convection currents should increase the surface area without changing the airflow much at all.

  6. in the age where we are running hundred of watts of cooling to get a 2-3 mhz OC you really thought a pissant passive solution would serve you at all while maintaining a v-core boost?

  7. This was an interesting glimpse into custom OC, thanks for sharing!

    I do wonder about the impact on power consumption though. My home still has a few Pi Zero or Pi 2 in use, but I do eventually want to upgrade some, especially those 2’s that I’ve had to make performance compromises.

  8. Why are so many people hell-bent on roasting their CPUs? As in “it’s several degrees below design limit”, “with the lid on it will throttle”, etc. By not provisioning good cooling they may save a few bucks, but they also grind many years off of the useful/reliable lifetime (as a rule of thumb, 10C diff equals a factor two on lifetime). My desktop is an 8G 4B with an Akasa Gem-Pro case (entirely passive) and it will run flat out at 2.1GHz all day (recoding videos today) with the core temperature steady at 46C in normal room temperature. If I’m just watching television or browsing, it’s in the mid to low 30s.

  9. Ever consider throwing a little fan on that heat sink? The fan will make a bigger difference in temps than any of those heat sinks you tried until temps get below 60’s under load. If you parked a moderately fast 60mm fan blowing down on the PCB without heat sinks, you’d drop the SOC down to the 60’s running 100%.

Leave a Reply to Elliot WilliamsCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.