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.
graph TD
A[Start: Select Deployment Target]:::start --> B{Device Type?}:::decide
B -->|Edge Server / Workstation| C{Throughput Needs?}:::decide
B -->|Embedded / Robotics| D{Space Constraints?}:::decide
B -->|Standalone / R&D| E[Dev Kits & Systems]:::proc
C -->|Max Density <br> 30+ Streams| F[**Metis PCIe x4**<br>856 TOPS]:::out
C -->|Standard PC <br> Low Profile| G[**Metis PCIe x1**<br>214 TOPS]:::out
D -->|Drones & Handhelds| H[**Metis M.2**<br>2280 M-Key]:::out
D -->|High Performance Embedded| I[**Metis M.2 MAX**<br>Extended Thermal]:::out
E -->|ARM-based All-in-One| J[**Metis Compute Board**<br>RK3588 + AIPU]:::out
E -->|Prototyping| K[**Arduino Portenta x8**<br>Integration Kit]:::out
click F "https://store.axelera.ai/"
click G "https://store.axelera.ai/"
click H "https://store.axelera.ai/"
click J "https://store.axelera.ai/"
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fffHardwareangebot#
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#
Tiefenschätzung wird nicht unterstützt: Der Tiefenkopf gibt Operatoren aus, die der Compiler der Metis AIPU nicht umsetzen kann. Auch die Instanzsegmentierung mit YOLO26 wird von Ultralytics export nicht unterstützt, kann aber wie unten beschrieben weiterhin über das Voyager SDK bereitgestellt werden. Die semantische Segmentierung mit YOLO26 wird unterstützt.
| Aufgabe | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Erkennung | ✅ | ✅ | ✅ |
| Segmentierung | ✅ | ✅ | ❌ |
| Semantik | ❌ | ❌ | ✅ |
| Tiefe | ❌ | ❌ | ❌ |
| Klassifizierung | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Die Instanzsegmentierung mit YOLO26 wird derzeit nicht über den Ultralytics-Befehl export unterstützt. Benutzer, die yolo26-seg benötigen, können das Modell über das Voyager SDK mithilfe von deploy.py bereitstellen. Dies bietet eine Umgehungslösung im Benutzerbereich. Die native Compilerunterstützung wird in einer künftigen Version ergänzt.
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.13 - Voyager SDK: 1.8.0; beim Export wird diese Version des Devkits installiert, bei der Inferenz diese Version der Laufzeitumgebung
- Metis-Kernel-Treiber:
metis-dkms1.6.2 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.8 erfordert
metis-dkms1.6.2 oder neuer; daher wird hier die neueste Version installiert:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Der Kernel-Treiber wird getrennt von den Python-SDK-Paketen installiert. Nach einem SDK-Upgrade musst du daher auch den Treiber auf die Mindestversion für dieses SDK aktualisieren – bei SDK 1.8 ist das Version 1.6.2. Dies wird bei der Installation nicht geprüft. Ist der Treiber älter als die Mindestversion, bleibt das Gerät nicht verfügbar: axdevice meldet die erforderliche Version und kann das Gerät nicht öffnen.
[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 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.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.8 erhöht die Versionsnummer des kompilierten .axm-Modellformats. Daher werden Verzeichnisse _axelera_model, die mit einem älteren SDK erstellt wurden, beim Laden zurückgewiesen. Exportiere jedes Modell nach dem Upgrade erneut:
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 | Gibt die Batchgröße für die Inferenz des Exportmodells oder die Höchstzahl der Bilder an, die das exportierte Modell gleichzeitig im predict-Modus verarbeiten kann. |
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). |
* Für die Inferenz mit batch>1 ist Voyager SDK 1.8.0 oder neuer erforderlich; Modelle werden für ein einzelnes Bild kompiliert.
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 ein einzelnes Bild kompiliert. Wenn du mehrere Bilder an Predict übergibst, leitet der Axelera-Scheduler sie weiter (Voyager SDK 1.8 oder neuer). Daher wird batch>1 zwar korrekt ausgeführt, ist bei Messungen von Anfang bis Ende auf einem einzelnen Gerät jedoch nicht schneller als batch=1:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Fü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
FPS-Benchmarks findest du in der Modellübersicht. Für Unterstützung beim Produktionseinsatz wende dich an Axelera.
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.