概要
IoTエッジ向け CPU のインテル®第6世代Atom® x6000プロセッサとHailo社のAIアクセラレーターHailo-8を組み合わせて、小型のEdge-AIシステムを構築してみました。
その手順をまとめてみましたので、小型/高性能のAI実行環境が欲しい方はぜひお試しください!
<今回使用した弊社取り扱い製品>
-
I-Pi SMARC Elkhart Lake (I-Pi SMARC Plusキャリア、ADLINK社 SMARC LEC-ELモジュール, 4GB LPDDR4, 64GB eMMC、温度拡張品(-40℃~85℃))
インテル®第6世代Atom® x6000プロセッサベースのI-Pi SMARC開発キットです
-
Hailo社のAIアクセラレーター搭載のM.2モジュールです
1.セットアップ手順
STEP 1-1:事前準備(ハードウェア)
I-Pi SMARC Elkhart Lake の下記リンクを参考にして、キャリアボードの背面にHailo-8 M.2 module(B+M key)を挿して固定します。
完成形は以下の写真のようになります。
キャリアボードも110mm x 110mmなので小型であることを実感いただけるかと思います。
STEP 1-2:事前準備(各種設定/接続)
・ブートデバイスを設定
以下左の写真のようにDIP SWを"0000"に設定ください (1000 も可 / 0110 は不可)
・HDMIケーブルでモニターと接続
・LANケーブルの挿入
・USBマウス/キーボードの接続
STEP 1-3:Ubuntu セットアップ
SMARC LEC-ELモジュール内蔵の eMMC に Ubuntu 22.04 LTS をインストールします。
Ubuntu 22.04 LTS のUSBメモリのインストーラを用意し、キャリアボードの USB ポートに差し込みます。
その後、キャリアボードの電源アダプターを接続して起動し、キーボードの "Esc"キーを連打して、ADLINK 社の BIOS 画面に入ります。
BIOS 画面の Save & Exit タブの "Boot Override" で USBメモリのインストーラを選択し、Enter キーを押下して Ubuntu のインストールを開始します。
(下記画面では UEFI: KIOXIA TransMemory )
うまくいけば以下のように Ubuntu 22.04 の画面が HDMIモニターに表示されます。
念のため、sudo apt updateとupgradeは実行しておきます。
sudo apt-get update
sudo apt-get upgrade
参考:
Intel® 第 6 世代 Atom® x6000 プロセッサ (Elkhart Lake) を搭載した ADLINK社 SMARC LEC-EL での Ubuntu 22.04 LTS の環境の構築
2.Hailo関連のインストール
Hailo の環境をインストールします。
今回インストールするツールを以下に簡単に説明します。
- Tappas---様々なネットワークモデルを確認できるデモアプリケーション
- HailoRT PCIe Dricer --- Hailo モジュールの PCIe ドライバー
注記:
それぞれ以下のHailo Websiteよりダウンロードいただくことになりますが、ユーザー登録するだけではダウンロードできるようになりませんのでご注意ください。
ご興味ございましたら弊社までお問い合わせをお願いします。
今回はHailoRTはVer4.14.0、TappasはVer3.25.0を使っています。
STEP 2-1 : Hailo RT PCIe ドライバー と Tappas のダウンロード
下記サイトからダウンロードします。
・HairoRT PCIe Driver のダウンロード
Select your system components で下記画面のものを選択後に、パッケージの ”HailoRT - PCIe driver Ubuntu package (deb) ” をダウンロードします。
- Product:HailoRT
- Architecture:x86
- OS:Linux
- Python:3.10
・Tappas のダウンロード
Setect your system components で下記画面のものを選択後に、パッケージの "TAPPAS - Ubuntu 22.04 Docker for x86_64" をダウンロードします。
- Product:TAPPAS
- Architecture:x86
- OS:Linux
- Python:3.10
Home に Hailo ディレクトリを作成し、そこにダウンロードファイルを保存します。
STEP 2-2 : Hailo RT PCIe ドライバー インストール
下記ガイドに従ってインストールします。
必要なパッケージとして以下が指定されていますので、最初に apt でインストールしておきます。
- build-essential package (needed to compile the PCIe driver)
- (Optional) bison, flex, libelf-dev and dkms packages (needed to register the PCIe driver using KMS)
- (Optional) curl (needed to download the firmware when installing without the PCIe driver)
- (Optional) CMake (needed to compile the HailoRT examples)
- (Optional) pip and virtualenv (needed for pyhailort)
- (Optional) systemd (needed for Multi-Process service)
sudo apt install build-essential bison flex libelf-dev dkms curl pip virtualenv
次に、PCIe Driver のみをインストールします。
ダウンロード済みの hailort-pcie-driver_4.14.0_all.deb を指定してインストールします。
途中、DKMS を使用するか聞いてきますので ”Y” をタイプして先に進みます。
cd Hailo
sudo dpkg --install hailort-pcie-driver_4.14.0_all.deb
インストールの終了後に Ubuntu を再起動します。
reboot
STEP 2-3 : Tappas インストール
今回はpre-built Docker imageを使用します。
Hailo ディレクトリに移動し、下記ガイドに従ってインストールします。
cd Hailo
# Install curl
sudo apt-get install -y curl
# Get and install docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# Add your user (who has root privileges) to the Docker group
sudo usermod -aG docker $USER
# Reboot/log out in order to apply the changes to the group
sudo reboot
ダウンロード済みの tappas の圧縮ファイルを右クリックし、"Extract Here" で解凍します。
2つのファイルが解凍されます。
hailo-docker-tappas-v3.25.0.tar が pre-built docker image です。
解凍されたファイルのあるディレクトに移動後、docker image を指定してスクリプトを実行します。
cd Hailo/tappas_3.25.0_ubuntu22_docker_x86_64/
./run_tappas_docker.sh --tappas-image hailo-docker-tappas-v3.25.0.tar
ダウンロードに時間がかかりますが、無事にコンテナが立ち上がりますと下記画面になります。
Tappasを実際に動かしてみると下記右図のような感じで動作確認できます。
cd apps/h8/gstreamer/general/detection/
./detection.sh --show-fps
まとめ
Intel Atom® プロセッサーで小型でありながらもパフォーマンスに妥協しないEdge-AIシステムを狙って構築しましたが、思いのほか簡単に構築できました。
本記事を閲覧いただきまして、ありがとうございました。