02/10/2024
The Raspberry Pi 5 has changed a lot compared to the Raspberry 4.
The RPi5 has thus become faster in many areas.
We have done our own tests here at ElektronicaVoorJou and below you can find our findings.
Points we looked at are:
CPU
Below you can find the various meetings.
Generally a lot faster, but this is also noticeable in the temperature.
The RPi5 heats up faster than the RPi4 and active cooling is therefore not an unnecessary luxury.
The Raspberry Pi 5 features the Broadcom BCM2712 quad-core Arm Cortex A76 processor clocked at 2.4 GHz.
The Raspberry Pi 4 features the Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC with a clock speed of 1.8GHz
So although still 4 cores, the speed without overclocking is already a third faster as standard.
GPU
Below you can find the various meetings.
The RPi5 can also heat up quickly when performing graphical tasks.
It should be noted that the way in which the graphics processor is called affects the temperature.
OpenGL is an open-source graphics programming interface (API) that enables developers to create 2D and 3D graphics for various applications such as video games and scientific visualizations.
Vulkan does the same thing, but it is specifically designed with multithreading in mind, allowing developers to make more efficient use of modern multi-core processors.
As a result, Vulkan optimized code will generally be faster and will run less hot on the Raspberry .
Storage
The traditional way of data storage and where the operating system is installed is a MicroSD card.
However, it is also possible to boot from USB.
(USB stick, SSD with a USB adapter or even Nvme)
Network
Optimizations have also been carried out in the network area.
While we didn't really see any differences with wired Ethernet networking, WiFi is faster on the RPi5.
Measure results and tools.
Below are the measurement results and the software tools we used.
The RPi4 and RPi5 used the same micro-sd cards and SSDs.
The location where the WiFi tests were done is also the same in both cases.
Tools used: sysbench and 7z
sysbench cpu run sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Prime numbers limit: 10000 Initializing worker threads... Threads started! CPU speed: events per second: 2730.50 General statistics: total time: 10.0003s total number of events: 27309 Latency (ms): min: 0.36 avg: 0.37 max: 0.62 95th percentile: 0.37 sum: 9995.65 Threads fairness: events (avg/ stddev): 27309.0000/0.00 execution time (avg/stddev): 9.9957/0.00
sysbench cpu run
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 1471.46
General statistics:
total time: 10.0005s
total number of events: 14722
Latency (ms):
minus: 0.67
avg: 0.68
max: 1.14
95th percentile: 0.68
sum: 9994.77
Threads fairness:
events (avg/stddev): 14722.0000/0.00
execution time (avg/stddev): 9.9948/0.00
( 7z is a file compression program and format, similar to ZIP, that offers a high compression ratio and is open-source. But also has a benchmark option)
To run a single-thread benchmark you need to run the following command
7z b -mmt1
For a multi-thread benchmark test the last option can be omitted
7z b
RPi5 with the command “7z b -mmt1”
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
LE
CPU Freq: - - - - - - - - -
RAM size: 8049 MB, # CPU hardware threads: 4
RAM usage: 435 MB, # Benchmark threads: 1
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 2955 100 2876 2875 | 39071 100 3339 3336
23: 2825 100 2879 2879 | 38558 100 3338 3338
24: 2728 100 2934 2933 | 37821 100 3321 3320
25: 2649 100 3026 3025 | 36791 100 3276 3275
---------------------------------- | ------------------------------
Avr: 100 2929 2928 | 100 3318 3317
Up to: 100 3124 3123
RPi5 with command “7z b”
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
LE
CPU Freq: - - - - - - 512000000 - -
RAM size: 8049 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 9384 381 2396 9129 | 152484 399 3262 13009
23: 8784 384 2328 8950 | 148477 398 3226 12847
24: 8440 378 2403 9075 | 144927 398 3194 12723
25: 8088 374 2469 9235 | 141389 399 3152 12583
---------------------------------- | ------------------------------
Avr: 379 2399 9098 | 399 3209 12791
To: 389 2804 10944
RPI4 with the command “7z b -mmt1”
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
LE
CPU Freq: - - - - - - - - -
RAM size: 3792 MB, # CPU hardware threads: 4
RAM usage: 435 MB, # Benchmark threads: 1
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 1433 100 1395 1394 | 18991 100 1622 1622
23: 1358 100 1384 1384 | 18713 100 1620 1620
24: 1277 100 1374 1374 | 18402 100 1616 1616
25: 1199 100 1370 1370 | 17953 100 1598 1598
---------------------------------- | ------------------------------
Avr: 100 1381 1380 | 100 1614 1614
Up to: 100 1497 1497
RPi4 with the command “7z b”
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)
LE
CPU Freq: 64000000 64000000 - - - - - - -
RAM size: 3792 MB, # CPU hardware threads: 4
RAM usage: 882 MB, # Benchmark threads: 4
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 3868 338 1114 3764 | 73832 399 1578 6299
23: 3734 355 1073 3805 | 72478 399 1572 6271
24: 3597 363 1065 3868 | 71181 399 1565 6249
25: 3481 368 1081 3975 | 69457 399 1548 6182
---------------------------------- | ------------------------------
Avr: 356 1083 3853 | 399 1566 6250
To: 377 1325 5052
Another untested tool is stress-ng
sysbench | RPi4 | RPi5 | Percentage |
Events/Sec | 1471 | 2730 | 185% |
7z | RPi4 | RPi5 | Percentage |
Single | 1497 | 3123 | 208% |
Multi | 5052 | 10944 | 216% |
So in some cases the CPU is twice as fast.
For the graphics processor speed we used the tools below:
Glmark2
and
Vkmark
The Geekbench tool encountered a compilation error and we have not been able to test it yet.
We were also curious about the difference between the number of frames per second of quake2.
However, the volcano version produced strange artifacts and this test will also have a follow-up.
There is no hardware codec acceleration, only HEVC decoding.
(H265 hardware decoding at 4k60, and VC1 hardware decoding)
RPi5
[build] use-vbo=false | 1041 | 0.961 |
[build] use-vbo=true | 1196 | 0.836 |
[texture] texture-filter=nearest | 1073 | 0.932 |
[texture] texture-filter=linear | 1069 | 0.936 |
[texture] texture-filter=mipmap | 1079 | 0.927 |
[shading] shading=gouraud | 1089 | 0.918 |
[shading] shading=blinn-phong-inf | 1109 | 0.902 |
[shading] shading=phong | 1054 | 0.949 |
[shading] shading=cel | 1055 | 0.948 |
[bump] bump-render=high-poly | 783 | 1,278 |
[bump] bump-render=normals | 1150 | 0.870 |
[bump] bump-render=height | 1111 | 0.900 |
[effect2d] kernel=0,1,0;1,-4,1;0,1,0; | 693 | 1,445 |
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1; | 363 | 2,760 |
[pulsar] light=false:quads=5:texture=false | 1235 | 0.810 |
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4 | 284 | 3,521 |
[desktop] effect=shadow:windows=4 | 1041 | 0.961 |
[buffer] iinterleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map | 491 | 2,039 |
[buffer] interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata | 456 | 2,195 |
[buffer] interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map | 527 | 1,901 |
[ideas] speed=duration | 1103 | 0.907 |
[jellyfish] | 891 | 1,123 |
[terrain] | 67 | 14,994 |
[shadow] | 157 | 6,386 |
[refract] | 72 | 14,072 |
[conditionals] fragment-steps=0:vertex-steps=0 | 1268 | 0.789 |
[conditionals] fragment-steps=5:vertex-steps=0 | 1238 | 0.808 |
[conditionals] fragment-steps=0:vertex-steps=5 | 1267 | 0.789 |
[function] fragment-complexity=low:fragment-steps=5 | 1262 | 0.793 |
[function] fragment-complexity=medium:fragment-steps=5 | 1100 | 0.910 |
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5 | 1255 | 0.797 |
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5 | 1260 | 0.794 |
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5 | 1107 | 0.904 |
RPi4
[build] use-vbo=false | 559 | 1,792 | Success |
[build] use-vbo=true | 682 | 1,467 | Success |
[texture] texture-filter=nearest | 603 | 1,659 | Success |
[texture] texture-filter=linear | 559 | 1,792 | Success |
[texture] texture-filter=mipmap | 574 | 1,743 | Success |
[shading] shading=gouraud | 620 | 1,614 | Success |
[shading] shading=blinn-phong-inf | 537 | 1,864 | Success |
[shading] shading=phong | 452 | 2,215 | Success |
[shading] shading=cel | 436 | 2,295 | Success |
[bump] bump-render=high-poly | 391 | 2,563 | Success |
[bump] bump-render=normals | 611 | 1,638 | Success |
[bump] bump-render=height | 543 | 1,843 | Success |
[effect2d] kernel=0,1,0;1,-4,1;0,1,0; | 317 | 3,157 | Success |
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1; | 168 | 5,961 | Success |
[pulsar] light=false:quads=5:texture=false | 648 | 1,545 | Success |
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4 | 111 | 9,081 | Success |
[desktop] effect=shadow:windows=4 | 443 | 2,261 | Success |
[buffer] interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map | 171 | 5,873 | Success |
[buffer]interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata | 178 | 5,628 | Success |
[buffer]iinterleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map | 219 | 4,582 | Success |
[ideas] speed=duration | 556 | 1,800 | Success |
[jellyfish] | 333 | 3,005 | Success |
[terrain] | 24 | 42,579 | Success |
[shadow] | 92 | 10,888 | Success |
[refract] | 33 | 31,110 | Success |
[conditionals] fragment-steps=0:vertex-steps=0 | 696 | 1,438 | Success |
[conditionals] fragment-steps=5:vertex-steps=0 | 456 | 2,194 | Success |
[conditionals] fragment-steps=0:vertex-steps=5 | 678 | 1,476 | Success |
[function] fragment-complexity=low:fragment-steps=5 | 582 | 1,718 | Success |
[function] fragment-complexity=medium:fragment-steps=5 | 412 | 2,431 | Success |
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5 | 567 | 1,765 | Success |
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5 | 567 | 1,765 | Success |
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5 | 398 | 2,515 | Success |
| Rpi5 | Percentage | |
glmark2 | 429 | 906 | 211% |
Whereby the vulcano variant was even faster than the glmark2
Vulkan score average found on internet 77(glmark2) compared to vulkan (188)
Below is the temperature of an RPi5 after playing a 4k movie for 5 minutes.
(Thermal image and photo shift of the raspberry is due to the dual camera of the flir module)
To measure the IO speed of the storage we used the following tools.
Hdparm, dd, iozone3
Other tools include Bonnie and fio
We looked at:
The SSD measurements were done by using a USB3 to SATA adapter and connecting it to the USB ports of the Raspberry .
It should be said that the fastest IO should be sought in an Nvme solution or via the PCIe of the RPi5. (This is not present on the RPi4)
Disadvantages SD card, although much has been improved. Many write actions can cause problems with older cards.
A solution for this could be: disable logging, write actions to a second external disk such as a thumbdrive or SSD.
An SD card will also be slower due to:
A better solution is to connect an SSD via an SSD to USB interface.
Disadvantages of an SSD
An Nvme solution will be the fastest, a USB Thumbdrive is between SD card and SSD.
At the end of this document are the in-depth iozone charts.
Some meetings
( IOPS stands for “Input/Output Operations Per Second”)
RPi4 NVME - avg - 239MB/s - 19000 IOPS RPi5 NVME - avg - 333MB/s - 22200 IOPS RPi4 SSD - avg - 190 MB/s - 13300 IOPS RPi5 SSD - avg - 254 MB/s - 18000 IOPS RPi4 sdcard - g - 27MB/s - 3500 IOPS READ! 900 IOPS WRITE RPi5 sdcard - avg - 41MB/s - 4000 IOPS READ! WRITE 1000 IOPS
System boot time from power on to opening the desktop.
These times are with sd card, ssd will be faster
RPI4 - avg 35 sec. RPI5 - avg 17 sec
Measuring throughput speed with DD
The following command was used for the below.
dd if=/dev/zero of=zerodatafile bs=1G count=1 conv=fdatasync
(Note: use fdatasync to make sure the write process waits until the cache is cleared and everything is on storage!)
RPi5 Sdcard : 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 37.6299 s, 28.5 MB/s Ssd - usb2 : 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 40.0703 s, 26.8 MB/s Ssd - usb3 : 1073 741824 bytes (1.1 GB, 1.0 GiB) copied, 3.94715 s, 272 MB/s RPi4 Sdcard : 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 51.6502 s, 20.8 MB/s SSD - usb 2 : 1073741824 bytes (1.1 GB , 1.0 GiB) copied, 39.2004 s, 27.4 MB/s SSD - usb 3 : 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.56438 s, 164 MB/s
As can be seen we can conclude a few things:
SD card speed is slightly faster on the RPi5, via USB2 it doesn't matter that much.
However, accessing the SSD via USB3 is more than 1.5x faster!
RPi4 | RPi5 | Percentage | |
sdcard | 20.8 | 28.5 | 137% |
usb2 | 27.4 | 26.8 | 98% |
usb3 | 164 | 272 | 166% |
RPi4 – Read – SSD
RPi4 – Writing – SSD
RPi5 – Read – SSD
RPi5 – Writing – SSD
Tools used: iperf3
Command server :
iperf3 -s
Command client :
iperf3 -c
This meeting measures without saving data, so the speed of storage has no effect.
The network throughput was almost the same when wired, in both cases to a remote machine ~900mbit/s
The WiFi meetings are listed below
Wifi via the RPi5 at a reasonable distance from the access point.
Download 122 mbits/s and upload 200 mbits/s.
On the RPi4 the upload and download were the same, at 75 mbit/s
The Raspberry has been improved in many ways.
The processor speed, graphics handling, IO throughput, and WiFi are all faster than the Raspberry 4.
At some points even 2 to 3 times faster