えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

闇のAIチップであそぼう(Hailo-8・RaspberryPi5)

最近、ラズパイがいきなりハイスペックなAIパワーを手に入れたことをみなさんはご存知でしょうか?

hailo.ai

RaspberryPiを開発・販売するRaspberryPi財団が2024年6月4日Hailo-8Lを搭載したHATを発売しました。

日本では輸入待ちなので、購入可能になるまでもう少し待つことになるでしょう。

今回は、突然の発表で注目を集めているHailo-8とRaspberryPiで遊ぼうと思います🤗


Hailo-8とは?

Hailo-8は、イスラエル発のAIアクセラレータ開発企業「Hailo」が開発したAIアクセラレータです。

最大26ToPのAI演算性能を持つチップをPCIeスロットに接続するだけで使用でき、小型・省電力です。

主にオフライン環境で画像処理などAIタスクの実行が求められるデバイスに使われます。


Hailoは2017年創業のスタートアップ企業で、今年の4月に1.2億ドルを調達しています。

世界のユニコーンの10%を輩出していると言われているイスラエルのハイテク企業は空前のAIブームの波に乗ってどこまで行くのでしょうか…?


Hailoの開発キットは開発者向けのサイトから入手することはできるものの、ほとんど個人向けには開かれていないらしく、チップの入手ルートも限られていたことからあまり情報が出回っていませんでした。

つまり闇のAIチップということですね😎(別に隠れてない)


個人向けに開かれていないという話ですが、RaspberryPiユーザ向けの開発ガイドは今後出るみたいな話もあるそうです。

https://www.raspberrypi.com/news/raspberry-pi-ai-kit-available-now-at-70/

There are plans to open their community for read only access without registration. Stand by. (by Ashley Whittaker)


性能は?

Hailo-8Lは13TOPsの性能を持ちます。

最近のNPUブームによって見劣りしてしまうかもしれませんが、個人でしばけるNPUの中ではかなり魅力的な製品です。


以下のグラフは、Jetson Xavier NXと比較した速度比較です。

Xavier NXは21 TOPS(量子化後)の推論性能とのことなので、それっぽいグラフな気がします。

参考:AI Processor Hailo-8 For Edge Devices | Up to 26 Tops Hardware

Hailo-8は特殊なチップ構造と、それを支えるAI向けコンパイラとHailoチップ内での動的割り当てが高速超省電力を実現しているそうです。

参考:AI Processor Hailo-8 For Edge Devices | Up to 26 Tops Hardware

言いたいことはかろうじて分かります(分かりません)が、これを短期間で実現しているのはヤバすぎです…


NPUとして手軽にしばけるものといえば他にも以下のデバイスがあります。

推論性能はNPUのみの合計値

  • Coral AI Accelerator : 4 TOPs
  • RK3588:6 TOPs
  • Apple M1:11 TOPs
  • Core Ultra (2023 Dec):11 TOPs

比較できるものと比べても強いし価格も$70(2024年6月だと1.1万!)と高すぎることもないので、エッジAIとしては破格といえます。

Jets○n?あれは謎の半導体企業の株価超上昇とともに買う気になれない価格になってしまいました。(そしてOSサポート…


AI体験をはじめる🔰

RaspberryPi向けになったことで、産業界から一気に教育向けにシフトしていることになっていますが、サンプルソフトウェアについては簡単に試せるようになっています。

github.com

素晴らしい。


ハードウェアの取り付け

AI-HATは、最初からHailo-8Lチップが取り付けられているそうなので、ネジしめをしてPCIeコネクタをフレキシブルケーブルで接続します。


私の場合は…無理やり取り付けたので、固定とは言いませんね😭

(本当はラズパイの下につけるモジュールですが、ヒートシンクが入らなかった模様)


あとは電源は5V5Aの出力が出せるPD充電器を用意してください。

自己責任ですが、それ以下でも一応動きます。

ちなみに私は(PDなのに)15Wしか出せないやつを使ってます🔌🙃

インストール

新しくRaspberryPi OS 64bit bookwormをセットアップしました。

まずは raspi-config でPCIe Gen3を有効化します。


次に、電源に関して設定します。

sudo vim /boot/firmware/config.txt
# 一番下に次を追記
usb_max_current_enable=1

(効果あるのか分かっていないので、もしかしたら違うかも?)


次に、Hailo周りのセットアップをします。

ほとんどチュートリアル通りです。

github.com

sudo apt update
sudo apt -y full-upgrade
sudo apt install -y hailo-all

インストールしたら、再起動します。


Hailoが認識されているかどうかは次のコマンドで確認できます。

hailortcli fw-control identify

hailotools・hailoがインストールされているか確認します。

↑これに似た画面が出ればOKです。

次に進みます。


サンプルプログラムの実行

ついに推論サンプルを動かせるステップに来ました!

試した時はpicameraでは動かなかったので、Webカメラを入力しています。

github.com

リポジトリのクローン

git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
cd hailo-rpi5-examples

以降のコマンドは全て次の環境が読み込まれていることが前提となります。(source ***.sh は環境の読み込みを行うコマンドです)

source setup_env.sh

環境の構築をします。

pip install -r requirements.txt
./download_resources.sh


リポジトリに入っている動画やカメラからの入力を推論することができます。(ここでは動画のパスを指定しています)

1. 物体検出(YOLOv6n)

python basic_pipelines/detection.py --input resources/detection0.mp4

ラズパイとは思えないくらいCPU使用率低すぎてびっくりですね!👀

2. セグメンテーション(YOLOv5n_seg)

python basic_pipelines/instance_segmentation.py --input resources/detection0.mp4

3. 骨格検出(YOLOv8s_pose)

python basic_pipelines/pose_estimation.py --input resources/detection0.mp4

精度劣化していなくてすごい。


CLIPも対応する!みたいなことも書かれているので、これからもっとサンプルが追加されるかもしれないですね。楽しみです。


低遅延

ほとんど遅延を感じられません。

--show-fps で速度を見ると、ずっと30fpsで張り付いていますが、おそらく推論部分は10ms以下で推論していそうです。

ただし、これはHailo-8の結果であり、Hailo-8Lだとまた変わってくるかもしれません。


省電力

25W電源が必要みたいなことを聞いたので、まさかぁと思って測定しました。

インスタンスセグメンテーションタスク実行中で7.5Wでした。

15W電源ですら余裕ありそうです。

USB側に電力消費の激しいデバイスをつける場合は注意してください。


まとめ

AIチップがどんどん手軽に入手できるようになってきています!

今はNPUが熱い🔥🔥🔥


NPUはGPUと異なり、AI推論のパイプラインに最適化されているので、省電力高性能が実現します。

しかしながら(専用であるがゆえに)カスタムモデルのインテグとなると、難易度が桁違いに高くなってしまいます。

Hailoは動くモデルは比較的多いですが、これも世の中にあるモデルを次々とサポートしていった成果であり、相当なリソースが投下されていることは想像に難くありません…


これからもこれについては積極的にキャッチアップしていく予定です🫡


過去のNPU製品しばき(しばいていないものもある🙃)

ar-ray.hatenablog.com

ar-ray.hatenablog.com

ar-ray.hatenablog.com