Utiliser l'accélérateur USB AI ASUS UGen300 avec le reComputer RK3576

L'ASUS UGen300 est un accélérateur USB AI construit autour du processeur Hailo-10H avec 8 GB de mémoire LPDDR4. Ce tutoriel montre comment le connecter à un reComputer RK3576, installer le pilote USB ASUS et HailoRT aux versions correspondantes, mettre à jour le firmware de l'appareil si nécessaire, et vérifier que HailoRT peut communiquer avec l'accélérateur.

Configuration testée

ÉlémentConfiguration testée
HôtereComputer RK3576 Dev Kit
Système d'exploitationArmbian-unofficial 26.05.0-trunk, Debian 12 (bookworm)
Noyau6.1.115-vendor-seeed-rk3576
Architecture de l'hôteAArch64 (arm64)
AccélérateurASUS UGen300 USB AI Accelerator, Hailo-10H, 8 GB LPDDR4
USB ID de l'appareil0b05:1d6f
Lien USB négocié5000M sur le port RK3576 testé
Pilote USBhailort-usb-driver 5.3.0
RuntimeHailoRT 5.3.0
Firmware de l'appareil après mise à jour5.3.0 (release,app)

ASUS spécifie une interface USB 3.1 Gen 2 Type-C avec un débit de liaison maximal de 10 Gbps. La connexion testée sur le RK3576 a négocié à 5 Gbps, comme rapporté par lsusb -t.

Connecter et inspecter l'accélérateur

Connectez le UGen300 directement à un port hôte USB 3 avec le câble fourni ou un autre câble USB Type-C 10 Gbps.

Vérifiez que l'hôte peut voir l'accélérateur :

bash
lsusb -d 0b05:1d6f

Terminal montrant l'ASUS UGen300 détecté sur le reComputer RK3576

Avant que l'image Hailo ne soit chargée, un appareil nouvellement connecté peut apparaître comme UGen300 USB Loader. Vérifiez aussi la vitesse de liaison négociée :

bash
lsusb -t

Terminal montrant la topologie USB du UGen300 et la vitesse de liaison négociée

La branche du UGen300 a rapporté 5000M sur le reComputer RK3576 testé. Une entrée 480M signifie que la connexion est retombée en USB 2.

Vérifier les logiciels d'accélérateur existants

Le manuel ASUS indique que les pilotes PCIe et USB de HailoRT ne peuvent pas être installés en même temps, et que les pilotes Hailo-8 et Hailo-10H ne peuvent pas coexister. Inspectez les paquets installés avant de continuer :

bash
dpkg -l | grep -Ei 'hailo|ugen'

Supprimez un pilote Hailo PCIe ou Hailo-8 existant avant d'installer le paquet USB du UGen300. Ne supprimez pas une pile d'accélérateur sans rapport, sauf si vous avez l'intention d'en changer.

Télécharger et vérifier le paquet de pilote ASUS

Téléchargez le paquet de pilote USB ARM64 publié sur la page d'assistance de l'ASUS UGen300 :

bash
mkdir -p ~/ugen300
cd ~/ugen300

curl -fL -o UGen300_USB_5.3.0_driver_Linux_arm64.zip \
  https://dlcdnets.asus.com/pub/ASUS/AI_ACCELERATION_DEVICE/Driver/UGen300_USB_5.3.0_driver_Linux_arm64.zip

Vérifiez l'archive avant de l'extraire. La somme de contrôle ci-dessous est la valeur SHA-256 publiée par ASUS pour la version 5.3.0 :

bash
echo '6a98b46d8f88a7911fea142a8b3f4a69715f5166cc112e1352eba93f8a2bcbc4  UGen300_USB_5.3.0_driver_Linux_arm64.zip' \
  | sha256sum --check

Extrayez l'archive :

bash
unzip UGen300_USB_5.3.0_driver_Linux_arm64.zip
cd UGen300_USB_5.3.0_driver_Linux_arm64

L'archive contient le paquet ARM64 de HailoRT et son pilote USB en espace utilisateur à version correspondante. Le paquet USB contient aussi l'image Hailo-10H utilisée au démarrage de l'appareil.

Installer le pilote USB et HailoRT

Installez ensemble les deux paquets aux versions correspondantes :

bash
sudo apt install ./hailort_5.3.0_arm64.deb \
  ./hailort-usb-driver_5.3.0_arm64.deb

