reComputer RK3576 で Hailo-8 M.2 アクセラレータを使用する

このチュートリアルでは、reComputer RK3576 に Hailo-8 PCIe ドライバと HailoRT をインストールし、アクセラレータの動作を確認して、Hailo Model Zoo の HEF を実行します。検証に使用したのは Seeed Studio Hailo-8 M.2 Key M 2280 モジュールであり、Hailo-8L ではありません。

システム構成

項目検証した構成
ホストreComputer RK3576 Dev Kit
OSArmbian-unofficial 26.05.0-trunk、Debian 12 (bookworm)、ARM64
カーネル6.1.115-vendor-seeed-rk3576
アクセラレータSeeed Studio Hailo-8 M.2 Key M 2280 モジュール
PCIe デバイス1e60:2864
ネゴシエートされたリンクPCIe Gen2 x1、5.0 GT/s
ランタイムと PCIe ドライバHailoRT 4.23.0hailort-pcie-driver 4.23.0
テスト用 HEFHailo Model Zoo v2.17.0centerpose_regnetx_800mf.hef、HAILO8、入力 512 × 512 × 3

モジュールの取り付けと PCIe の確認

M.2 モジュールの取り付けや差し直しを行う前に、RK3576 をシャットダウンして電源を抜いてください。Hailo-8 をボードの M.2 Key M スロットに差し込み、固定してから電源を接続します。

起動後、PCIe デバイスとリンクの状態を確認します。

bash
lspci -nnk -s 01:00.0
cat /sys/bus/pci/devices/0000:01:00.0/current_link_speed
cat /sys/bus/pci/devices/0000:01:00.0/current_link_width

検証したカードは 01:00.0Hailo-8 AI Processor [1e60:2864] として列挙され、リンクは 5.0 GT/s PCIe x1 でした。別のシステムではバスアドレスが異なる場合があります。sysfs のリンクファイルを確認するときは、lspci に表示されたアドレスを使用してください。

Hailo-8 PCIe デバイスとネゴシエートされた Gen2 x1 リンク

HailoRT 4.23.0 のダウンロード

Hailo-8 は HailoRT 4.x を使用します。Hailo が公開する Hailo-8 の配布ディレクトリから、バージョンの一致する ARM64 ランタイムと PCIe ドライバをダウンロードします。

bash
mkdir -p ~/hailo8-4.23.0
cd ~/hailo8-4.23.0

curl -fL -O https://dev-public.hailo.ai/2025_10/Hailo8/hailort_4.23.0_arm64.deb
curl -fL -O https://dev-public.hailo.ai/2025_10/Hailo8/hailort-pcie-driver_4.23.0_all.deb

dpkg-deb -f hailort_4.23.0_arm64.deb Package Version Architecture
dpkg-deb -f hailort-pcie-driver_4.23.0_all.deb Package Version Architecture

両方のパッケージが 4.23.0 を示し、ランタイムパッケージが arm64 を示すことを確認します。これらの直接リンクは Hailo のコミュニティ向けインストール案内に掲載されています。

ドライバは実行中のカーネルに合わせてビルドされます。インストール前に、対応するヘッダーと DKMS を確認します。

bash
ls -ld /lib/modules/$(uname -r)/build
command -v dkms

検証した Armbian イメージでは、ヘッダーのパスは linux-headers-6.1.115-vendor-seeed-rk3576 を指します。どちらかの確認に失敗した場合は、実行中のカーネルと正確に一致するヘッダーと DKMS を先にインストールしてください。

ランタイムと PCIe ドライバのインストール

パッケージを変更する前に、既存の Hailo パッケージを確認します。

bash
dpkg-query -W -f='${binary:Package}\t${Version}\n' | grep -i hailo

以前 ASUS UGen300 USB アクセラレータを使用していた場合は、Hailo-8 PCIe スタックを導入する前に、その HailoRT 5.x ランタイムと USB ドライバを削除します。

bash
sudo apt-get purge hailort-usb-driver hailort

ダウンロードした 4.23.0 パッケージをインストールします。

bash
cd ~/hailo8-4.23.0
sudo apt-get install ./hailort-pcie-driver_4.23.0_all.deb \
  ./hailort_4.23.0_arm64.deb

確認画面では DKMS を有効にし、実行中のカーネル向けにドライバをビルドします。検証時は hailort.service も有効にしました。PCIe ドライバパッケージには対応する hailo8_fw.4.23.0.bin 起動イメージが含まれ、ドライバの初期化時にカードへ読み込まれます。この手順では hailortcli fw-update は実行しません。

再起動して、ドライバのバインドとデバイスノードを確認します。

bash
sudo reboot
bash
lspci -nnk -s 01:00.0
modinfo hailo_pci | grep -E '^(version|vermagic):'
ls -l /dev/hailo0
hailortcli --version

検証したボードでは、lspciKernel driver in use: hailo と表示され、カーネルモジュールと HailoRT CLI の両方が 4.23.0 を示しました。

Hailo-8 ドライバのバインド、デバイスノード、一致する 4.23.0 のバージョン

アクセラレータの識別

HailoRT で PCIe バスをスキャンし、モジュール情報を読み取ります。

bash
hailortcli scan
hailortcli fw-control identify

検証したデバイスは 0000:01:00.0 で検出されました。識別結果には Device Architecture: HAILO8Firmware Version: 4.23.0Product Name: Seeed Studio Hailo-8 M.2 Key M 2280 Module が表示されました。

HailoRT によるスキャンと Hailo-8 の識別結果

Hailo Model Zoo の HEF を実行する

Hailo Model Zoo v2.17.0 から、HAILO8 向けにコンパイル済みの CenterPose モデルをダウンロードします。

bash
cd ~/hailo8-4.23.0
curl -fL -o centerpose_regnetx_800mf.hef \
  https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.17.0/hailo8/centerpose_regnetx_800mf.hef

hailortcli parse-hef centerpose_regnetx_800mf.hef

parse-hefArchitecture HEF was compiled for: HAILO8 と入力 UINT8, NHWC(512x512x3) を表示するはずです。検証した Model Zoo v2.17.0 の HEF の SHA-256 は 625cbd18736c87ba708f46011cc683261690e8d68f054adc0e3df1e1a925a369 です。

HailoRT が生成する入力データで、ネットワークを 5 秒間実行します。

bash
hailortcli run2 -t 5 set-net centerpose_regnetx_800mf.hef

コマンドが 100% まで進み、centerpose_regnetx_800mf に対してゼロより大きい FPS が表示されれば、アクセラレータで推論が実行されています。このコマンドは CenterPose の出力を可視化されたキーポイントには変換しません。HailoRT 4.23.0 では、このテストで run2 が動作していても、単一モデルには run を推奨する警告が表示される場合があります。

HAILO8 HEF 情報と完了した推論

トラブルシューティング

  • lspci1e60:2864 が表示されない場合:RK3576 の電源を完全に切り、M.2 カードを差し直して、Key M PCIe スロットに正しく装着されているか確認します。
  • PCIe デバイスはあるのに /dev/hailo0 がない場合:dkms statusmodinfo hailo_pcisudo dmesg -T | grep -i hailo でドライバのビルドやファームウェアの読み込み失敗を確認します。
  • HailoRT がドライバのバージョン不一致を報告する場合:hailortcli --versionmodinfo hailo_pci がともに 4.23.0 を示すか確認します。
  • HEF が拒否される場合:hailortcli parse-hefHAILO8 を示すことを確認し、Hailo-8L または Hailo-10H 用ではなく Model Zoo v2.x の Hailo-8 モデルを使用します。

参考資料