Benchmarks confirmed the improved performance but also revealed a heatsink was necessary to ensure optimal performance under heavy loads. Some companies also launched an oversized heatsink+fan combo for the board, but it’s really over the top and absolutely not necessary unless possibly in higher room temperature (50°C?).
The Raspberry Pi Foundation also worked on improving the video to lower CPU temperature and power consumption, and a few days later released a beta version of VLI firmware that dropped the temperature by 3 to 5°C. Good effort but sadly the updated VLI firmware (used for the PCIe to USB controller) also had the side-effect of much slower USB performance. A new VLI firmware was released in September offering both a lower temperature and good performance.
The Foundation has now published a blog post detailing all the work they have done to improve the thermal performance of Raspberry Pi 4 during the four months since launch. They wrote fairly long post, so I’ll provide the main takeaways.
They stress the board with stress-ng (CPU) and glxgears (GPU):
sudo apt install stress-ng mesa-utils
stress-ng --cpu 0 --cpu-method fft
It should be noted that glxgears utility relies on OpenGL, and most Arm GPUs use OpenGL ES, so it’s quite possible several of the commands were emulated on the CPU. es2gears might have been a better choice since it uses OpenGL ES APIs only. I’m not sure how much that matters on the VideoCore V GPU in the Broadcom BCM2711 processor.
Five firmware versions have been launched since the launch of RPi 4:
- Launch firmware
- VLI firmware mentioned above
- VLI + SDRAM firmware with optimizations on how the LPDDR4 is managed without impact on performance
- VLI, SDRAM, Clocking, and Load-Step Firmware which changes how the processor increases and decreases its clock-speed in response to demand and temperature
- Current beta firmware – In testing and due for public release soon. It brings several improvements, including finer-grained control over SoC operating voltages and optimized clocking for the HDMI video state machines.
If you want to make sure your Raspberry Pi runs the latest firmware, run the following commands:
sudo apt update
sudo apt full-upgrade
sudo shutdown -r now
And now the results with the Raspberry Pi 3 B+ as reference, and Raspberry Pi 4 with different versions of the firmware. As I understand it the boards were not fitted with a heatsink.
There’s been good progress with idle power consumption dropping from 2.89 Watts at launch to 2.10 Watts with the beta firmware, and from 7.28 Watts to 6.41 Watts under load.
The second chart shows how long it takes for the system to throttle under CPU and GPU load. Raspberry Pi 3B+ started to throttle after just 19 seconds, while Raspberry Pi 4 would do so after around 60 seconds at launch, now it takes close to 180 seconds before throttling. If the board is placed vertically however cooling improves a lot with the idle temperature dropping by 2°C, and it takes over 400 seconds before throttling.
Testing was completed with a real-life test, as opposed to the synthetic tests above, that consisted of building the Linux kernel on both Raspberry Pi 3 B+ and Raspberry Pi 4 with the latest beta firmware:
- RPi 3B+ – Total time: 5097 seconds (1h24m57s); quickly throttles to 1.2 GHz
- RPi 4B – Total time: 2660 seconds (44m20s); no throttling, runs at 1.5 GHz during compilation
It should be noted that there was no mention of room temperature as it may affect throttling quite a bit, and if your board is inside an enclosure results will vary depending on the case design, and again room temperature.