Raspberry Pi 5 実機レビュー(ベンチマーク編)

あっきぃです。一つ前の記事では外観の変化についてレビューをしました。

こちらの記事では実際に動かして性能を確かめていきます。

いつものとおり、スイッチサイエンスさんからお借りしている電波暗箱におさめて検証をしています。

今回、UART機能を活用すべく、暗箱内のUSB配線は、ラップトップを通じてインターネットに出るためのUSB-LANと、コンソール作業用のDebug Probeを接続して、作業を実施しました。

UnixBench

Raspberry Pi 5のUnixBenchの結果は以下のとおりです。起動OSストレージはUSB SSDを使用してUSBからブートしています。なお、冷却についてはヒートシンクとファンを使用していますが、電波暗箱内に熱がこもってしまうため、冷却についてもう少ししっかり対応すれば結果が変化する可能性がある点についてはご了承ください。

------------------------------------------------------------------------
Benchmark Run: 木  9月 28 2023 14:21:25 - 14:49:24
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       35871623.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7000.8 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3747.6 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        488963.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          138385.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1100853.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              414920.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  88485.3 lps   (10.0 s, 7 samples)
Process Creation                               6307.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   8814.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2210.1 lpm   (60.0 s, 2 samples)
System Call Overhead                         302151.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   35871623.6   3073.8
Double-Precision Whetstone                       55.0       7000.8   1272.9
Execl Throughput                                 43.0       3747.6    871.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     488963.5   1234.8
File Copy 256 bufsize 500 maxblocks            1655.0     138385.0    836.2
File Copy 4096 bufsize 8000 maxblocks          5800.0    1100853.5   1898.0
Pipe Throughput                               12440.0     414920.4    333.5
Pipe-based Context Switching                   4000.0      88485.3    221.2
Process Creation                                126.0       6307.9    500.6
Shell Scripts (1 concurrent)                     42.4       8814.3   2078.8
Shell Scripts (8 concurrent)                      6.0       2210.1   3683.5
System Call Overhead                          15000.0     302151.7    201.4
                                                                   ========
System Benchmarks Index Score                                         922.7

