Utiliser un accélérateur Hailo-8 M.2 avec reComputer RK3576

Ce tutoriel explique comment installer le pilote PCIe Hailo-8 et HailoRT sur un reComputer RK3576, vérifier que l’accélérateur est prêt et exécuter un fichier HEF de Hailo Model Zoo sur l’appareil. Le module testé est le Seeed Studio Hailo-8 M.2 Key M 2280, et non un Hailo-8L.

Configuration du système

ÉlémentConfiguration testée
HôtereComputer RK3576 Dev Kit
Système d’exploitationArmbian-unofficial 26.05.0-trunk, Debian 12 (bookworm), ARM64
Noyau6.1.115-vendor-seeed-rk3576
AccélérateurModule Seeed Studio Hailo-8 M.2 Key M 2280
Périphérique PCIe1e60:2864
Liaison négociéePCIe Gen2 x1, 5.0 GT/s
Environnement d’exécution et pilote PCIeHailoRT 4.23.0, hailort-pcie-driver 4.23.0
HEF de testHailo Model Zoo v2.17.0, centerpose_regnetx_800mf.hef, HAILO8, entrée 512 × 512 × 3

Installer le module et vérifier PCIe

Arrêtez le RK3576 et débranchez son alimentation avant d’installer ou de réinsérer le module M.2. Placez le Hailo-8 dans l’emplacement M.2 Key M de la carte, fixez-le, puis rebranchez l’alimentation.

Après le démarrage, vérifiez le périphérique PCIe et la liaison négociée :

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

La carte testée est apparue à l’adresse 01:00.0 sous le nom Hailo-8 AI Processor [1e60:2864], avec une liaison 5.0 GT/s PCIe x1. L’adresse du bus peut différer sur un autre système ; utilisez celle affichée par lspci pour consulter les fichiers de liaison sysfs.

Périphérique PCIe Hailo-8 et liaison Gen2 x1 négociée

Télécharger HailoRT 4.23.0

Hailo-8 utilise la gamme HailoRT 4.x. Téléchargez les paquets ARM64 correspondants de l’environnement d’exécution et du pilote PCIe depuis le répertoire public de Hailo-8 :

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

Les deux paquets doivent indiquer 4.23.0 et celui de l’environnement d’exécution doit indiquer arm64. Hailo fournit ces liens directs dans son guide d’installation communautaire.

Le pilote est compilé pour le noyau en cours d’exécution. Avant l’installation, vérifiez la présence des en-têtes correspondants et de DKMS :

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

Sur l’image Armbian testée, le chemin des en-têtes pointe vers linux-headers-6.1.115-vendor-seeed-rk3576. Si l’une des vérifications échoue, installez les en-têtes correspondant exactement au noyau en cours d’exécution ainsi que DKMS avant de continuer.

Installer l’environnement d’exécution et le pilote PCIe

Avant de modifier les paquets, vérifiez les composants Hailo déjà installés :

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

Si la carte a précédemment utilisé l’accélérateur USB ASUS UGen300, supprimez son environnement HailoRT 5.x et son pilote USB avant d’installer la pile PCIe Hailo-8 :

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

Installez les paquets 4.23.0 depuis le répertoire de téléchargement :

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

Lorsque le programme vous le demande, activez DKMS pour compiler le pilote pour le noyau en cours d’exécution. L’installation testée a également activé hailort.service. Le paquet du pilote PCIe contient l’image de démarrage correspondante hailo8_fw.4.23.0.bin, chargée sur la carte lors de l’initialisation du pilote. Cette procédure n’utilise pas hailortcli fw-update.

Redémarrez, puis confirmez que le pilote est associé au périphérique et que le nœud existe :

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

Sur la carte testée, lspci a affiché Kernel driver in use: hailo, et le module comme la CLI HailoRT ont indiqué 4.23.0.

Pilote Hailo-8 associé, nœud de périphérique et versions 4.23.0 correspondantes

Identifier l’accélérateur

Utilisez HailoRT pour rechercher les périphériques PCIe et lire les informations du module :

bash
hailortcli scan
hailortcli fw-control identify

Le périphérique testé a été détecté à 0000:01:00.0. L’identification a indiqué Device Architecture: HAILO8, Firmware Version: 4.23.0 et Product Name: Seeed Studio Hailo-8 M.2 Key M 2280 Module.

Recherche HailoRT et identification de Hailo-8

Exécuter un HEF de Hailo Model Zoo

Téléchargez le modèle CenterPose précompilé pour HAILO8 depuis Hailo Model Zoo v2.17.0 :

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-hef doit afficher Architecture HEF was compiled for: HAILO8 et une entrée UINT8, NHWC(512x512x3). Le HEF de Model Zoo v2.17.0 utilisé pour le test possède l’empreinte SHA-256 625cbd18736c87ba708f46011cc683261690e8d68f054adc0e3df1e1a925a369.

Exécutez le réseau pendant cinq secondes avec les données d’entrée générées par HailoRT :

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

La commande doit atteindre 100 % et afficher un nombre de FPS non nul pour centerpose_regnetx_800mf. Elle exécute l’inférence sur l’accélérateur, mais ne décode pas la sortie de CenterPose en points clés visibles. HailoRT 4.23.0 peut afficher un avertissement recommandant run pour un seul modèle, bien que run2 fonctionne pour ce test.

Informations du HEF HAILO8 et inférence terminée

Dépannage

  • lspci n’affiche pas 1e60:2864 : coupez complètement l’alimentation du RK3576, réinsérez la carte M.2 et vérifiez qu’elle se trouve dans l’emplacement PCIe Key M.
  • Le périphérique PCIe est présent mais /dev/hailo0 manque : consultez dkms status, modinfo hailo_pci et sudo dmesg -T | grep -i hailo pour rechercher un échec de compilation du pilote ou de chargement du micrologiciel.
  • HailoRT signale une incompatibilité de version du pilote : vérifiez hailortcli --version et modinfo hailo_pci ; les deux doivent indiquer 4.23.0.
  • Le HEF est refusé : confirmez que hailortcli parse-hef indique HAILO8 et utilisez un modèle Hailo-8 de Model Zoo v2.x, et non un HEF Hailo-8L ou Hailo-10H.

Références