Esportazione e distribuzione su Axelera AI#
Ultralytics collabora con Axelera AI per abilitare l'inferenza ad alte prestazioni ed efficiente dal punto di vista energetico sui dispositivi Edge AI. Esporta e distribuisci modelli Ultralytics YOLO direttamente sull'AIPU Metis® usando il Voyager SDK.
Axelera AI fornisce un'accelerazione hardware dedicata per la [visione artificiale](https://ultralytics-translation-0.invalid all'edge, utilizzando un'architettura proprietaria dataflow e l'elaborazione in memoria per offrire fino a 856 TOPS con un basso consumo energetico.
Selezione dell'hardware appropriato#
Axelera AI offre diversi fattori di forma per adattarsi a differenti vincoli di distribuzione. Il grafico seguente aiuta a individuare l'hardware ottimale per la tua distribuzione di Ultralytics YOLO.
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:#fffPortafoglio hardware#
La linea hardware di Axelera è ottimizzata per eseguire Ultralytics YOLO26 e le versioni precedenti con un'elevata efficienza in FPS per watt.
Schede acceleratrici#
Queste schede abilitano l'accelerazione AI sui dispositivi host esistenti, facilitando le distribuzioni brownfield.
| Prodotto | Fattore di forma | Calcolo | Prestazioni (INT8) | Applicazione target |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x AIPU Metis | 856 TOPS | Analisi video ad alta densità, città intelligenti |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x AIPU Metis | 214 TOPS | PC industriali, gestione delle code nel commercio al dettaglio |
| Metis M.2 | M.2 2280 M-Key | 1x AIPU Metis | 214 TOPS | Droni, robotica, dispositivi medici portatili |
| Metis M.2 MAX | M.2 2280 | 1x AIPU Metis | 214 TOPS | Ambienti che richiedono una gestione termica avanzata |
Sistemi integrati#
Per soluzioni chiavi in mano, Axelera collabora con i produttori per fornire sistemi prevalidati per l'AIPU Metis.
- Scheda di calcolo Metis: un dispositivo edge autonomo che abbina l'AIPU Metis a una CPU ARM Rockchip RK3588.
- Workstation: tower aziendali di Dell (Precision 3460XE) e Lenovo (ThinkStation P360 Ultra).
- PC industriali: sistemi rinforzati di Advantech e Aetina, progettati per l'automazione della produzione.
Attività supportate#
La stima della profondità non è supportata: la testa di profondità emette operatori che il compilatore Metis AIPU non può abbassare. La segmentazione di istanza di YOLO26 non è supportata neanche da Ultralytics export, ma può comunque essere distribuita tramite il Voyager SDK come descritto di seguito. La segmentazione semantica di YOLO26 è supportata.
| Attività | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Rilevamento | ✅ | ✅ | ✅ |
| Segmentazione | ✅ | ✅ | ❌ |
| Semantica | ❌ | ❌ | ✅ |
| Profondità | ❌ | ❌ | ❌ |
| Classificazione | ✅ | ✅ | ✅ |
| Posa | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
La segmentazione di istanza di YOLO26 non è ancora supportata tramite il comando di Ultralytics export. Gli utenti che necessitano di yolo26-seg possono effettuare il deployment tramite il Voyager SDK utilizzando deploy.py, il quale fornisce una soluzione temporanea a livello di utente. Il supporto nativo del compilatore verrà aggiunto in una versione futura.
Installazione#
L'esportazione nel formato Axelera richiede:
- Sistema operativo: solo Linux (Ubuntu 22.04/24.04 consigliato)
- Hardware: acceleratore Axelera AI (dispositivi Metis)
- Python: versioni 3.10, 3.11, 3.12 e 3.13
- PyTorch:
torch>=2.8,<2.13 - Voyager SDK: 1.8.0; l'esportazione installa questa versione del kit di sviluppo e l'inferenza installa questa versione del runtime
- Driver del kernel Metis:
metis-dkms1.6.2 o successivo, installato separatamente dapip - Dipendenza di sistema:
sudo apt install libgl1(richiesta da OpenCV, non inclusa tramitepip)
Installazione di Ultralytics#
pip install ultralyticsPer istruzioni dettagliate, consulta la nostra guida all'installazione di Ultralytics. Se riscontri difficoltà, consulta la nostra guida ai problemi comuni.
Installazione del driver Axelera#
-
Aggiungi la chiave del repository Axelera:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Aggiungi il repository ad apt:
Scegli lo snippet appropriato tra quelli riportati di seguito in base al sistema operativo in uso.
# 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" -
Installa il driver e caricalo. L'SDK 1.8 richiede
metis-dkms1.6.2 o successivo, quindi qui viene installata la versione più recente:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Il driver del kernel viene installato separatamente dai pacchetti Python SDK, quindi dopo aver aggiornato il kit di sviluppo devi anche portare il driver al minimo richiesto da quel kit di sviluppo — 1.6.2 per l'SDK 1.8. Nessun controllo viene effettuato al momento dell'installazione e un driver inferiore al minimo lascia il dispositivo non disponibile: axdevice segnala la versione richiesta e non riesce ad aprire il dispositivo.
[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:0Vedi anche Passaggio 3: Installa il driver del kernel Metis. Se stai già eseguendo un kit di sviluppo precedente su Ubuntu, aggiorna il driver e ricarica il modulo del kernel (nessun riavvio richiesto):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisQuindi esegui nuovamente axdevice per confermare che il dispositivo sia rilevato.
Il primo yolo export format=axelera o yolo predict con un modello Axelera scarica e installa automaticamente i pacchetti Axelera SDK. L'operazione può richiedere diversi minuti a seconda della velocità della connessione e durante il download non viene mostrato alcun avanzamento. Per eseguire prima l'installazione manuale:
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/simpleL'SDK 1.8 aumenta la versione del formato del modello compilato .axm, quindi le directory _axelera_model prodotte da un kit di sviluppo precedente vengono rifiutate al momento del caricamento. Esporta nuovamente ciascun modello dopo l'aggiornamento:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.Esportazione dei modelli YOLO su Axelera#
Il formato Axelera supporta le modalità Esporta, Prevedi e Valida. L'inferenza e la convalida vengono eseguite sull'hardware AIPU Metis di Axelera. Esporta il modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.
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")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'axelera' | Formato target per l'hardware AIPU Metis di Axelera. |
imgsz | int o tuple | 640 | Dimensione dell'immagine per l'input del modello. |
batch* | int | 1 | Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
quantize | int o str | 8/auto | Precisione della quantizzazione. 8 (INT8) è obbligatoria e viene abilitata automaticamente per l'AIPU Axelera. Sostituisce i flag deprecati half/int8. Consulta la quantizzazione INT8. |
data | str | None | File YAML del dataset di calibrazione; per la classificazione si usa invece una directory del dataset o il nome di un dataset integrato. Se omesso, Ultralytics seleziona un dataset di calibrazione specifico per l'attività. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione come rapporto, numero di immagini o rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta (sono consigliate 100-400 immagini). |
device | str | None | Dispositivo di esportazione: GPU (device=0) o CPU (device=cpu). |
* L'inferenza con batch>1 richiede Voyager SDK 1.8.0 o successivo; i modelli sono compilati per una singola immagine.
Per tutte le opzioni di esportazione, consulta la documentazione della modalità Esporta.
Struttura dell'output#
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.)Benchmark di Axelera AI#
L'AIPU Metis massimizza il throughput riducendo al minimo il consumo energetico.
| Modello | FPS PCIe Metis (fotogrammi al secondo) | FPS M.2 Metis (fotogrammi al secondo) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmark basati sui dati di Axelera AI. Gli FPS effettivi dipendono dalle dimensioni del modello, dal batching e dalla risoluzione dell'input.
Questi sono dati di throughput dell'host, misurati dal model zoo con la pipeline di streaming del Voyager SDK su un file video a 720p. Una singola chiamata a predict riporta invece la latenza per immagine, che è una quantità diversa.
Applicazioni nel mondo reale#
Ultralytics YOLO sull'hardware Axelera abilita soluzioni avanzate di edge computing:
- Commercio al dettaglio intelligente: Conteggio degli oggetti in tempo reale e analisi delle mappe di calore per ottimizzare i negozi.
- Sicurezza industriale: Rilevamento dei DPI a bassa latenza negli ambienti produttivi.
- Analisi con droni: Rilevamento degli oggetti ad alta velocità sugli UAV per l'agricoltura e le operazioni di ricerca e soccorso.
- Sistemi di gestione del traffico: Riconoscimento delle targhe e stima della velocità basati sull'edge.
Flusso di lavoro consigliato#
- Addestra il tuo modello usando la modalità Addestra di Ultralytics
- Esporta nel formato Axelera usando
model.export(format="axelera") - Convalida l'accuratezza con
yolo valper verificare una perdita minima dovuta alla quantizzazione - Esegui la previsione usando
yolo predictper la convalida qualitativa - Distribuisci in una pipeline end-to-end ad alte prestazioni senza dipendenza da PyTorch — consulta gli esempi di YOLO con Voyager SDK per pipeline Python componibili che usano
axelera-rt
Controllo dello stato del dispositivo#
Verifica che il tuo dispositivo Axelera funzioni correttamente:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePer una diagnostica dettagliata, consulta la documentazione di AxDevice.
Prestazioni massime#
I modelli sono compilati per una singola immagine. Passare diverse immagini a Predict le instrada attraverso lo scheduler di Axelera (Voyager SDK 1.8 o successivo), quindi batch>1 viene eseguito correttamente, sebbene misurato end-to-end su un singolo dispositivo non sia più veloce di batch=1:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Per la produzione che richiede il massimo throughput, il Axelera Voyager SDK offre:
- Pipeline di inferenza in streaming che mantengono diversi fotogrammi in elaborazione
- Compilazione di un modello su più core
- Inferenza suddivisa in riquadri per fotocamere ad alta risoluzione
Consulta il model-zoo per i benchmark in FPS oppure contatta Axelera per il supporto in produzione.
Problemi noti#
- Limitazioni di alimentazione M.2: i modelli grandi o molto grandi possono generare errori in fase di esecuzione sugli acceleratori M.2 a causa dei vincoli dell'alimentazione.
Per ricevere supporto, visita la Axelera Community.
FAQ#
Voyager SDK supporta l'esportazione dei modelli YOLOv8, YOLO11 e YOLO26. Consulta Supported Tasks per conoscere la disponibilità delle attività per ciascun modello.
Sì. Qualsiasi modello addestrato utilizzando Ultralytics Train Mode può essere esportato nel formato Axelera, purché utilizzi layer e operazioni supportati.
Voyager SDK di Axelera quantizza automaticamente i modelli per l'architettura AIPU a precisione mista. Per la maggior parte delle attività di rilevamento degli oggetti, i vantaggi in termini di prestazioni (FPS più elevati e consumi ridotti) superano di gran lunga il minimo impatto sulla mAP. La quantizzazione richiede da pochi secondi a diverse ore, a seconda delle dimensioni del modello. Esegui
yolo valdopo l'esportazione per verificare la precisione.Raccomandiamo da 100 a 400 immagini. Oltre 400 immagini non offre ulteriori vantaggi e aumenta il tempo di quantizzazione. Sperimenta con 100, 200 e 400 immagini per trovare l'equilibrio ottimale.
SDK, driver e strumenti del compilatore sono disponibili tramite Axelera Developer Portal.