El reComputer RK3576 lleva una NPU propia y deja libre una ranura M.2 para un módulo acelerador. Aquí ejecutamos el mismo YOLO26n (80 clases COCO, 640×640, INT8) sobre los tres recursos de cómputo —NPU integrada, módulo Hailo-8 y módulo RK182x— y comparamos los FPS con un solo flujo y con 8 flujos concurrentes. Los tres procesan el mismo vídeo de 640×640 y 394 fotogramas, con el decodificado y el NMS en un mismo código de host.
Despliegue rápido
Qué necesitas: un reComputer RK3576 (también vale otro de la serie). Hailo-8 y RK182x comparten la misma ranura M.2, así que solo se puede montar uno a la vez. Los scripts de instalación crean entornos Python independientes y sin conexión a partir de las dependencias incluidas, pero no instalan ni sustituyen controladores del kernel. Hailo-8 y RK182x siguen necesitando el controlador del host y el módulo de hardware correspondientes.
1. Obtener el código
Los tres modelos vienen incluidos en el repositorio, no hay que convertir nada:
git clone https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x
cd rk3576-hailo8-vs-rk182x2. Inferencia con un solo flujo
Hailo-8 (módulo en la ranura M.2):
bash scripts/install-hailo8.sh
bash scripts/run-hailo8.shNPU integrada:
bash scripts/install-rk3576.sh
bash scripts/run-rk3576.shRK182x (módulo en la ranura M.2):
bash scripts/install-rk182x.sh
bash scripts/run-rk182x.shEl entorno se instala una sola vez. Para usar otro vídeo, añada la ruta al comando run, por ejemplo bash scripts/run-rk3576.sh /ruta/al/video.mp4.
3. 8 flujos concurrentes
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 integrada:
.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. Dónde ver los resultados
Con un flujo se genera en out/<backend>/ un annotated.mp4 con las cajas dibujadas y un JSON con las detecciones fotograma a fotograma y los FPS de cada etapa; con 8 flujos se genera un JSON cuyo campo aggregate_fps es la columna «rendimiento total» de las tablas. La terminal también imprime los FPS en tiempo real.
Sirve cualquier vídeo, de cualquier resolución: los scripts hacen el letterbox a 640×640 por su cuenta. Las mediciones de esta página usaron un vídeo de tráfico de 640×640 y 394 fotogramas.
Un solo flujo: Hailo-8 es el más rápido
| Acelerador | Formato | FPS con un flujo |
|---|---|---|
| Hailo-8 | Módulo M.2 | 49.2 |
| NPU integrada del RK3576 | En el propio SoC | 23.5 |
| RK182x | Módulo M.2 | 17.5 |
Con un solo flujo, Hailo-8 alcanza 2.1 veces la tasa de la NPU integrada y también la menor latencia por inferencia: 13.9 ms.
8 flujos concurrentes: RK182x es el más potente
| Flujos concurrentes | Hailo-8 | NPU integrada 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 no aumenta su total: da igual 1 que 8 flujos, se queda en torno a 50 FPS, así que con 8 flujos cada uno recibe solo 6.4 FPS.
- La NPU integrada crece con la concurrencia: de 21.2 a 69.7 FPS (8.7 FPS por flujo con 8 flujos).
- RK182x llega a 88.6 FPS: 11.1 FPS por flujo con 8 flujos, 1.27 veces la NPU integrada y 1.7 veces el Hailo-8.
Los tres, en pantalla
El mismo fotograma del mismo vídeo, tal como lo entrega cada acelerador:
De izquierda a derecha: Hailo-8, NPU integrada del RK3576 y RK182x.
Cuál elegir
| Caso de uso | Elección | Motivo |
|---|---|---|
| Un flujo / una cámara | Hailo-8 | 49.2 FPS y 13.9 ms por inferencia |
| Un flujo sin ocupar la ranura | NPU integrada del RK3576 | 23.5 FPS, sin coste adicional |
| Varias cámaras / 4 flujos o más | RK182x | 88.6 FPS con 8 flujos (frente a 69.7 de la NPU y 51.6 del Hailo-8) |
| Mínima latencia por inferencia | Hailo-8 | 13.9 ms |
En una frase: Hailo-8 para un flujo, RK182x para muchos y la NPU integrada como opción sin coste. Con 8 flujos la NPU del SoC ya iguala a un módulo Hailo-8 (69.7 frente a 51.6); el módulo multinúcleo como el RK182x se justifica cuando necesitas más rendimiento total y además quieres dejar libre la NPU del SoC.
Código y datos
- Código, artefactos de modelo (HEF / RKNN / RKNN3),
results/summary.jsony las dos gráficas comparativas: https://github.com/inteintegrity/rk3576-hailo8-vs-rk182x - Detecciones por fotograma, datos multi-flujo, capturas de ejecución e informe: adjunto 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