Khadas Edge 2

[PR]2022/09/20 発売のKhadas Edge 2の紹介です。

Khadas Edge 2

ざっくりまとめ

高性能なシングルボード
性能を決めるSoCにはRockchip RK3588Sが採用されており、CPUは高性能4コア+低消費電力の4コアで構成されています。
※2.25GHz Quad Core ARM Cortex-A76 + 1.8GHz Quad Core Cortex-A55
OS は Android / Linux
OSには Android 11/12 もしくは Ubuntu 22.04 を選択する事ができます。OSセットアップにはOSインストーラーOOWOWが組み込まれているため、ボード単体でOSのインストールまで行う事が可能です。
Basic or Pro
Basic版でもほとんどのケースで十分と思いますが、さらにメモリ容量が必要となるアプリケーション用に、メモリ・ストレージがBasic版の2倍となるPro版の2種類用意されています。メモリはLPDDR4(2122MHz)が採用されています。
  • Basic : LPDDR4X 8GB(2112MHz)+32GB eMMC
  • Pro : LPDDR4X 16GB(2112MHz)+64GB eMMC
Amazon | Khadas Edge2 RK3588SミニARM PC,シングルボードコンピュータ8コアー64-bit CPU, ARM Mali-G610 MP4 GPU, 6 TOPS AI NPU, Wi-Fi 6, Bluetooth 5.1, 8K HD ディスプレイ &デコーダー, 4K UI & 4 独立ディスプレイ (Maker Kit-Pro) | Khadas | パソコン・周辺機器 通販
Khadas Edge2 RK3588SミニARM PC,シングルボードコンピュータ8コアー64-bit CPU, ARM Mali-G610 MP4 GPU, 6 TOPS AI NPU, Wi-Fi 6, Bluetooth 5.1, 8K HD ディスプレイ &デコーダー, 4K UI & 4 独立ディスプレイ (Maker Kit-Pro)がパソコン・周辺機器ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

スペック

Basic Pro
CPU Rockchip RK3588S
2.25GHz Quad Core ARM Cortex-A76 + 1.8GHz Quad Core Cortex-A55 CPU
ARM Mali-G610 MP4 GPU up to 1GHz
Build-in 6 TOPS Performance NPU
4K@60fps AV1, 8K@60fps H.265 Decoding
8K@30fps H.264/H.265 Encoding
HDR, HDR10, HLG Video Processing
Coprocessor STM32G031K6
メモリ 8GB LPDDR4X 2112MHz 16GB LPDDR4X 2112MHz
WiFi Ampak AP6275P
2T2R Wi-Fi 6, IEEE 802.11 ax/ac/a/b/g/n
RTC Battery 3V 3mAh, Lithium Rechargeable Battery
サイズ 82.0 x 57.5 x 5.7 mm
Edge2 | KhadasEdge2
Rockchip RK3588S ARM PC with 6 Tops NPU & 8K Display
Khadas Edge 2 公式サイト(英語)

やっぱり早い

Basic/Pro共に同じSoCを採用しているため、処理速度の差はありません。しかし、大きなメモリを必要とする場合(機械学習などで大きなモデルを利用する場合など)はPro版を選ぶ必要がありますが、シングルボードコンピューターという事もありほとんどのケースでBasicで十分と言えるように思います。

安定した無線接続

BluetoothとWiFi用アンテナ

Khadasのプロダクトは外部アンテナが採用されていることが多いですが、Edge 2ももれなく外部コネクタと写真のアンテナが付属しています。Edge 2 は有線LANポートは用意されていないため、無線での安定した接続はありがたいです。

MEMO

私の家は集合住宅かつ大通りに面しているいため、比較的WiFi環境としては悪い方になりSBCはかなりネットワーク接続を気にする必要がありましたが Edge 2 は安定していました。

RTCバッテリー

個人的にかなり嬉しいのはRTCバッテリーです。SBCの利用は時刻ズレで悩まされる事も多く、特にログを取得するようなケースでは外部のRTCモジュールを利用する場合もあります。

RTCとは
Real-time Clock の略でノートPCでいうとバッテリーが切れた際にも現在時刻を保持しつづける仕組み。ボタン電池などを利用し、本体の電源供給が絶たれた場合も動作するように設計されている。

時刻ズレに悩まなくてもよいEdge 2はよく考えられているなという印象を受けます。

MEMO

例で挙げたラズベリーパイは電源をOFFにすると、現在時刻を保持する仕組み(RTC)が無いため、次回起動した際インターネット経由で時刻調整が行われています。 そのため、無線LANやインターネット接続ができない環境下では利用時刻がズレる問題がよく発生します。

Operating System

