Raspberry Pi 400を触ろう(暗箱の中で)

あっきぃです。先日発売されたRaspberry Pi 400ですが、実はサンプルをお預かりしていましたので、触ってみたレポートをお送りします。

外観

比較対象として、少し前に発売された日本語版Raspberry Pi公式キーボードと並べてみました。遠近法的な問題で手前のPi400が大きく見えますが、縦横のサイズはまったく同じです。高さだけ、数ミリほどPi400が大きいようです。

日本語版公式キーボードとPi400を並べた様子

続いて裏面です。Pi400には、キーボードには見られない、排熱用のスリットが設けられています。内部には金属の板らしき物が見えるため、これがヒートシンク的なものになるものと思われます。金属板の重さがなかなかあるようで、キーボードは250グラムなのに対して、Pi400は380gほどありました(もちろん、基板などの部品の差もありますが)。

日本語公式キーボードとPi400の裏面

インターフェイスの様子。USB2.0ポートが1つ減っています(キーボードに取られている?)が、それとCSI・DSIポートがない以外はRaspberry Pi 4と同等のインターフェイスを備えています。

Pi400のインターフェイス

電源の仕様的には、Pi4と同じく「電源ケーブルを差し込んだらすぐ起動」です(後述の電波暗箱に入れて電源を投入して使えたことから)が、キーボード本体にも電源ボタンと、電源の状態が確認可能なLEDランプが搭載されています。電源ボタンはFn+F10キーに割り当てられています。元のキーボードはScrollLockキーになっており、右上のLEDもScrollLockランプが電源ランプに置き換わっています。電波暗箱に入れてしまうため、残念ながら通電状態を見ることも、触って確かめることも現状ではできません。

Fn+F10キーで電源操作ができる

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ポートで直結します。

電波暗箱に格納されたPi400たち

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 4Raspberry Pi 400比較
1-CPU403.2468.3116%
4-CPUs972.61186.8122%
System Benchmarks Index Score

結果は、いずれも約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ポート向けアクセサリも充実しそうな予感です。

Breakout Garden for Raspberry Pi 400(製品ページより引用)

工作面でいうと、Pi400のシステムボードはPi4をベースに薄く伸ばされた新規設計のもののため、例えばキーボードから取り出して自作キーボードや古いノートPCに組み込むなどの改造がまっさきに頭に浮かんだのですが、本体まるごとで認証が取得されると予想されるので、分解して別の機器に組み込むのは電波法的にダメそうです。惜しいですね。

各国語版の配列に対応したPi400も登場予定とのことで、日本語配列版の登場にも期待したいですね。さいごに、こうやって使うのかなーと想像しながら配線だけした写真を添えて終わります。

もちろん電源ケーブルは挿していないので、電源ランプはついていない点に注意。

Raspberry Pi 400リリース

Raspberry Pi 財団は11月2日、Raspberry Pi 400を発表しました。

https://www.raspberrypi.org/blog/raspberry-pi-400-the-70-desktop-pc/

Raspberry Pi 400は、Raspberry PiオフィシャルキーボードをベースにRaspberry Pi 4相当のコンピューターを内蔵した、キーボード一体型の新しいパーソナルコンピュータです。

スペックはBroadcom BCM2711 4-Core Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHzのSoC(Pi4の1.5GHzより少し早くなっています)と、4GBのRAMを搭載。インターフェイスはUSB2.0x1、USB3.0x2、ギガビットイーサネットx1、GPIOピン、microHDMIx2、SDカードスロット、無線LAN、Bluetoothと、Pi4とほぼ変わらない構成です。

価格は、本体のみの場合は70ドル、マウス・電源・SDカード・マイクロHDMI-HDMIケーブル、ビギナーズガイドブック(英語)がセットになったスターターキットの場合は100ドルとなっています。

キーボードレイアウトは、発売時点では英語(US/UK)、ドイツ、イタリア、フランス、スペインの6種類が用意されていますが、将来的にはオフィシャルキーボードで発売済みの他のレイアウトにも対応したPi400が販売できるように認証の取得を進めるとのことです。日本語版オフィシャルキーボードは8月にリリースされているため、日本語レイアウト版Pi400の登場も期待されます。