De ASUS UGen300 USB AI-accelerator gebruiken met de reComputer RK3576

De ASUS UGen300 is een USB AI-accelerator gebouwd rond de Hailo-10H-processor met 8 GB LPDDR4-geheugen. Deze tutorial laat zien hoe je hem op een reComputer RK3576 aansluit, de versie-overeenkomende ASUS USB-driver en HailoRT installeert, de apparaatfirmware zo nodig bijwerkt en verifieert dat HailoRT met de accelerator kan communiceren.

Geteste configuratie

OnderdeelGeteste configuratie
HostreComputer RK3576 Dev Kit
BesturingssysteemArmbian-unofficial 26.05.0-trunk, Debian 12 (bookworm)
Kernel6.1.115-vendor-seeed-rk3576
HostarchitectuurAArch64 (arm64)
AcceleratorASUS UGen300 USB AI Accelerator, Hailo-10H, 8 GB LPDDR4
USB-apparaat-ID0b05:1d6f
Onderhandelde USB-verbinding5000M op de geteste RK3576-poort
USB-driverhailort-usb-driver 5.3.0
RuntimeHailoRT 5.3.0
Apparaatfirmware na update5.3.0 (release,app)

ASUS specificeert een USB 3.1 Gen 2 Type-C-interface met een maximale linksnelheid van 10 Gbps. De geteste RK3576-verbinding onderhandelde op 5 Gbps, zoals gemeld door lsusb -t.

De accelerator aansluiten en inspecteren

Sluit de UGen300 met de meegeleverde kabel of een andere USB 10 Gbps Type-C-kabel rechtstreeks op een USB 3-hostpoort aan.

Controleer of de host de accelerator kan zien:

bash
lsusb -d 0b05:1d6f

Terminal toont de gedetecteerde ASUS UGen300 op de reComputer RK3576

Voordat het Hailo-image is geladen, kan een net aangesloten apparaat verschijnen als UGen300 USB Loader. Controleer ook de onderhandelde linksnelheid:

bash
lsusb -t

Terminal toont de USB-topologie van de UGen300 en de onderhandelde linksnelheid

De UGen300-tak rapporteerde 5000M op de geteste reComputer RK3576. Een 480M-item betekent dat de verbinding terugviel op USB 2.

Bestaande acceleratorsoftware controleren

De ASUS-handleiding stelt dat de PCIe- en USB-drivers van HailoRT niet tegelijk geïnstalleerd kunnen worden en dat Hailo-8- en Hailo-10H-drivers niet kunnen samenbestaan. Inspecteer de geïnstalleerde pakketten voordat je doorgaat:

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

Verwijder een bestaande Hailo PCIe- of Hailo-8-driver voordat je het UGen300 USB-pakket installeert. Verwijder geen ongerelateerde acceleratorstack, tenzij je bewust wilt overstappen.

Het ASUS-driverpakket downloaden en verifiëren

Download het ARM64 USB-driverpakket dat op de ASUS UGen300-ondersteuningspagina is gepubliceerd:

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

Verifieer het archief voordat je het uitpakt. De onderstaande controlesom is de SHA-256-waarde die ASUS voor versie 5.3.0 heeft gepubliceerd:

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

Pak het archief uit:

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

Het archief bevat het ARM64 HailoRT-pakket en de versie-overeenkomende gebruikersruimte-USB-driver. Het USB-pakket bevat ook het Hailo-10H-image dat wordt gebruikt wanneer het apparaat opstart.

De USB-driver en HailoRT installeren

Installeer beide versie-overeenkomende pakketten samen:

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

De USB-driver installeert een udev-regel voor 0b05:1d6f. Wanneer een UGen300 in Loader-modus wordt gedetecteerd, start de regel de Hailo USB-imageloader en wordt het apparaat opnieuw geënumereerd.

Bevestig de geïnstalleerde versies:

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

