reComputer RK3576 には NPU が載っており、M.2 スロットが 1 つ空いていてアクセラレータモジュールを挿せます。ここでは同じ YOLO26n(COCO 80 クラス、640×640、INT8)を 3 つの演算資源——内蔵 NPU、Hailo-8 モジュール、RK182x モジュール——で動かし、単一ストリームと 8 ストリーム同時実行の FPS を比べました。3 つとも同じ 640×640・394 フレームの映像を使い、デコードと NMS は共通のホスト側コードで実行しています。
クイックスタート
用意するもの:reComputer RK3576(同シリーズでも可)。Hailo-8 と RK182x は同じ M.2 スロットを共有するため、同時に挿せるのは 1 つだけです。インストールスクリプトは同梱の依存関係から各 Python 環境をオフラインで作成しますが、カーネルドライバーのインストールや置換は行いません。Hailo-8 と RK182x には、対応するホストドライバーとハードウェアモジュールが必要です。
1. コードを取得
3 つのモデルはリポジトリに同梱されているので、変換は不要です:
git clone https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x
cd rk3576-hailo8-vs-rk182x2. 単一ストリーム推論
Hailo-8(モジュールを M.2 スロットに装着):
bash scripts/install-hailo8.sh
bash scripts/run-hailo8.sh内蔵 NPU:
bash scripts/install-rk3576.sh
bash scripts/run-rk3576.shRK182x(モジュールを M.2 スロットに装着):
bash scripts/install-rk182x.sh
bash scripts/run-rk182x.sh環境のインストールは 1 回だけです。別の動画を使う場合は run コマンドの後ろにパスを付けます(例:bash scripts/run-rk3576.sh /path/to/clip.mp4)。
3. 8 ストリーム同時実行
Hailo-8:
.venvs/hailo8/bin/python Hailo/Hailo8/run_streams_aggregate.py \
--hef model/Hailo/yolo26n_hailo8_official.hef \
--video video/test.mp4 --streams 8 --frames 200 --json out/hailo8_8stream.json内蔵 NPU:
.venvs/rk3576/bin/python common/run_video_streams_benchmark.py --backend rk3576 \
--model model/rk3576/yolo26n_rk3576_int8.rknn \
--video video/test.mp4 --instances 1,2,4,8 --frames 200 --json out/rk3576_multi.jsonRK182x:
.venvs/rk182x/bin/python common/run_video_streams_benchmark.py --backend rk1820 \
--model model/rk1820/yolo26n_rk1820_int8.rknn \
--weight model/rk1820/yolo26n_rk1820_int8.weight \
--video video/test.mp4 --instances 1,2,4,8 --frames 200 --json out/rk1820_multi.json4. 結果の見方
単一ストリームでは out/<backend>/ に検出枠を描いた annotated.mp4 と、フレームごとの検出結果・各段階の FPS を含む JSON が出力されます。8 ストリームでは JSON が出力され、その aggregate_fps が上の表の「合計スループット」の列です。実行中はターミナルにもリアルタイムの FPS が表示されます。
映像は手持ちのもので構いません。解像度は問いません(スクリプトが自動で 640×640 にレターボックスします)。このページの測定では 640×640・394 フレームの交通シーン映像を使用しました。
単一ストリーム:Hailo-8 が最速
| アクセラレータ | 形態 | 単一ストリーム FPS |
|---|---|---|
| Hailo-8 | M.2 モジュール | 49.2 |
| RK3576 内蔵 NPU | チップ内蔵 | 23.5 |
| RK182x | M.2 モジュール | 17.5 |
単一ストリームでは Hailo-8 は内蔵 NPU の 2.1 倍のフレームレートで、推論 1 回あたりの遅延も最小の 13.9 ms です。
8 ストリーム同時実行:RK182x が最強
| 同時ストリーム数 | Hailo-8 | RK3576 内蔵 NPU | RK182x |
|---|---|---|---|
| 1 | 50.3 | 21.2 | 16.2 |
| 2 | 51.3 | 43.2 | 34.4 |
| 4 | 51.6 | 52.3 | 57.0 |
| 8 | 51.6 | 69.7 | 88.6 |
- Hailo-8 は合計が増えない:1 ストリームでも 8 ストリームでも 50 FPS 前後で、8 ストリームでは 1 本あたり 6.4 FPS まで下がります。
- 内蔵 NPU は同時実行数とともに伸びる:21.2 から 69.7 FPS へ。8 ストリームでは 1 本あたり 8.7 FPS。
- RK182x は 88.6 FPS まで伸びる:8 ストリームで 1 本あたり 11.1 FPS。内蔵 NPU の 1.27 倍、Hailo-8 の 1.7 倍です。
3 つのアクセラレータの実映像
同じ映像・同じフレームでの実際の出力です:
左から Hailo-8、RK3576 内蔵 NPU、RK182x です。
選び方
| 用途 | 推奨 | 理由 |
|---|---|---|
| 単一ストリーム / 1 台のカメラ | Hailo-8 | 49.2 FPS、推論 1 回 13.9 ms |
| 単一ストリームでスロットを使いたくない | RK3576 内蔵 NPU | 23.5 FPS、追加費用なし |
| 複数カメラ / 4 ストリーム以上 | RK182x | 8 ストリームで 88.6 FPS(内蔵 NPU 69.7、Hailo-8 51.6) |
| 1 回あたりの遅延を最小に | Hailo-8 | 13.9 ms |
ひとことで:単一ストリームは Hailo-8、多数ストリームは RK182x、内蔵 NPU は「追加費用なしの選択肢」。 8 ストリームの領域では内蔵 NPU がすでに Hailo-8 と同等(69.7 対 51.6)で、より高い合計スループットを求めつつ SoC の演算資源を空けておきたいときに、RK182x のようなマルチコアモジュールを挿す価値が出ます。
ソースとデータ
- コード、モデル成果物(HEF / RKNN / RKNN3)、
results/summary.jsonと 2 枚の比較チャート: https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x - フレームごとの検出記録、マルチストリームの生データ、実行時の画面、レポート:v1.0.0 Release の添付ファイル
rk3576-hailo8-vs-rk182x-benchmark-artifacts-v1.0.0.ziphttps://github.com/inteintegrity/rk3576-hailo8-vs-rk182x/releases/tag/v1.0.0