Khadas Edge 2
[PR]2022/09/20 発売のKhadas Edge 2の紹介です。
ざっくりまとめ
※2.25GHz Quad Core ARM Cortex-A76 + 1.8GHz Quad Core Cortex-A55
- Basic : LPDDR4X 8GB(2112MHz)+32GB eMMC
- Pro : LPDDR4X 16GB(2112MHz)+64GB eMMC
スペック
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 |
やっぱり早い
Basic/Pro共に同じSoCを採用しているため、処理速度の差はありません。しかし、大きなメモリを必要とする場合(機械学習などで大きなモデルを利用する場合など)はPro版を選ぶ必要がありますが、シングルボードコンピューターという事もありほとんどのケースでBasicで十分と言えるように思います。
安定した無線接続
Khadasのプロダクトは外部アンテナが採用されていることが多いですが、Edge 2ももれなく外部コネクタと写真のアンテナが付属しています。Edge 2 は有線LANポートは用意されていないため、無線での安定した接続はありがたいです。
私の家は集合住宅かつ大通りに面しているいため、比較的WiFi環境としては悪い方になりSBCはかなりネットワーク接続を気にする必要がありましたが Edge 2 は安定していました。
RTCバッテリー
個人的にかなり嬉しいのはRTCバッテリーです。SBCの利用は時刻ズレで悩まされる事も多く、特にログを取得するようなケースでは外部のRTCモジュールを利用する場合もあります。
時刻ズレに悩まなくてもよいEdge 2はよく考えられているなという印象を受けます。
例で挙げたラズベリーパイは電源をOFFにすると、現在時刻を保持する仕組み(RTC)が無いため、次回起動した際インターネット経由で時刻調整が行われています。 そのため、無線LANやインターネット接続ができない環境下では利用時刻がズレる問題がよく発生します。
Operating System
OSのインストールはKhadas独自のOSインストーラーOOWOWが用意されており、他PCなどを利用せずEdge 2 単体でOSインストールを行う事ができます。記事執筆時点では Android 11/12 もしくは Linux である Ubuntu 22.04 を選択することができます。
- デスクトップ版 : edge2-ubuntu-22.04-gnome-linux
- サーバー用 : edge2-ubuntu-22.04-server-linux
Ubuntu
Androidを利用することもできますが、今回はUbutuを試してみました。特に何も支障なく普通のLinuxマシンとして利用することができます。
Chrome
何故か最初からインストールされている firefox が起動しなかったため chromium をインストールして利用しました。インストールは以下のコマンドをターミナルで実行するだけなので簡単です。
sudo apt install -y chromium-browser
普通にスムーズなスクロールで、シングルボードコーンピューターでもこのぐらいいけるのか、、という印象でした。
VS Code
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)となっています。
PDによるUSB-C給電が必要となっていますが、5V 3A電源を接続してみたところ普通に動作しています。これは動作保証対象外の使い方になるとは思いますが、参考まで・・
サイズ
サイズはRaspberry Pi に対し Edge 2 が若干小さい程度ですが、薄さはわずか5.7mmとなっています。そのためUSBやHDMIソケットは基板に埋め込まれるような形で実装されています。
スペックと言い、タブレットの中身だけユーザーが使えるようにしたといった印象で、薄さに厳しい環境ではかなり有力な選択肢と言えます。
この会社のプロダクト、全体的に薄さへのこだわりが異常(褒めてる)
ちなみにKhadasはハイエンド寄りのEdge 2 のような製品も作っていますが、Raspberry Piにコスト的に対抗できるレベルの Vim1 Sなども売っています。
おまけ
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) での動作結果です。この記事公開後のリビジョンやソフトウェアバージョンでは結果が異なる場合があります。