OSのインストールはKhadas独自のOSインストーラーOOWOWが用意されており、他PCなどを利用せずEdge 2 単体でOSインストールを行う事ができます。記事執筆時点では Android 11/12 もしくは Linux である Ubuntu 22.04 を選択することができます。

初回起動時もしくはボタン操作でOOWOWが起動する
OSの種類
インストールできるOSにはいくつか種類がありますが、今回はデスクトップ版を利用しています。サーバー用はWeb用のターミナルでのみ操作ができる
  1. デスクトップ版 : edge2-ubuntu-22.04-gnome-linux
  2. サーバー用 : edge2-ubuntu-22.04-server-linux

Ubuntu

Androidを利用することもできますが、今回はUbutuを試してみました。特に何も支障なく普通のLinuxマシンとして利用することができます。

Chrome

何故か最初からインストールされている firefox が起動しなかったため chromium をインストールして利用しました。インストールは以下のコマンドをターミナルで実行するだけなので簡単です。

sudo apt install -y chromium-browser

普通にスムーズなスクロールで、シングルボードコーンピューターでもこのぐらいいけるのか、、という印象でした。

VS Code

VS Code で Python を実行してみた

SuperTuxKart

SuperTuxKart もスムーズに・・

ラズベリーパイ4と比較

Raspberry Pi 4 Khadas Edge 2
CPU 4 core
Cortex-A72@1.5GHz
4 + 4 core
2.25GHz Quad Core ARM Cortex-A76 + 1.8GHz Quad Core Cortex-A55
メモリ 1/2/4/8GB 8GB/16GB
WiFi IEEE 802.11ac Wi-Fi 6, IEEE 802.11 ax/ac/a/b/g/n
有線LAN 有り 無し
RTC Battery 無し 有り
サイズ 85.6 mm × 56.5 mm x 21mm 82.0 x 57.5 x 5.7 mm

性能

記事公開時点で最高スペックとなるラズベリーパイ 4と比べると Edge 2 が新しいということもあり、性能はEdge 2が大きく上回っておりCPUは2倍以上、Glmark2 ではおよそ10倍程度の性能差があります。

比べるちょっとかわいそうなレベル。

電源

Raspberry Pi 4と同じUSB-Cコネクタでの給電ですが、Edge 2はPD(Power Delivery)となっています。

MEMO

PDによるUSB-C給電が必要となっていますが、5V 3A電源を接続してみたところ普通に動作しています。これは動作保証対象外の使い方になるとは思いますが、参考まで・・

サイズ

サイズはRaspberry Pi に対し Edge 2 が若干小さい程度ですが、薄さはわずか5.7mmとなっています。そのためUSBやHDMIソケットは基板に埋め込まれるような形で実装されています。

スペックと言い、タブレットの中身だけユーザーが使えるようにしたといった印象で、薄さに厳しい環境ではかなり有力な選択肢と言えます。

コネクタサイズ=厚みとなるように設計されている
コネクタは基板に埋め込まれる形で実装されている

この会社のプロダクト、全体的に薄さへのこだわりが異常(褒めてる)

Amazon | Khadas Edge2 RK3588SミニARM PC,シングルボードコンピュータ8コアー64-bit CPU, ARM Mali-G610 MP4 GPU, 6 TOPS AI NPU, Wi-Fi 6, Bluetooth 5.1, 8K HD ディスプレイ &デコーダー, 4K UI & 4 独立ディスプレイ (Maker Kit-Pro) | Khadas | パソコン・周辺機器 通販
Khadas Edge2 RK3588SミニARM PC,シングルボードコンピュータ8コアー64-bit CPU, ARM Mali-G610 MP4 GPU, 6 TOPS AI NPU, Wi-Fi 6, Bluetooth 5.1, 8K HD ディスプレイ &デコーダー, 4K UI & 4 独立ディスプレイ (Maker Kit-Pro)がパソコン・周辺機器ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

ちなみにKhadasはハイエンド寄りのEdge 2 のような製品も作っていますが、Raspberry Piにコスト的に対抗できるレベルの Vim1 Sなども売っています。

VIM1S | Khadas
Amlogic S905Y4 SBC with OOWOW and AV1 4K60 decoding

おまけ

glmark 2 default (Score : 4009)

glmark 2 1920 x 1080 (Score : 2263)

khadas@Khadas:~$ glmark2-es2-wayland --fullscreen
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '6'.
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-LODX
    GL_VERSION:    OpenGL ES 3.2 v1.g6p0-01eac0.ba52c908d926792b8f5fe28f383a2b03
