Kakipを使いはじめてみた

Pocket

DRP-AI3を内蔵し80TOPSでAI推論処理ができるという触れ込みの,ルネサスRZ/V2Hを搭載したボードKakipが秋月電子で購入できるようになってたので,使ってみることにしました.動的再構成にはロマンがありますよね.

…とりあえずは,使えるようにするためのセットアップと素性の調査から.

目次

参考

準備

Kakip本体の購入はもちろん必要ですが,使うにあたっては,オンラインマニュアルを一度読んでおくとよいでしょう(読んでおくべきでした).

特に,

  • 12Vで25W以上の出力ACアダプタ
  • 16GB以上のMicroSDカード

は必須なので注意が必要です.

また,KakipにはHDMIのようなディスプレイ出力ポートがないので,スタンドアロンで利用するためには,USB接続可能なディスプレイアダプタが必要です.sshでログインして使うならディスプレイ関連の準備は不要ですが,デフォルトではIPアドレスは設定されてないので外からつける必要があります.つまり以下のどちらかを準備しておきましょう.

  • システムが対応しているUSB接続なディスプレイアダプタ+モニタ+キーボード
    • 対応してるアダプタはオンラインマニュアルを参照する
  • DHCPサーバーが動いているLAN環境(WindowsやMacOSのネットワーク共有機能とかでもいいかも)

セットアップ

AI-SBC Kakip マニュアル – 2.1 Boot Mediaの構築 に従って,SDカード用のイメージファイルをダウンロードします.ファイルサイズが約15GBとのことですが,ダウンロードしたファイルはkakip-es2_ubuntu_base_v5.imgで,

  • ファイルサイズ 15032385536
  • md5 c2e8a098e87a1e6ce867d608752bc428

でした.これをSDカードに書き込みます.たとえば,

$ sudo dd if=kakip-es2_ubuntu_base_v5.img of=/dev/sdX status=progress bs=1M; sync; sync; sync

などとすればよいでしょう(/dev/sdXは適宜書き換えること)

起動

対応しているUSB接続なディスレプレイアダプタとモニタ,キーボードがあればSDカードをさして電源を投入すればシステムが起動してきます.

ない場合,DHCPサーバーが動いているLAN環境に接続しておくと起動後にネットワーク経由でログインできます.デフォルトでsshdが起動していて,デフォルトのユーザ名とパスワード(どちらも Ubuntu)でログイン可能です.

起動に時間がかかるので注意

…注意も何も自分がはまっただけなのですが,起動には2分から1分半くらいかかります.

ディスプレイをつないでいると,

というエラーが表示されました.なにか失敗したかな?と思ったのですが,ここから1分ほど待つとGUIなログイン画面が表示されます.特に,初回はSDカードの容量に合わせてファイルシステムの拡張処理が走るので余計に時間がかかります.

ネットワークでログインできるようになるのにも,同じくらい時間がかかります.のんびり待ちましょう.

システムアップデート

グローバルネットワークにアクセスできる環境であれば,aptでシステムのアップデートができます.ついでに,apt install build-essentialとかして,開発環境もセットアップしておきます.

システム情報

セットアップ直後のシステム情報をあれこれ取得してみました.

ubuntu@localhost:~$ uname -a
Linux localhost 5.10.145-cip17-yocto-standard #1 SMP PREEMPT Sat Feb 27 02:21:18 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@localhost:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu<br>DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS
ubuntu@localhost:~$ cat /proc/cpuinfo 
processor	: 0
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0xd05
CPU revision	: 0

...(略)...

processor	: 3
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x2
CPU part	: 0xd05
CPU revision	: 0

aptでインストールしたgccのバージョン.

ubuntu@localhost:~$ gcc --version
gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

性能評価

主役(?)はDRP-AI3と思いながらも,とりあえずARMコアの性能を測っておくことにします.

UnixBenchの結果

UnixBenchは,https://github.com/kdlucas/byte-unixbencha07fcc03264915c624f0e4818993c5b4df3fa703 を利用.

------------------------------------------------------------------------
Benchmark Run: 金 10月 11 2024 13:32:08 - 14:00:54
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables 27527892.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone 7033.9 MWIPS (10.0 s, 7 samples)
Execl Throughput 3060.5 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 458183.1 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 129753.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1196436.1 KBps (30.0 s, 2 samples)
Pipe Throughput 1135746.6 lps (10.0 s, 7 samples)
Pipe-based Context Switching 121627.4 lps (10.0 s, 7 samples)
Process Creation 6778.3 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5375.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 714.0 lpm (60.2 s, 2 samples)
System Call Overhead 1956972.1 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 27527892.9 2358.9
Double-Precision Whetstone 55.0 7033.9 1278.9
Execl Throughput 43.0 3060.5 711.8
File Copy 1024 bufsize 2000 maxblocks 3960.0 458183.1 1157.0
File Copy 256 bufsize 500 maxblocks 1655.0 129753.0 784.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 1196436.1 2062.8
Pipe Throughput 12440.0 1135746.6 913.0
Pipe-based Context Switching 4000.0 121627.4 304.1
Process Creation 126.0 6778.3 538.0
Shell Scripts (1 concurrent) 42.4 5375.0 1267.7
Shell Scripts (8 concurrent) 6.0 714.0 1190.1
System Call Overhead 15000.0 1956972.1 1304.6
========
System Benchmarks Index Score 1014.0

Streamベンチマーク

# OMP_NUM_THREADS=1
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 1143.5 1.399537 1.399258 1.399924
Scale: 894.9 1.788199 1.787818 1.788479
Add: 1157.7 2.073283 2.073151 2.073664
Triad: 954.8 2.513836 2.513489 2.514230
-------------------------------------------------------------
# OMP_NUM_THREADS=2
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 2289.4 0.699978 0.698879 0.700677
Scale: 1792.2 0.894297 0.892762 0.903387
Add: 2315.9 1.037484 1.036328 1.038450
Triad: 1914.7 1.253627 1.253460 1.254008
-------------------------------------------------------------
# OMP_NUM_THREADS=4
-------------------------------------------------------------
Function Best Rate MB/s Avg time Min time Max time
Copy: 4446.9 0.362938 0.359800 0.368341
Scale: 3577.9 0.447772 0.447190 0.448991
Add: 4566.2 0.527148 0.525602 0.529542
Triad: 3822.5 0.628378 0.627863 0.628879
-------------------------------------------------------------

Geekbench

https://browser.geekbench.com/v6/cpu/8253217

ちなみにRaspberry Pi 5のGeekbenchの結果は https://browser.geekbench.com/v6/cpu/8254038 でした.

発熱の様子

Geekbenchをはしらせているときの様子を,Fluke VT08で撮ってみました.パッケージが金属で,温度が測れてないようなので,周辺温度から想像するしかないかな.

ちなみに,Raspberry Pi 5でも同様にGeekbench中を撮影してみた様子は次の通り.