Le reComputer RK3576 embarque une NPU et laisse libre un emplacement M.2 pour un module accélérateur. Nous avons exécuté le même YOLO26n (80 classes COCO, 640×640, INT8) sur les trois ressources de calcul — NPU intégrée, module Hailo-8 et module RK182x — puis comparé les FPS en flux unique et en 8 flux simultanés. Les trois traitent la même vidéo de 640×640 et 394 images, avec le décodage et le NMS assurés par un même code côté hôte.
Déploiement rapide
Ce qu'il faut : un reComputer RK3576 (un autre modèle de la série convient aussi). Hailo-8 et RK182x partagent le même emplacement M.2, donc un seul module à la fois. Les scripts d'installation créent des environnements Python hors ligne séparés à partir des dépendances fournies, sans installer ni remplacer les pilotes du noyau. Hailo-8 et RK182x nécessitent toujours le pilote hôte et le module matériel correspondants.
1. Récupérer le code
Les trois modèles sont fournis avec le dépôt, aucune conversion n'est nécessaire :
git clone https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x
cd rk3576-hailo8-vs-rk182x2. Inférence en flux unique
Hailo-8 (module dans l'emplacement M.2) :
bash scripts/install-hailo8.sh
bash scripts/run-hailo8.shNPU intégrée :
bash scripts/install-rk3576.sh
bash scripts/run-rk3576.shRK182x (module dans l'emplacement M.2) :
bash scripts/install-rk182x.sh
bash scripts/run-rk182x.shL'environnement ne s'installe qu'une fois. Pour une autre vidéo, ajoutez son chemin à la commande run, par exemple bash scripts/run-rk3576.sh /chemin/clip.mp4.
3. 8 flux simultanés
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.jsonNPU intégrée :
.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. Où trouver les résultats
En flux unique, out/<backend>/ reçoit un annotated.mp4 avec les boîtes dessinées et un JSON contenant les détections image par image et les FPS de chaque étape ; en 8 flux, un JSON est produit et son champ aggregate_fps correspond à la colonne « débit total » des tableaux. Le terminal affiche aussi les FPS en temps réel.
N'importe quelle vidéo convient, quelle que soit la résolution : les scripts font eux-mêmes le letterbox vers 640×640. Les mesures de cette page utilisent une vidéo de circulation en 640×640 et 394 images.
Flux unique : Hailo-8 en tête
| Accélérateur | Forme | FPS en flux unique |
|---|---|---|
| Hailo-8 | Module M.2 | 49.2 |
| NPU intégrée du RK3576 | Dans le SoC | 23.5 |
| RK182x | Module M.2 | 17.5 |
En flux unique, Hailo-8 atteint 2,1 fois le débit de la NPU intégrée et affiche aussi la latence la plus faible : 13,9 ms par inférence.
8 flux simultanés : RK182x au meilleur niveau
| Flux simultanés | Hailo-8 | NPU intégrée RK3576 | 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 ne gagne rien avec le nombre de flux : 1 ou 8 flux, le total reste autour de 50 FPS, donc chaque flux ne reçoit que 6,4 FPS à 8 flux.
- La NPU intégrée progresse avec la concurrence : de 21,2 à 69,7 FPS (8,7 FPS par flux à 8 flux).
- RK182x monte à 88,6 FPS : 11,1 FPS par flux à 8 flux, soit 1,27 fois la NPU intégrée et 1,7 fois le Hailo-8.
Les trois, à l'écran
La même image de la même vidéo, telle que produite par chaque accélérateur :
De gauche à droite : Hailo-8, NPU intégrée du RK3576 et RK182x.
Lequel choisir
| Cas d'usage | Choix | Pourquoi |
|---|---|---|
| Un flux / une caméra | Hailo-8 | 49,2 FPS et 13,9 ms par inférence |
| Un flux sans occuper l'emplacement | NPU intégrée du RK3576 | 23,5 FPS, sans surcoût |
| Plusieurs caméras / 4 flux et plus | RK182x | 88,6 FPS à 8 flux (contre 69,7 pour la NPU et 51,6 pour le Hailo-8) |
| Latence par inférence minimale | Hailo-8 | 13,9 ms |
En une phrase : Hailo-8 pour un flux, RK182x pour beaucoup, et la NPU intégrée comme option sans surcoût. À 8 flux, la NPU du SoC égale déjà un module Hailo-8 (69,7 contre 51,6) ; un module multicœur comme le RK182x se justifie quand il faut davantage de débit total tout en gardant la NPU du SoC libre.
Code et données
- Code, artefacts de modèle (HEF / RKNN / RKNN3),
results/summary.jsonet les deux graphiques comparatifs : https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x - Détections image par image, données multi-flux, captures d'exécution et rapport : pièce jointe de la release v1.0.0
rk3576-hailo8-vs-rk182x-benchmark-artifacts-v1.0.0.ziphttps://github.com/inteintegrity/rk3576-hailo8-vs-rk182x/releases/tag/v1.0.0