🛠 Accélérer l'inférence IA avec un HAT NPU (Hailo)
Objetivos
Desplegar una inferencia de red neuronal en un acelerador NPU conectado a un Raspberry Pi 5. Atención: el SoC BCM2712 no contiene una NPU integrada; la aceleración por hardware se realiza mediante un AI HAT+ (Hailo-8L 13 TOPS o Hailo-8 26 TOPS) o un AI HAT+ 2 (Hailo-10H, 40 TOPS + 8 GB de RAM dedicada), conectados por PCIe a través del conector FPC/HAT+.
Material
- Raspberry Pi 5 (se recomiendan 8 GB) con Raspberry Pi OS de 64 bits + fuente de alimentación de 27 W
- AI HAT+ o AI HAT+ 2 (Hailo) con disipador/enfriamiento activo
- Active Cooler indispensable: el HAT y el SoC se calientan durante la inferencia continua
- Cámara oficial (libcamera) para un pipeline de detección completo
Código completo
# 1) Installer la pile Hailo (dépôt officiel Raspberry Pi)
sudo apt update && sudo apt install -y hailo-all
sudo hailoall status # vérifie driver + firmware
ls /dev/hailo0 # présent => NPU visible
# 2) Détecteur YOLO prêt à l'emploi fourni avec la pile
hailo_detection_yolov8.py --input camera --show-fps
# 3) Suivi thermique pendant la charge (bridage à 80-85 °C)
watch -n1 vcgencmd measure_temp
#!/usr/bin/env python3
# infer_hailo.py — inférence minimale via HailoRT (API Python)
import hailort
# Charger un réseau compilé .hef (obtenu avec TAPPAs/compile_hailo)
dev = hailort.Device.create_hailo
dev.load_hef("yolov8s.hef")
print("NPU détecté, réseau chargé :", dev.get_arch)
# ... puis création d'inférence, envoi des trames et lecture des sorties
Verificación esperada
hailoall status devuelve el estado del driver y del firmware como OK, y /dev/hailo0 existe. El script de detección muestra cuadros delimitadores sobre el flujo de la cámara con una tasa de FPS claramente superior a la de la inferencia en CPU. La temperatura permanece por debajo de 80 °C gracias al enfriamiento.
Errores frecuentes
- Creer que hay una NPU integrada: el BCM2712 no tiene ninguna; sin un HAT+ Hailo, toda la inferencia se ejecuta en los cuatro Cortex-A76 (o en la GPU, sin un acelerador dedicado).
- Olvidar activar el puerto PCIe/HAT+: el HAT no aparece; configure el firmware para el modo HAT+ y reinicie.
- Sobrecalentamiento: sin el Active Cooler, el SoC entra en el rango de estrangulamiento térmico de 80-85 °C y los FPS caen.
- Incompatibilidad de versiones de firmware/driver tras
apt upgrade: vuelva a ejecutarhailoall statusy reinstale hailo-all. - Red no compilada para el chip: un archivo .hef compilado para Hailo-8 no funciona necesariamente en Hailo-8L; vuelva a compilarlo con el compilador TAPPAs correcto.
- Fuente de alimentación insuficiente: el HAT añade un pico de consumo; mantenga la alimentación en 5 V/5 A.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython