Pi GPUs

The Raspberry Pi contains an integrated GPU. But how good is it?

It is a variant of Broadcom's VideoCore, a GPU unheard of in the PC market, but found in some phones and tablets.

One of the key elements of the VideoCore is the `QPU', or quad processor. It contains two single-precision floating point units, one for addition and one for multiplication, each operating on a vector of four single precision numbers. So the QPU can achieve 8 FLOPS/Hz. The QPUs themselves are grouped in clusters of four, called `slices', and the Pis have two, three or four slices in their GPUs.

PiGPUQPUsClockGFLOPS
Pi 2VideoCore IV12250MHz24
Pi 3VideoCore IV12300MHz28.8
Pi 4VideoCore VI8500MHz32
Pi 5VideoCore VII16960MHz123

Whereas the increase in GPU power moving from the Pi 3 to the Pi 4 was modest, moving from the Pi 4 to the Pi 5 is more significant. The above table does not tell the whole story, for it says nothing about memory bandwidth, or hardware video decoders, or even the instruction set or issue logic used by the GPU, but it does tell part of the story. It also omits the fact that some Pis run different parts of their GPUs at different speeds. The speeds above are for the 3D engine.

One benchmark for graphics is the old glmark2 suite. The Pi 4 scores 425 fps using the version of glmark2 which comes with the 64 bit October 2023 release of Raspberry Pi OS (based on Debian 12). The Pi 5 scores 880 fps.

Considering a table of glmark2 scores of low-end Radeons, these figures suggest that the Pi 4 might be similar in graphics performance to a Radeon HD3450, a cheap, passively-cooled card dating from 2008. A little unfair, as the Pi 4 has better hardware decoders than the HD3450. The Pi 5 is closer to the performance of the HD6450, a card introduced in 2011, rebadged as the R5 230 in 2014, and on sale until about 2018.

But this might be very unfair, for I used the X11 version of glmark2, despite the OS having moved on from X11 to Wayland in October 2023, and Wayland presumably receiving more optimisation attention. When run on a 2560x1440 desktop, rather than the 1920x1080 desktop I used above, the Pi 4's score for the X11 version of glmark2 drops from 425 fps to 398 fps. But the Wayland version of glmark achieves 728 fps under these conditions. And the Pi 5 manages 1840 fps, beating the Pi 4 by a larger factor (about 2.5x, rather than about 2x). Still only about a quarter of the speed of the integrated graphics in a Ryzen 7600, but probably within about 10-20% of the performance of a Radeon R7 430 (released 2016, and similar to the older R7 240).

Perhaps more important is a question such as can it play a 1920x1080 30 fps Youtube video, upscaled to 2560x1440? The Pi 4 has about a 25% frame drop rate, whereas the Pi 5 drops none. The increase in quality in moving to sixty frames per second is, in my opinion, negligible for most subject matter. It does make low-powered devices such as the Pi struggle though. It is a pity that Youtube now seems to regard 60 fps as standard for 1920x1080 and above, and does not usually offer lower frame rates if the higher rate is available. The Pi 5 is quite unusable for 2560x1440 at 60 fps from Youtube, whereas at 25 fps it just about copes.

Data

Loaded and idle GPU clock speeds, Pi 4

$ vcgencmd get_config int | grep gpu_freq
gpu_freq=500
gpu_freq_min=250

Loaded and idle GPU clock speeds, Pi 5

$ vcgencmd get_config int | grep v3d
v3d_freq=960
v3d_freq_min=500

Number of QPUs

$ grep QPU /sys/kernel/debug/dri/0/v3d_ident 
  QPUs:         8

glmark2

  $ sudo apt-get install glmark2-x11
  $ glmark2

or, if using Wayland,

  $ sudo apt-get install glmark2-wayland
  $ glmark2-wayland