=======================================================
[build] use-vbo=false: FPS: 3472 FrameTime: 0.288 ms
[build] use-vbo=true: FPS: 3730 FrameTime: 0.268 ms
[texture] texture-filter=nearest: FPS: 3806 FrameTime: 0.263 ms
[texture] texture-filter=linear: FPS: 3717 FrameTime: 0.269 ms
[texture] texture-filter=mipmap: FPS: 3682 FrameTime: 0.272 ms
[shading] shading=gouraud: FPS: 3303 FrameTime: 0.303 ms
[shading] shading=blinn-phong-inf: FPS: 3293 FrameTime: 0.304 ms
[shading] shading=phong: FPS: 3167 FrameTime: 0.316 ms
[shading] shading=cel: FPS: 2507 FrameTime: 0.399 ms
[bump] bump-render=high-poly: FPS: 1769 FrameTime: 0.565 ms
[bump] bump-render=normals: FPS: 2671 FrameTime: 0.374 ms
[bump] bump-render=height: FPS: 2451 FrameTime: 0.408 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 2260 FrameTime: 0.442 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 781 FrameTime: 1.280 ms
[pulsar] light=false:quads=5:texture=false: FPS: 3191 FrameTime: 0.313 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 715 FrameTime: 1.399 ms
[desktop] effect=shadow:windows=4: FPS: 1666 FrameTime: 0.600 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 510 FrameTime: 1.961 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 478 FrameTime: 2.092 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 695 FrameTime: 1.439 ms
[ideas] speed=duration: FPS: 781 FrameTime: 1.280 ms
[jellyfish] <default>: FPS: 1757 FrameTime: 0.569 ms
[terrain] <default>: FPS: 119 FrameTime: 8.403 ms
[shadow] <default>: FPS: 1752 FrameTime: 0.571 ms
[refract] <default>: FPS: 331 FrameTime: 3.021 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 2690 FrameTime: 0.372 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 2699 FrameTime: 0.371 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 2798 FrameTime: 0.357 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 2800 FrameTime: 0.357 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 2507 FrameTime: 0.399 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 2948 FrameTime: 0.339 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 2907 FrameTime: 0.344 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 2748 FrameTime: 0.364 ms
=======================================================
                                  glmark2 Score: 2263 
=======================================================

各種コマンドの実行結果を載せておきます。

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:  2507.14

General statistics:
    total time:                          10.0004s
    total number of events:              25078

Latency (ms):
         min:                                    0.40
         avg:                                    0.40
         max:                                    1.13
         95th percentile:                        0.40
         sum:                                 9995.82

Threads fairness:
    events (avg/stddev):           25078.0000/0.00
    execution time (avg/stddev):   9.9958/0.00

Sysbench  (4スレッド)

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:  3734.40

General statistics:
    total time:                          10.0010s
    total number of events:              37356

Latency (ms):
         min:                                    1.04
         avg:                                    1.07
         max:                                    2.85
         95th percentile:                        1.08
         sum:                                39993.05

Threads fairness:
    events (avg/stddev):           9339.0000/174.37
    execution time (avg/stddev):   9.9983/0.00

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-A55
    Model:              0
    Thread(s) per core: 1
    Core(s) per socket: 4
    Socket(s):          1
    Stepping:           r2p0
    CPU max MHz:        1800.0000
    CPU min MHz:        408.0000
    BogoMIPS:           48.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop
                         asimddp
  Model name:           Cortex-A76
    Model:              0
    Thread(s) per core: 1
    Core(s) per socket: 2
    Socket(s):          2
    Stepping:           r4p0
    CPU max MHz:        2256.0000
    CPU min MHz:        408.0000
    BogoMIPS:           48.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop
                         asimddp
Caches (sum of all):    
  L1d:                  384 KiB (8 instances)
  L1i:                  384 KiB (8 instances)
  L2:                   2.5 MiB (8 instances)
  L3:                   3 MiB (1 instance)
Vulnerabilities:        
  Itlb multihit:        Not affected
  L1tf:                 Not affected
  Mds:                  Not affected
  Meltdown:             Not affected
  Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:           Mitigation; __user pointer sanitization
  Spectre v2:           Not affected
  Srbds:                Not affected
  Tsx async abort:      Not affected

df -h

khadas@Khadas:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           768M   18M  750M   3% /run
/dev/mmcblk0p2   29G  3.4G   25G  13% /
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.8G   16K  3.8G   1% /tmp
/dev/mmcblk0p1  217M   47M  161M  23% /boot
tmpfs           768M  120K  768M   1% /run/user/1000
この記事は 2022/09/05 時点の Khadas Edge 2 (Basic) での動作結果です。この記事公開後のリビジョンやソフトウェアバージョンでは結果が異なる場合があります。

記事の内容は間違いが無いように気をつけていますが、私の認識違いや、ミスなどにより間違っている可能性もあります。もし発見された場合はお問い合わせフォームよりご連絡頂けると幸いです。