post featured

02/10/2024

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   1497

 

RPi4 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   5052

 

Een 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!)

RPi5Sdcard : 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  RPi4Sdcard : 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