高性能SBC Khadas VIM4
Khadas VIM4は 2022年5月10日にリリースされた、高性能なシングルボードコンピューターです。豊富なIOや高性能CPU/GPUが採用されています。
ざっくりまとめると
※CPUは 4コア 2.2GHz Cortex-A73 と 4コア 2.0GHz Cortex-A53 の組み合わせです。
※記事執筆時点ではUbuntuでのHDMI入力は利用できません。
※回路図を見る限りでは搭載されているジャイロセンサーにすでに接続されているっぽいですが、そのうち試してみたいと思います。
ハードウェア
手のひらサイズのボードにかなり詰め込まれている印象を受けます。個人的には M.2 ポートが用意されており、高速ストレージを利用可能なのが嬉しいです。
基板左下にあるLEDは赤と白の2色で、ユーザーがコントロール可能です。
https://dl.khadas.com/products/vim4/certifications/
背面にはMicroSDカード/M.2スロットあたりも用意されています。また、HDMI出力以外にもタッチパネルやモニターを接続可能なインタフェースも用意されており、モニターを複数利用するアプリケーションにも利用できそうです。
M.2 スロットは外側に向けて刺さるようになっているため、そのままSSDを差し込むとボード本体からはみ出す形になりますが、スタックできるような基板も販売されています。(しかも現時点では$8と安い)
電源
VIM4の電源は USB-C もしくは背面にある電源入力ピンから行います。背面の電源入力ソケットは 9~20vでの入力が可能となっており、それなりにレンジが広いですが、対応している電源アダプターを見ると 9v 3A /12v 2.5A / 20v 2A となっているためそれなりの電力供給が必要となります。
またUSB-C電源はUSB Power Deliveryに対応したものが必要です。
しかし、手持ちの5V 6A電源をUSB-C接続したところ全く問題無く動作しているため電源はある程度選ぶ必要がありそうです。
サイズ比較
SBCで有名なラズベリーパイ4 Model Bと比較すると若干小さいといった程度ですが、VIM4はインタフェースが多いため密度が高いように感じます。
ファンやヒートシンクも薄く、LANポートに至っては基板に埋め込まれるように設置されています。
厚さは相当頑張って薄くしたな、、という印象です。
機械学習用途
VIM4はその名の通り4世代目のVIMですが、以前のVIM3で組み込まれていたNPUは搭載されていません。今後発売されるVIM4の新しいリビジョンでは搭載される可能性があるようです。ただし、それなりにCPU/GPUがパワフルなので、軽量なモデルあれば十分に動作させることができます。
Neural Processing Unitの略で、おもに機械学習やディープラーニング等の処理を高速に処理できるよう設計されたプロセッサーです。CPU/GPUに並び機械学習用途の場合主に速度面でのアドバンテージがあります。
ソフトウェア
VIM4では本体に搭載されている OOWOW と呼ばれる管理ツールを起動時に本体横のボタン操作で起動することができます。
このOOWOWではeMMCストレージへのOS書き込みや、レスキュー用のシェル起動などの便利機能が用意されており、VIM4単体でのセットアップが可能となっています。
2022/05/22時点では以下のOSを選択することができます。
- Android 11(32Bit)
- Ubuntu 22.04(Kernel 5.4) デスクトップ環境
- Ubuntu 22.04(Kernel 5.4) サーバー用
起動するとシンプルなメニュー画面が表示されるので、OSのセットアップが可能です。
Ubuntu
インストール完了後は普通のLinuxマシンとして利用することが可能です。ラズベリーパイと比較するとスペックの違いからもかなりサクサク動作する印象を受けます。
普通のLinuxマシンとして使えるので、それほど言う事が無い!
GPIO
若干クセが強いように思いますが、GPIOはもちろん利用可能です。ピン配列は以下の通りとなっており、ごく一部のピンはラズベリーパイと同様ですが互換性はありません。
5v, 3.3v以外にも1.8v電源や I2C, I2S, ADC, UART, PWM あたりが用意されています。
Choromium をインストール
現在最も利用されているブラウザChromeとほぼ同じブラウザであるChromiumを利用する事ができます。インストールは以下のコマンドをターミナルで実行します。
sudo apt install -y chromium-browser
動画を再生してみるとChromiumが最適化されていないためか、4Kではフレームドロップが発生しました。しかし1080pでは全く問題無く再生できました。
ハードウェア構成を考えると再生に問題が発生するとは考えにくいので、ここは今後に期待する部分です。ちなみにAndroidで再生した方がスムーズでした。
Android
VIM4ではAndroid を利用することができます。
2022/05/22 時点でバージョンは Android 11 が採用されています。
HDMI入力
他のデバイスから出力されたHDMI入力をそのまま画面に表示できます。Ubuntuでも使えるようになるのが待ち遠しい。。。
ラズベリーパイ4と比較
ハードウェア性能は完全にVIM4が上回っていますが、ソフトウェア的な部分ではまだまだラズベリーパイの方が充実しているケースがあります。しかし、CPUはクロックも高い上にコア数も2倍搭載されているため性能的にVIM4が圧倒的に有利である事は変わらず、ラズベリーパイではちょっと遅いなという高負荷アプリに適しているように思います。
また、VIM4は内蔵ストレージとして32GB eMMCが搭載されているためMicroSDカードを用意する必要がありません。地味に助かります。
Raspberry Pi 4 Model B | Khadas Vim 4 | |
---|---|---|
CPU | 4 core Cortex-A72@1.5GHz | 4 core A73@2.2GHz + 4 core A53@2.0GHz |
GPU | Broadcom VideoCore VI | Mali G52MP8(8EE) 800Mhz |
メモリ | 2~8GB LPDDR4-3200 | 8GB LPDDR4X (Up to 2016MHz) |
内蔵ストレージ | 無し | 32GB eMMC |
電源 | USB-C 5V 3A | USB-C PD(24W) |
その他 | ジャイロセンサー マイク M.2コネクター |
|
OS | Raspberry Pi OS Ubuntu Manjaro ARM Linux その他多数 |
Android 11 Ubuntu |
価格 | $75(8GB) | $219 |
Raspberry Pi でも Compute Module という組み込み向けのボードではeMMCが搭載されているものがあります。
価格
現時点ではファンとヒートシンクが付属するキットとボード単体版の2種類が販売されておりボードのみは 28,000円、キットでは 32,000円となっています。
高スペック!値段!インタフェース充実!
入門用として
VIM4はスペックやインタフェースの充実っぷりからも伝わるように、かなり本格的なSBCです。入門用としては若干オーバースペック気味ですが、OOWOWのようなツールがプリインストールされていることでセットアップが簡単になり、トライアンドエラーがしやすいと思います。
ユースケース
デスクトップマシンとして
本格的なデスクトップマシンと見比べると劣るものの、手のひらサイズの省スペースデバイスと考えるとほとんどのケースで必要十分な性能を持っています。
OS に Ubuntu を選択可能なので、普通のLinuxマシンとして利用したり、Chromium, VS Code, Docker等を利用して開発の学習用のマシンとしても使えます。
デフォルトで入っているブラウザFireFoxは残念ながらそのままでは起動しませんが以下のコマンドを実行すると起動できるようになります。VIM4はリリース直後の段階にあり、今後こういった問題は修正されていくものと思います。
ブラウザ無いと困るよ!
小型サーバー
MicroSD/USB/NVMe SSD等のストレージを接続可能なので、家庭や小規模オフィスのファイルサーバ、VPNサーバ、高性能なエッジデバイスとして利用できそうです。
CPU性能やメモリ容量も比較的余裕があるので、Docker等を利用したシステム構成も十分に可能です。
デジタルサイネージデバイス
映像や広告を流すだけにしておくにはもったいない程の性能ですが、店舗のディスプレイや広告用のモニターなどへの利用も想定されています。
また、GPIOピンもあり、何らかの制御が必要なデバイスにも対応する事ができます。
マイニングでは?
あまり現実的ではないですが、試しにMoneroをマイニングしてみました。比較として普段使っているMacStudio (M1 Max) と比べるとおよそ1コア分より少し低い値となりました。
VIMは4つの高性能コア+4つの高効率コアで構成されており、高性能コアでは 50~60 H/s でしたが、高効率コアでは 40 H/s 程度となりました。
マイニングではM1の高性能コア1コアに迫る性能となり、SBCとしては相当パワフルです。
安定性を確かめるため、24時間程連続稼働させてみましたが問題は発生しませんでした。ただし、ファンは常時動作している状態になるため、ベッド横等の静かさが重要な環境では気になる場合もあるかもしれません。
仮想通貨のマイニングはシングルボードコンピューターのような小さな計算能力であっても行うことは可能ですが、収益的に全く美味しくないため通常はこのようなデバイスでマイニングをすることはほとんどありません。
おまけ
コマンドの実行結果を載せておきます。
uname -a
khadas@Khadas:~$ uname -a
Linux Khadas 5.4.125 #1.0.10 SMP PREEMPT Mon Apr 25 13:56:56 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
sysbench
khadas@Khadas:~$ sysbench --test=cpu run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
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: 2031.94
General statistics:
total time: 10.0005s
total number of events: 20323
Latency (ms):
min: 0.49
avg: 0.49
max: 1.02
95th percentile: 0.49
sum: 9981.64
Threads fairness:
events (avg/stddev): 20323.0000/0.00
execution time (avg/stddev): 9.9816/0.00
khadas@Khadas:~$ sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 --validate run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Validation checks: on.
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 3325.37
General statistics:
total time: 10.0006s
total number of events: 33260
Latency (ms):
min: 1.19
avg: 1.20
max: 2.53
95th percentile: 1.21
sum: 39971.21
Threads fairness:
events (avg/stddev): 8315.0000/25.17
execution time (avg/stddev): 9.9928/0.00
lscpu
khadas@Khadas:~$ lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: ARM
Model name: Cortex-A73
Model: 2
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r0p2
CPU max MHz: 2208.0000
CPU min MHz: 500.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
Model name: Cortex-A53
Model: 4
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Stepping: r0p4
CPU max MHz: 2016.0000
CPU min MHz: 500.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
Vulnerabilities:
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; __user pointer sanitization
Spectre v2: Vulnerable
Srbds: Not affected
Tsx async abort: Not affected
df -h
しばらく使った後なので、インストール直後はもっとディスクが空いてます。
khadas@Khadas:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 796M 9.9M 786M 2% /run
/dev/rootfs 29G 4.5G 24G 16% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /tmp
tmpfs 796M 68K 796M 1% /run/user/1000
khadas@Khadas:~$
この記事は YouTube用にKhadasから提供されたVIM4を勝手に個人的に記事にしたものです。なので別に作らなくても良い記事を勝手に作ったので、商品提供かといわれると、そうでもないような気がするものの、まぁ微妙かなと思いここに記しておきます。