Le pilote USB installe une règle udev pour 0b05:1d6f. Lorsqu'un UGen300 en mode Loader est détecté, la règle démarre le chargeur d'image USB Hailo et l'appareil se réénumère.

Confirmez les versions installées :

bash
dpkg-query -W hailort hailort-usb-driver
hailortcli --version

Terminal montrant les versions installées de HailoRT et du pilote USB UGen300

Terminal montrant la version de la CLI HailoRT

Aligner le firmware de l'appareil sur HailoRT

Recherchez l'appareil USB et interrogez son firmware :

bash
hailortcli scan
hailortcli fw-control identify

Si identify signale que le firmware est incompatible et demande explicitement hailo_usb_loader fw-update, mettez à jour la flash du UGen300 avec l'image fournie par le pilote USB installé :

bash
sudo hailo_usb_loader fw-update

La mise à jour a pris environ deux minutes sur l'appareil testé. Gardez le RK3576 alimenté, laissez le câble connecté et attendez que l'outil signale que la mise à jour s'est terminée avec succès.

Le UGen300 se déconnecte et se réénumère pendant ce processus. S'il ne revient pas après la fin de la commande, débranchez-le, rebranchez-le directement au port hôte USB et attendez que le chargeur d'image udev se termine.

Vérifier l'appareil en cours d'exécution

Inspectez l'état USB final et la vitesse de liaison :

bash
lsusb -d 0b05:1d6f
lsusb -t

Après la mise à jour et le chargement d'image réussis, l'unité testée apparaissait comme UGen300 USB AI Accelerator (Hailo-10H) au lieu de UGen300 USB Loader.

Vérifiez la communication avec HailoRT :

bash
hailortcli scan
hailortcli fw-control identify

Terminal montrant le résultat du scan du UGen300, la version du firmware et l'architecture Hailo-10H

Sur le système testé, l'identification finale a rapporté le firmware HailoRT 5.3.0 (release,app) et l'architecture de l'appareil HAILO10H.

Exécuter un modèle HEF

Téléchargez le HEF YOLOv8n compilé pour Hailo-10H depuis le Hailo Model Zoo :

bash
mkdir -p ~/ugen300/models
cd ~/ugen300/models

curl -fL -o yolov8n.hef \
  https://hailo-model-zoo.s3.amazonaws.com/ModelZoo/Compiled/v5.3.0/hailo10h/yolov8n.hef

Confirmez que le HEF téléchargé est compatible avec Hailo-10H, puis exécutez-le pendant cinq secondes :

bash
hailortcli parse-hef yolov8n.hef
hailortcli run2 -t 5 set-net yolov8n.hef

L'analyseur devrait rapporter HEF Compatible for: HAILO15H, HAILO10H. Une commande run2 terminée imprime les FPS mesurés et confirme que le modèle s'est exécuté sur l'accélérateur. HailoRT 5.3.0 ne prend pas en charge l'ancienne commande hailortcli run sur ce type d'appareil.

Dépannage

  • lsusb n'affiche pas 0b05:1d6f : rebranchez l'accélérateur directement à l'hôte, vérifiez le câble et le port, puis inspectez les événements USB récents avec sudo dmesg | tail -n 50.
  • L'appareil reste UGen300 USB Loader : inspectez les messages du chargeur avec journalctl -t hailo-usb --no-pager. Si HailoRT signale une incompatibilité de firmware, exécutez la commande de mise à jour ci-dessus.
  • hailortcli scan trouve le chemin USB mais identify signale un firmware incompatible : gardez le pilote et HailoRT à la même version, puis effectuez la mise à jour du firmware documentée par ASUS.
  • 480M apparaît dans lsusb -t : l'appareil a négocié à la vitesse USB 2. Utilisez un port USB 3 et un câble adapté au débit requis.
  • HAILO_LIBUSB_FAILURE ou HAILO_COMMUNICATION_CLOSED apparaît pendant run2 : l'accélérateur s'est déconnecté en charge. Rebranchez-le directement à un port hôte USB 3, vérifiez le câble USB-C et l'alimentation, puis répétez hailortcli fw-control identify avant de réessayer.
  • Une pile Hailo PCIe ou Hailo-8 installée précédemment est présente : supprimez le pilote Hailo en conflit avant d'installer le pilote USB du UGen300.

Supprimer le logiciel du UGen300

Supprimez les paquets du pilote USB et de HailoRT avec :

bash
sudo dpkg --purge hailort-usb-driver hailort
sudo udevadm control --reload-rules

Références