あっきぃです。先日発売されたRaspberry Pi 400ですが、実はサンプルをお預かりしていましたので、触ってみたレポートをお送りします。
外観
比較対象として、少し前に発売された日本語版Raspberry Pi公式キーボードと並べてみました。遠近法的な問題で手前のPi400が大きく見えますが、縦横のサイズはまったく同じです。高さだけ、数ミリほどPi400が大きいようです。
続いて裏面です。Pi400には、キーボードには見られない、排熱用のスリットが設けられています。内部には金属の板らしき物が見えるため、これがヒートシンク的なものになるものと思われます。金属板の重さがなかなかあるようで、キーボードは250グラムなのに対して、Pi400は380gほどありました(もちろん、基板などの部品の差もありますが)。
インターフェイスの様子。USB2.0ポートが1つ減っています(キーボードに取られている?)が、それとCSI・DSIポートがない以外はRaspberry Pi 4と同等のインターフェイスを備えています。
電源の仕様的には、Pi4と同じく「電源ケーブルを差し込んだらすぐ起動」です(後述の電波暗箱に入れて電源を投入して使えたことから)が、キーボード本体にも電源ボタンと、電源の状態が確認可能なLEDランプが搭載されています。電源ボタンはFn+F10キーに割り当てられています。元のキーボードはScrollLockキーになっており、右上のLEDもScrollLockランプが電源ランプに置き換わっています。電波暗箱に入れてしまうため、残念ながら通電状態を見ることも、触って確かめることも現状ではできません。
Pi400を動かしてみよう
Pi400には無線LAN・Bluetoothが搭載されており、日本での認証が完了していないため、通電するには例によって電波暗室もしくは暗箱が必要になります。以前よりスイッチサイエンス様からお借りしている電波暗箱を利用して、Pi400を動かしていきます。キーボードは全く使えませんが、システム部分を触ってみてPi4と違う点を探っていきます。
暗箱内部はこの通り、Pi4とPi400を同時に入れています。Pi4は、Pi400の有線LANの速度測定のために、ギガビット接続をしたいので箱に入れました。箱の外との通信はUSB-LANアダプターをUSB2.0ポートに接続しています。
作業に使用するMacからPi4までの配線は「[Mac]-[USBケーブル]-[暗箱のポート]-[USB-LANアダプター]-[LANケーブル]-[USB-LANアダプター]-[Pi4のUSB2.0ポート]」のとおりです。Pi4とPi400の接続は、それぞれのオンボードLANポートで直結します。
iperf3でギガビットEthernetの性能確認
Pi4、Pi400ともにiperf3をインストールした状態で起動して、ネットワークの性能を検証しました。結果は、800Mbps前後となりました。もしかするとPi4の性能がボトルネックになってしまっている可能性がありますが、かんたんに計測した結果だけでも十分な性能が出ていると言えるでしょう。
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 974 MBytes 817 Mbits/sec 7 sender
[ 5] 0.00-10.00 sec 971 MBytes 815 Mbits/sec receiver
UnuxBenchで計測
つづいて、raspi.jpで紹介するときの定番ツールUnuxBenchでCPU等の計測をします。ストレージの読み書きもベンチマーク項目に含まれるため、Pi4とPi400で同じストレージを使用して計測します。今回はUSB-SSDストレージをUSB3.0ポートからブートしました。
しれっと書きましたが、Raspberry Pi 4では9月頃からUSBポートからのブートに正式対応しており、最新のEEPROMにアップデートして必要な設定をすることで、Pi400も同じようにUSBポートからのブートができました。
話を戻して、UnuxBenchの結果を紹介します。まずはPi4の計測結果です。
========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)
System: usbpi32: GNU/Linux
OS: GNU/Linux -- 5.4.51-v8+ -- #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020
Machine: aarch64 (unknown)
Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
15:23:03 up 11 min, 4 users, load average: 0.90, 0.80, 0.50; runlevel Nov
------------------------------------------------------------------------
Benchmark Run: 水 11月 04 2020 15:23:03 - 15:50:51
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 10231948.4 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2384.8 MWIPS (9.6 s, 7 samples)
Execl Throughput 1499.2 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 171735.8 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 50866.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 460381.4 KBps (30.0 s, 2 samples)
Pipe Throughput 274173.2 lps (10.0 s, 7 samples)
Pipe-based Context Switching 49014.0 lps (10.0 s, 7 samples)
Process Creation 2768.9 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 3527.8 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1020.5 lpm (60.0 s, 2 samples)
System Call Overhead 235132.4 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 10231948.4 876.8
Double-Precision Whetstone 55.0 2384.8 433.6
Execl Throughput 43.0 1499.2 348.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 171735.8 433.7
File Copy 256 bufsize 500 maxblocks 1655.0 50866.8 307.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 460381.4 793.8
Pipe Throughput 12440.0 274173.2 220.4
Pipe-based Context Switching 4000.0 49014.0 122.5
Process Creation 126.0 2768.9 219.8
Shell Scripts (1 concurrent) 42.4 3527.8 832.0
Shell Scripts (8 concurrent) 6.0 1020.5 1700.8
System Call Overhead 15000.0 235132.4 156.8
========
System Benchmarks Index Score 403.2
------------------------------------------------------------------------
Benchmark Run: 水 11月 04 2020 15:50:51 - 16:18:41
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 40603806.8 lps (10.0 s, 7 samples)
Double-Precision Whetstone 9528.0 MWIPS (9.6 s, 7 samples)
Execl Throughput 4351.4 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 278680.2 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 78835.6 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 658684.2 KBps (30.0 s, 2 samples)
Pipe Throughput 964682.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 171989.9 lps (10.0 s, 7 samples)
Process Creation 7378.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 7549.2 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 973.1 lpm (60.2 s, 2 samples)
System Call Overhead 821313.0 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 40603806.8 3479.3
Double-Precision Whetstone 55.0 9528.0 1732.4
Execl Throughput 43.0 4351.4 1011.9
File Copy 1024 bufsize 2000 maxblocks 3960.0 278680.2 703.7
File Copy 256 bufsize 500 maxblocks 1655.0 78835.6 476.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 658684.2 1135.7
Pipe Throughput 12440.0 964682.9 775.5
Pipe-based Context Switching 4000.0 171989.9 430.0
Process Creation 126.0 7378.0 585.6
Shell Scripts (1 concurrent) 42.4 7549.2 1780.5
Shell Scripts (8 concurrent) 6.0 973.1 1621.9
System Call Overhead 15000.0 821313.0 547.5
========
System Benchmarks Index Score 972.6
つづいて、Pi400の計測結果です。
========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)
System: usbpi32: GNU/Linux
OS: GNU/Linux -- 5.4.51-v8+ -- #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020
Machine: aarch64 (unknown)
Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
18:23:36 up 7 min, 4 users, load average: 1.01, 0.80, 0.42; runlevel Nov
------------------------------------------------------------------------
Benchmark Run: 水 11月 04 2020 18:23:36 - 18:51:37
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 12254556.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2861.4 MWIPS (9.2 s, 7 samples)
Execl Throughput 1777.3 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 194801.3 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 61087.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 522476.5 KBps (30.0 s, 2 samples)
Pipe Throughput 327576.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 59033.2 lps (10.0 s, 7 samples)
Process Creation 2949.4 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 4001.4 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1123.0 lpm (60.0 s, 2 samples)
System Call Overhead 281163.0 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 12254556.3 1050.1
Double-Precision Whetstone 55.0 2861.4 520.3
Execl Throughput 43.0 1777.3 413.3
File Copy 1024 bufsize 2000 maxblocks 3960.0 194801.3 491.9
File Copy 256 bufsize 500 maxblocks 1655.0 61087.0 369.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 522476.5 900.8
Pipe Throughput 12440.0 327576.5 263.3
Pipe-based Context Switching 4000.0 59033.2 147.6
Process Creation 126.0 2949.4 234.1
Shell Scripts (1 concurrent) 42.4 4001.4 943.7
Shell Scripts (8 concurrent) 6.0 1123.0 1871.7
System Call Overhead 15000.0 281163.0 187.4
========
System Benchmarks Index Score 468.3
------------------------------------------------------------------------
Benchmark Run: 水 11月 04 2020 18:51:37 - 19:19:50
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 48711634.6 lps (10.0 s, 7 samples)
Double-Precision Whetstone 11413.4 MWIPS (9.5 s, 7 samples)
Execl Throughput 4884.6 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 333022.8 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 102039.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 752250.4 KBps (30.0 s, 2 samples)
Pipe Throughput 1303600.6 lps (10.0 s, 7 samples)
Pipe-based Context Switching 231749.8 lps (10.0 s, 7 samples)
Process Creation 7964.4 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 8861.1 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1207.9 lpm (60.1 s, 2 samples)
System Call Overhead 1096175.6 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 48711634.6 4174.1
Double-Precision Whetstone 55.0 11413.4 2075.2
Execl Throughput 43.0 4884.6 1136.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 333022.8 841.0
File Copy 256 bufsize 500 maxblocks 1655.0 102039.0 616.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 752250.4 1297.0
Pipe Throughput 12440.0 1303600.6 1047.9
Pipe-based Context Switching 4000.0 231749.8 579.4
Process Creation 126.0 7964.4 632.1
Shell Scripts (1 concurrent) 42.4 8861.1 2089.9
Shell Scripts (8 concurrent) 6.0 1207.9 2013.1
System Call Overhead 15000.0 1096175.6 730.8
========
System Benchmarks Index Score 1186.8
出力が多いので、System Benchmarks Index Scoreを表にまとめました。
Raspberry Pi 4 | Raspberry Pi 400 | 比較 | |
1-CPU | 403.2 | 468.3 | 116% |
4-CPUs | 972.6 | 1186.8 | 122% |
結果は、いずれも約1.2倍となりました。Pi400はCPUコアあたりの周波数が1.8GHzとなり、Pi4の1.5GHzと比較して1.2倍の性能が見込めることから、UnuxBenchの結果がスペック通り向上していることがわかりました。
先述の通り、UnuxBenchは一部ディスクIOのベンチマークが項目にあるため、ねんのためCPUをベンチマークしている「Dhrystone 2 using register variables(整数演算処理)」の結果で比較してみましたが、1.2倍の性能差となりました。
発熱
ベンチマーク後のPi400を暗箱から取り出すと、本体は思ったよりも熱くなく、裏面が少しぬるいかな?くらいの感触でした。ヒートシンクが威力を発揮しているものと思われます。
yesコマンドを4つ走らせてCPU使用率が100%になったところでCPUの温度を確認したところ、1分くらいかけて50度弱になると言った具合でした。冷却面は心配いらなさそうです。
まとめ
Pi400の外観チェックと、かんたんなベンチマーク結果をご紹介しました。
Raspberry Piを公式キーボードに埋め込むハックは以前より存在しており、PiZeroやRaspberry Pi 3 Model A+などが埋め込まれているのは確認していましたが、公式からPi4をベースに新規設計されたシステムボードが内蔵されたキーボード一体型コンピュータが登場したのはなかなか興味深いです。
SoCの細かなリビジョン変更かヒートシンクの内蔵によってCPU周波数が向上している点も、デスクトップ用途には嬉しい改良でした。
GPIOは向きが違いつつも用意されているため、電子工作用途にも利用可能です。イギリスのRaspberry Piアクセサリや拡張ボードを扱うPimoroniでは、早速自社のブレイクアウトボードシリーズの「Breakout Garden」をPi400で使いやすい向きにしたベースボードを発売しています。今後Pi400のGPIOポート向けアクセサリも充実しそうな予感です。
工作面でいうと、Pi400のシステムボードはPi4をベースに薄く伸ばされた新規設計のもののため、例えばキーボードから取り出して自作キーボードや古いノートPCに組み込むなどの改造がまっさきに頭に浮かんだのですが、本体まるごとで認証が取得されると予想されるので、分解して別の機器に組み込むのは電波法的にダメそうです。惜しいですね。
各国語版の配列に対応したPi400も登場予定とのことで、日本語配列版の登場にも期待したいですね。さいごに、こうやって使うのかなーと想像しながら配線だけした写真を添えて終わります。