------------------------------------------------------------------------
Benchmark Run: 木  9月 28 2023 14:49:24 - 15:17:22
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      142820987.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    27995.6 MWIPS (9.9 s, 7 samples)
Execl Throughput                              10236.0 lps   (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1387766.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          543428.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1328002.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1656919.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 312064.0 lps   (10.0 s, 7 samples)
Process Creation                              14014.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  17045.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   2217.8 lpm   (60.1 s, 2 samples)
System Call Overhead                        1208120.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  142820987.7  12238.3
Double-Precision Whetstone                       55.0      27995.6   5090.1
Execl Throughput                                 43.0      10236.0   2380.5
File Copy 1024 bufsize 2000 maxblocks          3960.0    1387766.5   3504.5
File Copy 256 bufsize 500 maxblocks            1655.0     543428.5   3283.6
File Copy 4096 bufsize 8000 maxblocks          5800.0    1328002.9   2289.7
Pipe Throughput                               12440.0    1656919.6   1331.9
Pipe-based Context Switching                   4000.0     312064.0    780.2
Process Creation                                126.0      14014.6   1112.3
Shell Scripts (1 concurrent)                     42.4      17045.5   4020.2
Shell Scripts (8 concurrent)                      6.0       2217.8   3696.4
System Call Overhead                          15000.0    1208120.9    805.4
                                                                   ========
System Benchmarks Index Score                                        2479.7

以前Raspberry Pi 4で取得した際は1パラレルの結果が320、パラレルの結果が851でしたので、いずれも3倍近い性能向上が確認できました。

OpenSSLテスト

Raspberry Pi 5では、CPUでAES暗号化の機能が搭載され、OpenSSLのパフォーマンスが大幅に向上しています。

$ lscpu 
Architecture:            aarch64
  CPU op-mode(s):        32-bit, 64-bit
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               ARM
  Model name:            Cortex-A76
    Model:               1
    Thread(s) per core:  1
    Core(s) per cluster: 4
    Socket(s):           -
    Cluster(s):          1
    Stepping:            r4p1
    CPU(s) scaling MHz:  42%
    CPU max MHz:         2400.0000
    CPU min MHz:         1000.0000
    BogoMIPS:            108.00
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp
                          asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec rstack overflow:  Not affected
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; __user pointer sanitization
  Spectre v2:            Mitigation; CSV2, BHB
  Srbds:                 Not affected
  Tsx async abort:       Not affected

UnixBenchと同様ヒートシンクとファンで冷却しながら取得した結果は以下のとおりです。こちらはPi 4とPi 5の両方で取得しました。

Raspberry Pi 4
version: 3.0.9
built on: Tue Jun 27 11:03:08 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-3EYFh
e/openssl-3.0.9=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE
=2
CPUINFO: OPENSSL_armcap=0x81
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
md5              20060.20k    63573.53k   151300.61k   235601.92k   281542.66k   285196.29k
sha1             17071.09k    54337.88k   126238.55k   191955.97k   226500.61k   229244.93k
rmd160           14590.26k    44724.57k    98697.22k   142409.73k   163799.04k   165472.94k
sha256           16343.43k    47364.39k   104071.34k   147695.62k   169000.96k   170732.20k
sha512           13388.09k    53628.05k   115350.95k   191555.93k   240074.75k   243886.76k
hmac(md5)        12954.35k    44555.26k   121571.75k   215362.56k   277427.54k   283060.91k
des-ede3         13872.51k    14476.86k    14628.78k    14671.19k    14682.79k    14685.53k
aes-128-cbc      45137.76k    48874.45k    50187.86k    50521.77k    50604.71k    50621.10k
aes-192-cbc      38315.12k    40966.76k    42086.74k    42387.80k    42289.83k    42303.49k
aes-256-cbc      33279.44k    35311.38k    36007.17k    36201.13k    36255.06k    36252.33k
camellia-128-cbc    55411.08k    65619.88k    68665.69k    69651.80k    69935.10k    69905.07k
camellia-192-cbc    44774.70k    51409.24k    53273.34k    53868.54k    54031.70k    54012.59k
camellia-256-cbc    44913.11k    51417.77k    53275.73k    53867.86k    54037.16k    54018.05k
ghash            90443.33k   123293.55k   138805.08k   143634.09k   144586.07k   140683.95k
rand              2817.99k    10049.37k    30343.83k    63935.95k    95414.66k    99422.10k
Raspberry Pi 5
version: 3.0.9
built on: Tue Jun 27 11:03:08 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-3EYFhe/openssl-3.0.9=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xbd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
md5              38876.14k   112459.26k   244872.99k   343889.92k   388713.13k   392407.72k
sha1             54259.39k   195820.84k   560858.54k  1046074.03k  1403792.04k  1439159.64k
rmd160           32580.90k    87789.51k   182199.38k   255504.10k   286324.05k   288484.01k
sha256           52860.18k   192068.07k   534115.67k  1035979.43k  1447362.56k  1489928.19k
sha512           25557.98k   107456.55k   206635.78k   323940.35k   388903.56k   393560.06k
hmac(md5)        22670.27k    75366.53k   197372.84k   316821.16k   383109.80k   389403.99k
des-ede3         23404.53k    23946.99k    24163.75k    24196.10k    24207.36k    24210.09k
aes-128-cbc     673310.63k  1340616.36k  1732335.62k  1856858.45k  1909036.37k  1913978.88k
aes-192-cbc     628817.58k  1197309.53k  1475447.38k  1547643.22k  1592404.65k  1595796.14k
aes-256-cbc     622174.58k  1062045.76k  1278014.63k  1339694.42k  1365753.86k  1368260.61k
camellia-128-cbc   101635.74k   109795.29k   112098.65k   113008.98k   113186.13k   113339.05k
camellia-192-cbc    80806.49k    85497.51k    86893.48k    87367.68k    87542.44k    87577.94k
camellia-256-cbc    79942.40k    85506.88k    86894.85k    87393.28k    87536.98k    87556.10k
ghash           444674.42k  1505138.90k  3199533.65k  4460456.96k  5020199.59k  5068035.41k
rand             11319.77k    42223.40k   161315.61k   547445.78k  1698195.69k

たとえばaes-256-cbcを抜き出して比較してみると、最大37倍も処理できるようになっていることがわかります。

type                    16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
(Pi4) aes-256-cbc      33279.44k    35311.38k    36007.17k    36201.13k    36255.06k    36252.33k
(Pi5) aes-256-cbc     622174.58k  1062045.76k  1278014.63k  1339694.42k  1365753.86k  1368260.61k
Pi5/Pi4                    18.70        30.08        35.49        37.01        37.67        37.74

AESとは関係しない項目、たとえばsha512でも、1.6〜2倍の性能向上が確認できます。

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
(Pi4) sha512    13388.09k    53628.05k   115350.95k   191555.93k   240074.75k   243886.76k
(Pi5) sha512    25557.98k   107456.55k   206635.78k   323940.35k   388903.56k   393560.06k
Pi5/Pi4             1.91         2.00         1.79         1.69         1.62         1.61

高速化したMicroSDスロットのベンチマーク

MicroSDカードスロットはSDR104モードに対応したため、理論値では104MB/sの転送に対応します。このため、最近の一般的なMicroSDカードであれば高速に起動できるようになりました。

MicroSDカードを使用してPi4・Pi5それぞれでOSを起動し、hdparmコマンドで読み込み性能を確認した結果、Pi4は43.9MB/s、Pi5は89.4MB/sとなりました。理論値にはやや届きませんでしたが、Pi4に比べて約2倍の性能が出ていることがわかります。

ddコマンドによるシーケンシャルの書き込み性能は、Pi4が27.5MB/s、Pi5が35.1MB/sとなりました。それほど差が出ていないように見えますが、MicroSDカードは一般的に読み込みは早く、書き込みはそれほど早くないため、MicroSDカードの書き込み性能が先に限界にきている可能性が考えられます。WindowsマシンでCrystalDiskMarkを用いた書き込みテストでも38MB/sだったため、概ねこのあたりが上限のようです。

USB3.0ポートも高速化。ただし電源周りに注意(USBを使わないときも)

USB3.0ポートは、Raspberry Pi 4ではVL805 USBハブチップによって帯域を共有したものでしたが、Raspbery Pi 5では、RP1チップによって2つのUSB3.0+USB2.0ポートが提供されるようになったため、どちらのUSB3.0ポートを使用しても性能を引き出すことが可能になりました。

同時使用のテストではなく1つのSSDのみ接続してのテストですが、こちらもddとhdparmで測定した結果、ddによるシーケンシャルの書き込み性能は、Pi 4では約135MB/s、Pi 5では約328MB/sとなりました。また、hdparmによるシーケンシャルの読み込みテストは、Pi4では約200MB/s、Pi 5では約333MB/sとなりました。いずれも性能の向上が確認できました。

なお、USBの電源を十分に供給するには、オフィシャルの電源アダプターを用いて5V/5Aの電力供給をすることが推奨されています。USBストレージから起動しようとすると、以下のメッセージが表示されます。

***
USB boot requires high current (5 volt 5 amp) power supply.
To disable this check set usb_max_current_enable=1 in config.txt
or press the power button to temporarily enable usb_max_current_enable
and continue booting.
See https://rptl.io/rpi5-power-supply-info for more information
***

市販のUSB-PD電源では5V5Aを出力できるものが少ないため、オフィシャルの電源アダプターのPSE取得を待ってそれを用いるか、メッセージを無視して電源ボタンを押すことで一時的に無視して起動するか、usb_max_current_enable=1を/boot/config.txtに投入して恒久的に無視するかの選択が必要になります。

性能を活かすための電源と冷却選び

一般的なUSB PD電源は5Vの場合3Aまでの出力のため、これをRaspberry Pi 5で使用すると、USBデバイスへの供給が600mAに制限されたり、電力が不足する可能性があります。よって、オフィシャルの電源も必要な機能性があります。ただ、PSEの取得問題が起こるので、これは悩ましい問題かもしれません。幸い(?)日本はRaspberry Pi 5のいわゆる技適取得で他国より発売が遅れるため、待っている間に先に利用できる国のユーザーがどう対処するかの知見を得ることができるでしょう……。

また、発熱も高性能化に伴って増加し、オフィシャルのケースにはファンが標準添付され、オフィシャルのヒートシンク+ファンも発売されます。常に負荷をかけるような使い方をする場合はファンの利用も考慮すると良いでしょう。

日本での発売について

日本での発売は、いわゆる技適の取得後、認定リセーラーとの調整を経てからとなります。詳しくはスイッチサイエンスさん、KSYさんの情報を確認ください。

https://prtimes.jp/main/html/rd/p/000000137.000064534.html

https://raspberry-pi.ksyic.com/news/page/nwp.id/130

Raspberry Pi 5 実機レビュー(ベンチマーク編)」への1件のフィードバック

  1. USBコネクタに5Aはオーバースペックではないのだろうか。
    専用電源を使用するより、USB-PDで12Vを取り出し、DC/DCで5Vに降圧。ピンヘッダから供給した方が安定動作するように思う。GNDも5Vも複数あった気がする。Pi本体でPDの12Vを利用すれば済む話なのだが。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です