Den ASUS UGen300 USB AI Accelerator mit dem reComputer RK3576 verwenden

Der ASUS UGen300 ist ein USB-KI-Beschleuniger, der um den Hailo-10H-Prozessor mit 8 GB LPDDR4-Speicher aufgebaut ist. Dieses Tutorial zeigt, wie man ihn an einem reComputer RK3576 anschließt, den versionsgleichen ASUS-USB-Treiber und HailoRT installiert, die Geräte-Firmware bei Bedarf aktualisiert und verifiziert, dass HailoRT mit dem Beschleuniger kommunizieren kann.

Getestete Konfiguration

PunktGetestete Konfiguration
HostreComputer RK3576 Dev Kit
BetriebssystemArmbian-unofficial 26.05.0-trunk, Debian 12 (bookworm)
Kernel6.1.115-vendor-seeed-rk3576
Host-ArchitekturAArch64 (arm64)
BeschleunigerASUS UGen300 USB AI Accelerator, Hailo-10H, 8 GB LPDDR4
USB-Geräte-ID0b05:1d6f
Aushandelte USB-Verbindung5000M am getesteten RK3576-Port
USB-Treiberhailort-usb-driver 5.3.0
RuntimeHailoRT 5.3.0
Geräte-Firmware nach Update5.3.0 (release,app)

ASUS spezifiziert eine USB 3.1 Gen 2 Type-C-Schnittstelle mit einer maximalen Linkrate von 10 Gbps. Die getestete RK3576-Verbindung handelte 5 Gbps aus, wie von lsusb -t gemeldet.

Beschleuniger anschließen und prüfen

Verbinden Sie den UGen300 mit dem beiliegenden Kabel oder einem anderen USB-10-Gbps-Type-C-Kabel direkt mit einem USB-3-Hostport.

Prüfen Sie, ob der Host den Beschleuniger sehen kann:

bash
lsusb -d 0b05:1d6f

Terminal, das die Erkennung des ASUS UGen300 am reComputer RK3576 zeigt

Bevor das Hailo-Image geladen ist, kann ein frisch angeschlossenes Gerät als UGen300 USB Loader erscheinen. Prüfen Sie zusätzlich die ausgehandelte Linkrate:

bash
lsusb -t

Terminal, das die USB-Topologie des UGen300 und die ausgehandelte Linkrate zeigt

Der UGen300-Zweig meldete am getesteten reComputer RK3576 5000M. Ein Eintrag 480M bedeutet, dass die Verbindung auf USB 2 zurückgefallen ist.

Vorhandene Beschleuniger-Software prüfen

Das ASUS-Handbuch stellt klar, dass die PCIe- und USB-Treiber von HailoRT nicht gleichzeitig installiert werden können und dass Hailo-8- und Hailo-10H-Treiber nicht koexistieren können. Untersuchen Sie die installierten Pakete, bevor Sie fortfahren:

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

Entfernen Sie einen bestehenden Hailo-PCIe- oder Hailo-8-Treiber, bevor Sie das UGen300-USB-Paket installieren. Entfernen Sie einen nicht zugehörigen Beschleuniger-Stack nicht, es sei denn, Sie wollen bewusst wechseln.

Das ASUS-Treiberpaket herunterladen und verifizieren

Laden Sie das auf der ASUS-UGen300-Supportseite veröffentlichte ARM64-USB-Treiberpaket herunter:

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

Verifizieren Sie das Archiv, bevor Sie es entpacken. Die untenstehende Prüfsumme ist der von ASUS für Version 5.3.0 veröffentlichte SHA-256-Wert:

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

Entpacken Sie das Archiv:

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

Das Archiv enthält das ARM64-HailoRT-Paket und seinen versionsgleichen Userspace-USB-Treiber. Das USB-Paket enthält außerdem das Hailo-10H-Image, das beim Start des Geräts verwendet wird.

USB-Treiber und HailoRT installieren

Installieren Sie beide versionsgleichen Pakete zusammen:

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

Der USB-Treiber installiert eine udev-Regel für 0b05:1d6f. Wird ein UGen300 im Loader-Modus erkannt, startet die Regel den Hailo-USB-Image-Loader und das Gerät enumeriert neu.

Bestätigen Sie die installierten Versionen:

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

Terminal, das die installierten Versionen von HailoRT und des UGen300-USB-Treibers zeigt

