あっきぃです。一つ前の記事では外観の変化についてレビューをしました。
こちらの記事では実際に動かして性能を確かめていきます。
いつものとおり、スイッチサイエンスさんからお借りしている電波暗箱におさめて検証をしています。
今回、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さんの情報を確認ください。
USBコネクタに5Aはオーバースペックではないのだろうか。
専用電源を使用するより、USB-PDで12Vを取り出し、DC/DCで5Vに降圧。ピンヘッダから供給した方が安定動作するように思う。GNDも5Vも複数あった気がする。Pi本体でPDの12Vを利用すれば済む話なのだが。