Export und Bereitstellung mit Axelera AI#
Ultralytics arbeitet mit Axelera AI zusammen, um leistungsstarke, energieeffiziente Inferenz auf Edge-AI-Geräten zu ermöglichen. Exportiere Ultralytics-YOLO-Modelle und stelle sie direkt auf der Metis® AIPU mithilfe des Voyager SDK bereit.
Axelera AI bietet dedizierte Hardwarebeschleunigung für Bildverarbeitung am Edge und nutzt eine proprietäre Datenflussarchitektur sowie Berechnungen im Speicher, um bei geringem Stromverbrauch bis zu 856 TOPS zu erreichen.
Die passende Hardware auswählen#
Axelera AI bietet verschiedene Formfaktoren für unterschiedliche Einsatzbedingungen. Das Diagramm unten hilft dir dabei, die optimale Hardware für deine Ultralytics-YOLO-Bereitstellung zu finden.
Hardwareangebot#
Die Axelera-Hardware ist darauf ausgelegt, Ultralytics YOLO26 und ältere Versionen mit hoher FPS-pro-Watt-Effizienz auszuführen.
Beschleunigerkarten#
Mit diesen Karten kannst du bestehende Hostgeräte mit KI-Beschleunigung ausstatten und so Brownfield-Bereitstellungen ermöglichen.
| Produkt | Formfaktor | Rechenleistung | Leistung (INT8) | Zielanwendung |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | Videoanalyse mit hoher Dichte, Videoanalyse, Smart Cities |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | Industrie-PCs, Warteschlangenverwaltung im Einzelhandel |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Drohnen, Robotik, tragbare medizinische Geräte |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Umgebungen, die ein fortschrittliches Wärmemanagement erfordern |
Integrierte Systeme#
Für schlüsselfertige Lösungen arbeitet Axelera mit Herstellern zusammen, um Systeme bereitzustellen, die für die Metis AIPU vorab validiert wurden.
- Metis Compute Board: Ein eigenständiges Edge-Gerät, das die Metis AIPU mit einer Rockchip-RK3588-ARM-CPU kombiniert.
- Workstations: Enterprise-Tower von Dell (Precision 3460XE) und Lenovo (ThinkStation P360 Ultra).
- Industrie-PCs: Robuste Systeme von Advantech und Aetina, ausgelegt auf Fertigungsautomatisierung.
Unterstützte Aufgaben#
Der Axelera-Export unterstützt alle sieben Ultralytics-Aufgaben. Semantische Segmentierung und Tiefenschätzung sind nur mit YOLO26 verfügbar, der einzigen Modellfamilie, die diese Heads enthält.
YOLO26-Modelle für Detektion, Instanzsegmentierung, Pose und OBB exportieren standardmäßig ihren NMS-freien One-to-One-Head, den die Axelera-Laufzeitumgebung auf dem Host decodiert. Mit nms=True wird stattdessen der One-to-Many-Head exportiert, der auf Metis schlechter abschneidet: Die YOLO26n-Detektion erreicht auf COCO128 so einen mAP50-95-Wert von 0.212, gegenüber 0.453 mit dem NMS-freien Head.
| Aufgabe | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Erkennung | ✅ | ✅ | ✅ |
| Segmentierung | ✅ | ✅ | ✅ |
| Semantik | ❌ | ❌ | ✅ |
| Tiefe | ❌ | ❌ | ✅ |
| Klassifizierung | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Die Quantisierungsbereiche werden anhand der Kalibrierungsbilder bestimmt. Der Standardwert für Tiefe, depth8.yaml, umfasst vier Innenaufnahmen. Auf dem 654 Bilder umfassenden NYU Depth V2-Validierungssplit erreicht YOLO26n-Tiefe, das mit diesem Standardwert kalibriert wurde, auf Metis einen delta1-Wert von 0.742, gegenüber 0.783 für das PyTorch-Modell. Mit 100 NYU-Trainingsbildern wird ein Wert von 0.780 erreicht. Übergib data= zusammen mit einer Dataset-YAML-Datei, deren val-Split mindestens 100 Bilder aus den Szenen enthält, in denen das Modell eingesetzt wird; die Kalibrierung liest den val-Split ein.
Installation#
Für den Export ins Axelera-Format benötigst du:
- Betriebssystem: nur Linux (Ubuntu 22.04/24.04 empfohlen)
- Hardware: Axelera-AI-Beschleuniger (Metis-Geräte)
- Python: Versionen 3.10, 3.11, 3.12 und 3.13
- PyTorch:
torch>=2.8,<2.15 - Voyager SDK: 1.9.0; beim Export wird diese Devkit-Version installiert, bei der Inferenz diese Laufzeitversion
- Metis-Kernel-Treiber:
metis-dkms1.7.0 oder neuer, separat vonpipinstalliert - Systemabhängigkeit:
sudo apt install libgl1(von OpenCV benötigt, nicht inpipenthalten)
Ultralytics installieren#
pip install ultralyticsEine ausführliche Anleitung findest du in unserem Ultralytics-Installationsleitfaden. Bei Problemen hilft dir unser Leitfaden zu häufigen Problemen.
Axelera-Treiber installieren#
-
Füge den Axelera-Repository-Schlüssel hinzu:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Füge das Repository zu apt hinzu:
Wähle unten den passenden Codeausschnitt für das verwendete Betriebssystem aus.
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
Installiere den Treiber und lade ihn. SDK 1.9 benötigt
metis-dkms1.7.0 oder neuer. Hier wird daher die neueste Version installiert:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Der Kernel-Treiber wird separat von den Python-SDK-Paketen installiert. Nach einem SDK-Upgrade musst du daher auch den Treiber mindestens auf die für dieses SDK erforderliche Version aktualisieren – für SDK 1.9 ist das Version 1.7.0. Bei der Installation wird dies nicht überprüft. Ist der Treiber älter als die Mindestversion, ist das Gerät nicht verfügbar: axdevice gibt die erforderliche Version an und kann das Gerät nicht öffnen.
[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0Siehe auch Schritt 3: Metis-Kernel-Treiber installieren. Wenn du unter Ubuntu bereits eine frühere SDK-Version verwendest, aktualisiere den Treiber und lade das Kernelmodul neu (ein Neustart ist nicht erforderlich):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisFühre anschließend axdevice erneut aus, um zu bestätigen, dass das Gerät erkannt wird.
Beim ersten Aufruf von yolo export format=axelera oder yolo predict mit einem Axelera-Modell werden die Axelera-SDK-Pakete automatisch heruntergeladen und installiert. Je nach Verbindungsgeschwindigkeit kann dies mehrere Minuten dauern; während des Downloads wird kein Fortschritt angezeigt. So kannst du die Pakete vorab manuell installieren:
pip install axelera-devkit==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.9 erhöht das Format des kompilierten Modells .axm nicht. Daher lässt sich ein mit Version 1.8 exportiertes Verzeichnis _axelera_model unverändert laden und ausführen. Exportiere das Modell nur erneut, wenn du die Verbesserungen des Compilers nutzen möchtest.
Ein SDK, das die Formatversion erhöht, weist ältere Verzeichnisse beim Laden zurück. Das geschieht beim Upgrade von Version 1.7 oder älter:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.YOLO-Modelle für Axelera exportieren#
Das Axelera-Format unterstützt die Modi Export, Vorhersage und Validierung. Inferenz und Validierung werden auf Axelera-Metis-AIPU-Hardware ausgeführt. Exportiere dein Modell und lade es anschließend, um Inferenz auszuführen oder seine Genauigkeit zu validieren.
from ultralytics import YOLO
# Ein YOLO26-Modell laden
model = YOLO("yolo26n.pt")
# Das Modell ins Axelera-Format exportieren
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Das exportierte Axelera-Modell laden
model = YOLO("yolo26n_axelera_model")
# Inferenz ausführen
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Das exportierte Axelera-Modell laden
model = YOLO("yolo26n_axelera_model")
# Die Genauigkeit anhand des COCO8-Datensatzes validieren
metrics = model.val(data="coco8.yaml")Exportargumente#
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
format | str | 'axelera' | Zielformat für Axelera-Metis-AIPU-Hardware. |
imgsz | int oder tuple | 640 | Bildgröße für die Modelleingabe. |
batch* | int | 1 | Kalibrierungs-Batchgröße. Das kompilierte Modell verarbeitet jeweils ein Bild. |
quantize | int oder str | 8/automatisch | Quantisierungsgenauigkeit. 8 (INT8) ist erforderlich und wird für die Axelera AIPU automatisch aktiviert. Ersetzt die veralteten Flags half/int8. Siehe INT8-Quantisierung. |
data | str | None | YAML-Datei des Kalibrierungsdatensatzes; bei Klassifizierung wird stattdessen ein Datensatzverzeichnis oder der Name eines integrierten Datensatzes verwendet. Wenn keine Angabe erfolgt, wählt Ultralytics einen aufgabenspezifischen Kalibrierungsdatensatz aus. |
fraction | float, int oder list | 1.0 | Kalibrierungsumfang als Verhältnis, Bildanzahl oder [train, val, test]-Verhältnisse/-Anzahlen. Bei Listen mit zwei Werten bleibt test vollständig erhalten, während 0 übersprungen wird (100–400 Bilder empfohlen). |
device | str | None | Exportgerät: GPU (device=0) oder CPU (device=cpu). |
* Modelle werden für jeweils ein Bild kompiliert. Daher legt der Exportparameter batch nur die Kalibrierungs-Batchgröße fest. Übergib stattdessen batch an predict, damit der Axelera-Scheduler mehrere Bilder auf einmal verarbeiten kann (Voyager SDK 1.8.0 oder neuer): siehe Maximale Leistung.
Alle Exportoptionen findest du in der Dokumentation zum Exportmodus.
Ausgabestruktur#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Axelera-AI-Benchmarks#
Die Metis AIPU maximiert den Durchsatz und minimiert gleichzeitig den Energieverbrauch.
| Modell | Metis PCIe FPS (Bilder pro Sekunde) | Metis M.2 FPS (Bilder pro Sekunde) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmarks basierend auf Daten von Axelera AI. Die tatsächlichen FPS hängen von der Modellgröße, der Stapelverarbeitung und der Eingabeauflösung ab.
Dies sind Durchsatzwerte des Hostsystems, gemessen mit der Modellübersicht und der Streaming-Pipeline des Voyager SDK anhand einer 720p-Videodatei. Ein einzelner Aufruf von predict meldet stattdessen die Latenz pro Bild, also eine andere Messgröße.
Anwendungen in der Praxis#
Ultralytics YOLO auf Axelera-Hardware ermöglicht fortschrittliche Edge-Computing-Lösungen:
- Intelligenter Einzelhandel: Echtzeit-Objektzählung und Heatmap-Analysen zur Optimierung von Geschäften.
- Arbeitssicherheit in der Industrie: PSA-Erkennung mit geringer Latenz in Fertigungsumgebungen.
- Drohnenanalysen: Hochgeschwindigkeits-Objekterkennung auf UAVs für die Landwirtschaft sowie Such- und Rettungseinsätze.
- Verkehrssysteme: Edge-basierte Kennzeichenerkennung und Geschwindigkeitsschätzung.
Empfohlener Arbeitsablauf#
- Trainiere dein Modell mit dem Ultralytics-Trainingsmodus
- Exportiere es mit
model.export(format="axelera")ins Axelera-Format - Überprüfe die Genauigkeit mit
yolo val, um Quantisierungsverluste möglichst gering zu halten - Führe Vorhersagen aus mit
yolo predict, um die Ergebnisse qualitativ zu überprüfen - Stelle das Modell in einer leistungsstarken End-to-End-Pipeline ohne PyTorch-Abhängigkeit bereit — Beispiele für zusammensetzbare Python-Pipelines mit
axelera-rtfindest du unter YOLO-Beispiele für das Voyager SDK.
Gerätestatus prüfen#
Überprüfe, ob dein Axelera-Gerät ordnungsgemäß funktioniert:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdeviceAusführliche Diagnosen findest du in der AxDevice-Dokumentation.
Maximale Leistung#
Modelle werden für jeweils ein Bild kompiliert, und ein einzelnes Bild wird auf einem AIPU-Kern ausgeführt. Wenn du mehrere Bilder an Predict übergibst, werden sie gemeinsam an den Axelera-Scheduler weitergeleitet, der sie auf die Kerne des Geräts verteilt:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=32yolo26n bei imgsz=640 für die 128 COCO128-Bilder in einem Verzeichnis, Metis PCIe, Median aus drei Durchläufen:
| Voyager SDK | Geräte | batch=1 | batch=8 | batch=32 |
|---|---|---|---|---|
| 1.8.0 | 1 | 36 img/s | 45 img/s | 40 img/s |
| 1.8.0 | 2 | 39 img/s | 41 img/s | 41 img/s |
| 1.9.0 | 1 | 41 img/s | 85 img/s | 109 img/s |
| 1.9.0 | 2 | 35 img/s | 83 img/s | 113 img/s |
Bei SDK 1.9 steigert ein Batch den Durchsatz: bei batch=32 um das 2,7-Fache. Version 1.8 bleibt bei jeder Batchgröße bei etwa 40 img/s. Verwende für den Offline-Durchsatz eine große Batchgröße und batch=1, wenn die Latenz pro Bild wichtig ist. Ein zweites Gerät bringt bei predict wenig: Bei batch=32 verbringt jedes Bild bereits etwa 4 ms mit der Vorverarbeitung auf dem Host – genauso viel Zeit wie auf dem Gerät.
Jenseits von predict#
Für Produktionsumgebungen, die maximalen Durchsatz erfordern, bietet das Axelera Voyager SDK:
- Streaming-Inferenz-Pipelines, bei denen mehrere Frames gleichzeitig verarbeitet werden
- Kompilierung eines Modells über mehrere Kerne hinweg
- Kachelbasierte Inferenz für Kameras mit höherer Auflösung
Diese Ausführungspfade überspringen die PyTorch-Vor- und -Nachverarbeitung, die predict auf dem Host ausführt. FPS-Benchmarks findest du in der Modellbibliothek. Für Support beim Produktionseinsatz kannst du Axelera kontaktieren.
Bekannte Probleme#
- Leistungsbeschränkungen bei M.2: Bei großen oder besonders großen Modellen können auf M.2-Beschleunigern aufgrund von Einschränkungen der Stromversorgung Laufzeitfehler auftreten.
Unterstützung findest du in der Axelera-Community.
Häufig gestellte Fragen#
Das Voyager SDK unterstützt den Export von YOLOv8-, YOLO11- und YOLO26-Modellen. Welche Aufgaben die einzelnen Modelle unterstützen, erfährst du unter Unterstützte Aufgaben.
Ja. Jedes Modell, das mit dem Ultralytics-Trainingsmodus trainiert wurde, lässt sich ins Axelera-Format exportieren, sofern es unterstützte Layer und Operationen verwendet.
Das Voyager SDK von Axelera quantisiert Modelle automatisch für die AIPU-Architektur mit gemischter Genauigkeit. Bei den meisten Aufgaben der Objekterkennung überwiegen die Leistungsvorteile (höhere FPS, geringerer Stromverbrauch) deutlich die minimalen Auswirkungen auf den mAP. Die Quantisierung dauert je nach Modellgröße einige Sekunden bis zu mehreren Stunden. Führe nach dem Export
yolo valaus, um die Genauigkeit zu überprüfen.Wir empfehlen 100 bis 400 Bilder. Mehr als 400 bringen keinen zusätzlichen Nutzen und verlängern die Quantisierungszeit. Probiere 100, 200 und 400 Bilder aus, um das optimale Gleichgewicht zu finden.
Das SDK, die Treiber und die Compilerwerkzeuge erhältst du über das Axelera Developer Portal.