Terminal, das die Version der HailoRT-CLI zeigt

Geräte-Firmware an HailoRT angleichen

Scannen Sie das USB-Gerät und fragen Sie seine Firmware ab:

bash
hailortcli scan
hailortcli fw-control identify

Wenn identify meldet, dass die Firmware inkompatibel ist, und explizit hailo_usb_loader fw-update verlangt, aktualisieren Sie den Flash des UGen300 mit dem vom installierten USB-Treiber mitgelieferten Image:

bash
sudo hailo_usb_loader fw-update

Das Update dauerte am getesteten Gerät etwa zwei Minuten. Halten Sie den RK3576 unter Strom, lassen Sie das Kabel verbunden und warten Sie, bis das Tool meldet, dass das Update erfolgreich abgeschlossen wurde.

Der UGen300 trennt sich während dieses Vorgangs und enumeriert neu. Wenn er nach Abschluss des Befehls nicht zurückkehrt, ziehen Sie ihn ab, verbinden ihn direkt mit dem USB-Hostport und warten auf den Abschluss des udev-Image-Loaders.

Das laufende Gerät verifizieren

Untersuchen Sie den finalen USB-Zustand und die Linkrate:

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

Nach dem erfolgreichen Update und Laden des Images erschien das getestete Gerät als UGen300 USB AI Accelerator (Hailo-10H) statt als UGen300 USB Loader.

Verifizieren Sie die HailoRT-Kommunikation:

bash
hailortcli scan
hailortcli fw-control identify

Terminal, das das Scan-Ergebnis des UGen300, die Firmware-Version und die Hailo-10H-Architektur zeigt

Auf dem getesteten System meldete die abschließende Identifikation die HailoRT-Firmware 5.3.0 (release,app) und die Gerätearchitektur HAILO10H.

Ein HEF-Modell ausführen

Laden Sie das für Hailo-10H kompilierte YOLOv8n-HEF aus dem Hailo Model Zoo herunter:

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

Bestätigen Sie, dass das heruntergeladene HEF mit Hailo-10H kompatibel ist, und führen Sie es fünf Sekunden aus:

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

Der Parser sollte HEF Compatible for: HAILO15H, HAILO10H melden. Ein abgeschlossener run2-Befehl gibt die gemessenen FPS aus und bestätigt, dass das Modell auf dem Beschleuniger ausgeführt wurde. HailoRT 5.3.0 unterstützt den älteren Befehl hailortcli run auf diesem Gerätetyp nicht.

Fehlerbehebung

  • lsusb zeigt 0b05:1d6f nicht: Verbinden Sie den Beschleuniger erneut direkt mit dem Host, prüfen Sie Kabel und Port und untersuchen Sie die letzten USB-Ereignisse mit sudo dmesg | tail -n 50.
  • Das Gerät bleibt UGen300 USB Loader: Untersuchen Sie die Loader-Meldungen mit journalctl -t hailo-usb --no-pager. Wenn HailoRT eine Firmware-Inkompatibilität meldet, führen Sie den obigen Firmware-Update-Befehl aus.
  • hailortcli scan findet den USB-Pfad, aber identify meldet inkompatible Firmware: Halten Sie Treiber und HailoRT auf derselben Version und führen Sie dann das von ASUS dokumentierte Firmware-Update durch.
  • 480M erscheint in lsusb -t: Das Gerät hat auf USB-2-Geschwindigkeit verhandelt. Verwenden Sie einen USB-3-Port und ein für die erforderliche Linkrate ausgelegtes Kabel.
  • HAILO_LIBUSB_FAILURE oder HAILO_COMMUNICATION_CLOSED erscheint während run2: Der Beschleuniger hat sich unter Last getrennt. Verbinden Sie ihn erneut direkt mit einem USB-3-Hostport, prüfen Sie das USB-C-Kabel und die Stromversorgung und wiederholen Sie vor einem neuen Versuch hailortcli fw-control identify.
  • Ein zuvor installierter Hailo-PCIe- oder Hailo-8-Stack ist vorhanden: Entfernen Sie den kollidierenden Hailo-Treiber, bevor Sie den UGen300-USB-Treiber installieren.

Die UGen300-Software entfernen

Entfernen Sie die USB-Treiber- und HailoRT-Pakete mit:

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

Referenzen