Terminal toont de geïnstalleerde versies van HailoRT en de UGen300 USB-driver

Terminal toont de versie van de HailoRT CLI

De apparaatfirmware op HailoRT afstemmen

Scan het USB-apparaat en vraag de firmware op:

bash
hailortcli scan
hailortcli fw-control identify

Als identify meldt dat de firmware incompatibel is en expliciet om hailo_usb_loader fw-update vraagt, werk dan de flash van de UGen300 bij met het image dat door de geïnstalleerde USB-driver wordt meegeleverd:

bash
sudo hailo_usb_loader fw-update

De update duurde op het geteste apparaat ongeveer twee minuten. Houd de RK3576 aan, laat de kabel verbonden en wacht tot de tool meldt dat de update succesvol is voltooid.

De UGen300 verbreekt de verbinding en wordt tijdens dit proces opnieuw geënumereerd. Als hij niet terugkeert nadat de opdracht is afgerond, koppel hem los, sluit hem rechtstreeks op de USB-hostpoort aan en wacht tot de udev-imageloader klaar is.

Het draaiende apparaat verifiëren

Inspecteer de uiteindelijke USB-status en linksnelheid:

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

Na de geslaagde update en het laden van het image verscheen het geteste apparaat als UGen300 USB AI Accelerator (Hailo-10H) in plaats van UGen300 USB Loader.

Verifieer de communicatie met HailoRT:

bash
hailortcli scan
hailortcli fw-control identify

Terminal toont het scanresultaat van de UGen300, de firmwareversie en de Hailo-10H-architectuur

Op het geteste systeem meldde de uiteindelijke identificatie HailoRT-firmware 5.3.0 (release,app) en apparaatarchitectuur HAILO10H.

Een HEF-model uitvoeren

Download de voor Hailo-10H gecompileerde YOLOv8n HEF uit de 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

Bevestig dat de gedownloade HEF compatibel is met Hailo-10H en voer hem dan vijf seconden uit:

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

De parser moet HEF Compatible for: HAILO15H, HAILO10H rapporteren. Een voltooide run2-opdracht print de gemeten FPS en bevestigt dat het model op de accelerator is uitgevoerd. HailoRT 5.3.0 ondersteunt de oudere opdracht hailortcli run niet op dit apparaattype.

Problemen oplossen

  • lsusb toont 0b05:1d6f niet: sluit de accelerator rechtstreeks opnieuw op de host aan, controleer de kabel en de poort en bekijk recente USB-gebeurtenissen met sudo dmesg | tail -n 50.
  • Het apparaat blijft UGen300 USB Loader: bekijk de loaderberichten met journalctl -t hailo-usb --no-pager. Als HailoRT een firmware-mismatch meldt, voer dan de hierboven genoemde firmware-updateopdracht uit.
  • hailortcli scan vindt het USB-pad, maar identify meldt incompatibele firmware: houd de driver en HailoRT op dezelfde versie en voer dan de door ASUS gedocumenteerde firmware-update uit.
  • 480M verschijnt in lsusb -t: het apparaat onderhandelde op USB 2-snelheid. Gebruik een USB 3-poort en een kabel die is geclassificeerd voor de vereiste linksnelheid.
  • HAILO_LIBUSB_FAILURE of HAILO_COMMUNICATION_CLOSED verschijnt tijdens run2: de accelerator is onder belasting losgekoppeld. Sluit hem rechtstreeks opnieuw aan op een USB 3-hostpoort, controleer de USB-C-kabel en de stroomlevering en herhaal hailortcli fw-control identify voordat je het opnieuw probeert.
  • Er is een eerder geïnstalleerde Hailo PCIe- of Hailo-8-stack aanwezig: verwijder de conflicterende Hailo-driver voordat je de UGen300 USB-driver installeert.

De UGen300-software verwijderen

Verwijder de USB-driver- en HailoRT-pakketten met:

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

Referenties