Benchmark Raspberry Pi 5
De Raspberry Pi 5 is ten opzichte van de Raspberry 4 veel veranderd.
Zo is de RPi5 op vele punten sneller geworden.
We hebben hier mij ElektronicaVoorJou onze eigen tests gedaan en hieronder kun je onze bevindingen vinden.
Punten waar we naar gekeken hebben zijn:
- CPU
- GPU (grafische processor)
- Opslag
- Netwerk en wifi
CPU
Hieronder kun je de diverse meetingen vinden.
Over het algemeen heel wat sneller, maar dit is echter ook te merken aan de temperatuur.
De RPi5 wordt sneller warm dan de RPi4 en een actieve koeling is dan ook geen overbodige luxe.
De Raspberry Pi 5 is voorzien van de Broadcom BCM2712 quad-core Arm Cortex A76-processor met een kloksnelheid van 2,4 GHz.
De Raspberry Pi 4 is voorzien van de Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC met een kloksnelheid van 1.8GHz
Dus hoewel nog steeds 4 cores, is de snelheid zonder overklokken standaard al een derde sneller.
GPU
Hieronder kun je de diverse meetingen vinden.
Ook bij grafische taken kan de RPi5 snel warm worden.
Daarbij moet wel gezegd worden dat de manier waarop de grafische processor wordt aangeroepen van invloed is op de temperatuur.
OpenGL is een open-source grafische programmeerinterface (API) waarmee ontwikkelaars 2D- en 3D-graphics kunnen creëren voor diverse toepassingen zoals videogames en wetenschappelijke visualisaties.
Vulkan doet hetzelfde, echter deze is specifiek ontworpen met multithreading in gedachten, waardoor ontwikkelaars efficiënter gebruik kunnen maken van moderne meerkernige processors.
Hierdoor zal een met Vulkan geoptimaliseerde code over het algemeen sneller zijn en de Raspberry minder warm laten worden.
Opslag
De traditionele manier van data opslag en waar het operating systeem op geïnstalleerd is een MicroSD kaart.
Echter is het ook mogelijk om van USB te booten.
(usbstick, SSD met een USB adaptor of zelfs Nvme)
Netwerk
Ook op netwerk gebied zijn er optimalisaties uitgevoerd.
Hoewel we met bedraad ethernet netwerk niet echt verschillen zagen, is wifi op de RPi5 wel sneller.
Meet resultaten en tools.
Hieronder staan de meet resultaten en de software tools die we gebruikt hebben.
De RPi4 en RPi5 hebben van de zelfde micro-sd kaartjes en SSD’s gebruik gemaakt.
Ook de plek waar de wifi tests gedaan zijn, zijn in beide gevallen hetzelfde.
CPU Meeting
Gebruikte tools : sysbench en 7z
RPi5 met het commando “sysbench cpu run”
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
RPi4 met het commando “sysbench cpu run
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):
min: 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
De meeting gedaan met 7z.
( 7z is een bestandscompressieprogramma en -formaat, vergelijkbaar met ZIP, dat een hoge compressieverhouding biedt en open-source is. Maar heeft ook een benchmark optie)
Om een single-thread benchmark uit te voeren moet je het volgende commando uitvoeren
7z b -mmt1
Voor een multi-thread benchmark test kan de laatste optie weggelaten worden
7z b
RPi5 met het commando “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
Tot: 100 3124 3123
RPi5 met commando “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
Tot: 389 2804 10944
RPI4 met het commando “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
Tot: 100 1497 1497RPi4 met het commando “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
Tot: 377 1325 5052Een andere niet geteste tool is stress-ng
CPU conclusie
sysbench | RPi4 | RPi5 | Percentage |
Events/Sec | 1471 | 2730 | 185% |
7z | RPi4 | RPi5 | Percentage |
Single | 1497 | 3123 | 208% |
Multi | 5052 | 10944 | 216% |
De CPU is in sommige gevallen dus 2x zo snel.
GPU
Voor de snelheid van de grafische processor hebben we de onderstaande tools gebruikt:
Glmark2
en
Vkmark
De tool Geekbench kreeg een compilatie fout en hebben we nog niet kunnen testen.
Ook waren we benieuwd naar het verschil tussen het aantal frames per seconde van quake2.
De vulkan versie gaf echter vreemde artefacts en deze test zal ook nog een opvolging krijgen.
Er is geen hardware codec acceleratie, alleen 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] <default> | 891 | 1.123 |
[terrain] <default> | 67 | 14.994 |
[shadow] <default> | 157 | 6.386 |
[refract] <default> | 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] <default> | 333 | 3.005 | Success |
[terrain] <default> | 24 | 42.579 | Success |
[shadow] <default> | 92 | 10.888 | Success |
[refract] <default> | 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 |
GPU conclusie
Rpi4 | Rpi5 | Percentage | |
glmark2 | 429 | 906 | 211% |
Waarbij de vulkan variant nog sneller was dan de glmark2
Vulkan score gemiddeld gevonden op internet 77(glmark2) ten opzichte van vulkan (188)
Hieronder de temperatuur van een RPi5 na 5 minuten een 4k filmpje te hebben gespeeld.
(Verschuiving thermisch beeld en foto van de raspberry komt door de dual camera van de flir module)
Opslag (IO)
Voor het meten van de IO snelheid van de opslag hebben we de volgende tools gebruikt.
Hdparm, dd, iozone3
Andere tools zijn bijvoorbeeld Bonnie en fio
We hebben gekeken naar:
- Lees/Schrijf acties naar SDkaart
- Lees/Schrijf acties naar SSD via USB2 interface
- Lees/Schrijf acties naar SSD via USB3 interface
De SSD meetingen zijn gedaan door een USB3 naar sata adaptor te gebruiken en deze op de USB aansluitingen van de Raspberry aan te sluiten.
Waarbij gezegd moet worden dat de snelste IO gezocht moet worden in een Nvme oplossing of via de PCIe van de RPi5. (Deze is niet aanwezig op de RPi4)
Nadelen SDkaart, hoewel hier veel aan verbeterd is. Kunnen veel schrijfacties voor problemen zorgen met oudere kaartjes.
Een oplossing hiervoor kan zijn : logging uitzetten, schrijfacties naar een tweede externe disk zoals een thumbdrive of SSD.
Ook zal een sdkaart langzamer zijn door:
- Sequentieel schrijven
- Beperkte caching
- Fragmentatie
Een betere oplossing is het aansluiten van een ssd via een ssd naar usb interface.
Nadelen van een SSD
- Hiervoor moet je een sata naar usb3 interface hebben of een ssd behuizing met ingebouwde usb convertor.
- Duurder door bovenstaande
- Pas op met een TLC en QLC, deze zullen langzamer worden op het moment van voller lopen van de disk.
Een Nvme oplossing zal het snelste zijn, een USB Thumbdrive zit tussen SDkaart en SSD in.
Aan het einde van dit document staan de diepgaande iozone grafieken.
Enkele meetingen
( IOPS staat voor “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 - avg - 27MB/s - 3500 IOPS LEZEN! 900 IOPS SCHRIJVEN RPi5 sdcard - avg - 41MB/s - 4000 IOPS LEZEN! 1000 IOPS SCHRIJVEN
Boot-tijd van het systeem van aanzetten tot het openen van de desktop.
Deze tijden zijn met sdkaart, ssd zal sneller zijn
RPI4 - avg 35 sec RPI5 - avg 17 sec
Het meten van doorvoersnelheid met DD
Voor onderstaande is het volgende commando gebruikt.
dd if=/dev/zero of=zerodatafile bs=1G count=1 conv=fdatasync
(Note: gebruikt fdatasync om te zorgen dat het schrijfproces wacht t/m de cache geleegd is en alles op de opslag staat!)
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 : 1073741824 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
Zoals te zien is kunnen we een paar dingen concluderen:
Sdkaart snelheid is iets groter op de RPi5, via usb2 maakt niet niet zoveel uit.
Echter de ssd via usb3 aanspreken is ruim 1.5x zo snel!
RPi4 |
RPi5 |
Percentage |
|
sdcard |
20.8 |
28.5 |
137% |
usb2 |
27.4 |
26.8 |
98% |
usb3 |
164 |
272 |
166% |
RPi4 – Lezen – SSD
RPi4 – Schrijven – SSD
RPi5 – Lezen – SSD
RPi5 – Schrijven – SSD
Netwerk meeting
Gebruikte tools : iperf3
Commando server :
iperf3 -s
Commando client :
iperf3 -c <ipnummerserver>
Deze meeting meet zonder data op te slaan, de snelheid van opslag is dus niet van invloed.
De netwerk doorvoersnelheid was bedraad zo goed als hetzelfde, in beide gevallen naar een remote machine ~900mbit/s
Hieronder staan de wifi meetingen
Wifi via de RPi5 op een redelijke afstand van het access point.
Download 122 mbits/s en upload 200 mbits/s.
Op de RPi4 was het up en downloaden hetzelfde en wel 75 mbit/s
Conclusie
De raspberry is op vele punten verbeterd.
De snelheid van de processor, grafische afhandeling, IO doorvoer en wifi zijn allemaal sneller dan bij de Raspberry 4.
Op sommige punten zelfs 2 tot 3 maal zo snel