Export und Bereitstellung mit Axelera AI#
Ultralytics arbeitet mit Axelera AI zusammen, um leistungsstarke und energieeffiziente Inferenz auf Edge-AI-Geräten zu ermöglichen. Exportiere und stelle Ultralytics YOLO-Modelle direkt auf der Metis® AIPU mit dem Voyager SDK bereit.
Axelera AI bietet dedizierte Hardwarebeschleunigung für Computer Vision am Netzwerkrand. Dabei kommen eine proprietäre Datenflussarchitektur und In-Memory-Computing zum Einsatz, um bei geringem Stromverbrauch bis zu 856 TOPS zu erreichen.
Die richtige Hardware auswählen#
Axelera AI bietet verschiedene Formfaktoren für unterschiedliche Anforderungen bei der Bereitstellung. Die folgende Übersicht hilft dir, die optimale Hardware für deine Bereitstellung von Ultralytics YOLO zu bestimmen.
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:#fffHardwareportfolio#
Die Axelera-Hardware wurde für die effiziente Ausführung von Ultralytics YOLO26 und älteren Versionen mit hoher FPS-pro-Watt-Effizienz optimiert.
Beschleunigerkarten#
Diese Karten ermöglichen die AI-Beschleunigung in vorhandenen Hostgeräten und erleichtern Brownfield-Bereitstellungen.
| Produkt | Formfaktor | Rechenleistung | Leistung (INT8) | Zielanwendung |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | Hochdichte Videoanalyse, Smart Cities |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | Industrie-PCs, Warteschlangenmanagement 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 mit erweiterten Anforderungen an das Wärmemanagement |
Integrierte Systeme#
Für schlüsselfertige Lösungen arbeitet Axelera mit Herstellern zusammen, um für die Metis AIPU vorab validierte Systeme bereitzustellen.
- 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, die für die Fertigungsautomatisierung entwickelt wurden.
Unterstützte Aufgaben#
Tiefenschätzung wird nicht unterstützt: Der Tiefenkopf gibt Operatoren aus, die der Metis AIPU-Compiler nicht kompilieren kann. YOLO26-Instanzsegmentierung wird von Ultralytics export ebenfalls nicht unterstützt, kann jedoch wie unten beschrieben über das Voyager SDK bereitgestellt werden. YOLO26-Semantiksegmentierung wird unterstützt.
| Aufgabe | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Erkennen | ✅ | ✅ | ✅ |
| Segmentieren | ✅ | ✅ | ❌ |
| Semantisch | ❌ | ❌ | ✅ |
| Tiefe | ❌ | ❌ | ❌ |
| Klassifizieren | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
YOLO26-Instanzsegmentierung wird über den Befehl Ultralytics export noch nicht unterstützt. Benutzer, die yolo26-seg benötigen, können die Bereitstellung über das Voyager SDK mit deploy.py durchführen, was eine Workaround-Lösung im Userspace bereitstellt. Native Compiler-Unterstützung wird in einem zukünftigen Release hinzugefügt.
Installation#
Der Export in das Axelera-Format erfordert:
- 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; Export installiert diese Devkit-Version und die Inferenz installiert diese Laufzeitversion
- Metis-Kernel-Treiber:
metis-dkms1.6.2 oder neuer, separat vonpipinstalliert - Systemabhängigkeit:
sudo apt install libgl1(von OpenCV benötigt, nicht überpipenthalten)
Installation von Ultralytics#
pip install ultralyticsAusführliche Anweisungen findest du in unserem Ultralytics-Installationsleitfaden. Wenn du auf Schwierigkeiten stößt, konsultiere unseren Leitfaden zu häufigen Problemen.
Installation des Axelera-Treibers#
-
Füge den Schlüssel des Axelera-Repositorys 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 Abschnitt 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 benötigt
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 separat von den Python-SDK-Paketen installiert. Nach einem Upgrade des SDK musst du den Treiber daher ebenfalls auf das Minimum dieses SDKs anbringen – 1.6.2 für SDK 1.8. Nichts überprüft dies zum Installationszeitpunkt, und ein Treiber unter dem Minimum führt dazu, dass das Gerät nicht verfügbar ist: axdevice meldet die erforderliche Version und schlägt fehl, wenn versucht wird, das Gerät zu ö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 bereits ein älteres SDK auf Ubuntu ausführen, aktualisiere den Treiber und lade das Kernel-Modul neu (kein Neustart 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 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 installierst du sie vorher manuell:
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 kompilierte .axm-Modellformatversion, sodass _axelera_model-Verzeichnisse, die mit einem älteren SDK erstellt wurden, beim Laden abgelehnt werden. 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 nach Axelera exportieren#
Das Axelera-Format unterstützt die Modi Export, Predict und Validate. Inferenz und Validierung werden auf Axelera-Metis-AIPU-Hardware ausgeführt. Exportiere dein Modell und lade anschließend das exportierte Modell, um Inferenz auszuführen oder seine Genauigkeit zu validieren.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to Axelera format
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Exportargumente#
| Argument | Typ | Standardwert | 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 | Legt die Batchgröße für die Inferenz des exportierten Modells oder die maximale Anzahl der Bilder fest, die das exportierte Modell im Modus predict gleichzeitig verarbeitet. |
quantize | int oder str | 8/auto | 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 der 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 | Kalibrierungsanteil als Verhältnis, Bildanzahl oder [train, val, test]-Verhältnisse/-Anzahlen. Zweielementige Listen lassen test vollständig, während 0 es überspringt (100–400 Bilder empfohlen). |
device | str | None | Exportgerät: GPU (device=0) oder CPU (device=cpu). |
* Die Inferenz mit batch>1 erfordert das Voyager SDK 1.8.0 oder neuer; 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 bei gleichzeitiger Minimierung des Energieverbrauchs.
| 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 auf Grundlage von Daten von Axelera AI. Die tatsächliche FPS hängt von Modellgröße, Batchverarbeitung und Eingabeauflösung ab.
Dies sind Host-Durchsatzwerte, gemessen vom Model Zoo mit der Streaming-Pipeline des Voyager SDK über eine 720p-Videodatei. Ein einzelner predict-Aufruf meldet stattdessen die Latenz pro Bild, was eine andere Größe ist.
Anwendungen in der Praxis#
Ultralytics YOLO auf Axelera-Hardware ermöglicht fortschrittliche Lösungen für die Datenverarbeitung am Netzwerkrand:
- Intelligenter Einzelhandel: Echtzeit-Objektzählung und Heatmap-Analyse zur Optimierung von Geschäften.
- Arbeitssicherheit in der Industrie: Erkennung persönlicher Schutzausrüstung (PPE) mit geringer Latenz in Fertigungsumgebungen.
- Drohnenanalyse: Hochgeschwindigkeit-Objekterkennung auf UAVs für Landwirtschaft sowie Such- und Rettungseinsätze.
- Verkehrssysteme: Kennzeichenerkennung und Geschwindigkeitsschätzung am Netzwerkrand.
Empfohlener Arbeitsablauf#
- Trainiere dein Modell mit dem Trainingsmodus von Ultralytics.
- Exportiere es mit
model.export(format="axelera")in das Axelera-Format. - Validiere die Genauigkeit mit
yolo val, um einen minimalen Quantisierungsverlust zu überprüfen. - Führe Vorhersagen aus mit
yolo predictzur qualitativen Validierung. - Stelle das Modell ohne PyTorch-Abhängigkeit in einer leistungsstarken End-to-End-Pipeline bereit – siehe die YOLO-Beispiele für das Voyager SDK für kombinierbare Python-Pipelines mit
axelera-rt.
Zustandsprüfung des Geräts#
Ü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 Diagnoseinformationen findest du in der AxDevice-Dokumentation.
Maximale Leistung#
Modelle werden für ein einzelnes Bild kompiliert. Das Übergeben mehrerer Bilder an Predict leitet diese durch den Axelera-Planer (Voyager SDK 1.8 oder neuer), sodass batch>1 korrekt ausgeführt wird, obwohl es Ende-zu-Ende auf einem einzelnen Gerät gemessen nicht schneller als batch=1 ist:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Für die Produktion, die maximalen Durchsatz erfordert, bietet das Axelera Voyager SDK:
- Streaming-Inferenz-Pipelines, die mehrere Frames gleichzeitig verarbeiten
- Kompilierung eines Modells über mehrere Kerne hinweg
- Kachelbasierte Inferenz für Kameras mit höherer Auflösung
FPS-Benchmarks findest du im model-zoo; für Support im Produktionseinsatz kontaktiere 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.
Support findest du in der Axelera Community.
FAQ#
Das Voyager SDK unterstützt den Export von YOLOv8-, YOLO11- und YOLO26-Modellen. Unter Unterstützte Aufgaben findest du die Verfügbarkeit der Aufgaben für die einzelnen Modelle.
Ja. Jedes Modell, das mit dem Trainingsmodus von Ultralytics trainiert wurde, kann in das Axelera-Format exportiert werden, sofern es unterstützte Layer und Operationen verwendet.
Das Voyager SDK von Axelera quantisiert Modelle automatisch für die AIPU-Architektur mit gemischter Präzision. Bei den meisten Aufgaben zur Objekterkennung überwiegen die Leistungsgewinne (höhere FPS, geringerer Stromverbrauch) die minimale Auswirkung auf den mAP deutlich. Die Quantisierung dauert je nach Modellgröße einige Sekunden bis mehrere Stunden. Führe nach dem Export
yolo valaus, um die Genauigkeit zu überprüfen.Wir empfehlen 100 bis 400 Bilder. Mehr als 400 Bilder bieten keinen zusätzlichen Nutzen und verlängern die Quantisierungsdauer. Probiere 100, 200 und 400 Bilder aus, um das optimale Gleichgewicht zu finden.
Das SDK, die Treiber und die Compilerwerkzeuge sind über das Axelera Developer Portal verfügbar.