Esportazione e distribuzione con Axelera AI#
Ultralytics collabora con Axelera AI per consentire un'inferenza ad alte prestazioni ed elevata efficienza energetica su dispositivi Edge AI. Esporta e distribuisci i modelli Ultralytics YOLO direttamente sul Metis® AIPU utilizzando il Voyager SDK.
Axelera AI fornisce un'accelerazione hardware dedicata per la computer vision all'edge, utilizzando un'architettura dataflow proprietaria e il calcolo in-memory per offrire fino a 856 TOPS con un basso consumo energetico.
Selezionare l'hardware giusto#
Axelera AI offre vari fattori di forma per soddisfare diverse esigenze di distribuzione. Il grafico sottostante ti aiuta a identificare 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:#fffPortfolio hardware#
La gamma di hardware Axelera è ottimizzata per eseguire Ultralytics YOLO26 e le versioni precedenti con un'elevata efficienza in termini di FPS per watt.
Schede acceleratrici#
Queste schede consentono l'accelerazione dell'IA nei dispositivi host esistenti, facilitando le distribuzioni brownfield.
| Prodotto | Fattore di forma | Calcolo | Prestazioni (INT8) | Applicazione target |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | Videoanalisi ad alta densità, smart cities |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | PC industriali, gestione delle code nel retail |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Droni, robotica, dispositivi medici portatili |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Ambienti che richiedono una gestione termica avanzata |
Sistemi integrati#
Per soluzioni chiavi in mano, Axelera collabora con i produttori per fornire sistemi pre-validati per il Metis AIPU.
- Metis Compute Board: Un dispositivo edge standalone che abbina il Metis AIPU 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 industriale.
Attività supportate#
La stima della profondità non è supportata: l'head di profondità emette operatori che il compilatore del Metis AIPU non può abbassare. Anche la segmentazione YOLO26 non è supportata da Ultralytics export, ma può comunque essere distribuita tramite il Voyager SDK come descritto di seguito.
La segmentazione YOLO26 non è ancora supportata tramite il comando Ultralytics export. Gli utenti che necessitano di YOLO26-seg possono effettuare il deploy tramite il Voyager SDK utilizzando deploy.py, che fornisce una soluzione alternativa 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 (consigliato Ubuntu 22.04/24.04)
- Hardware: Acceleratore Axelera AI (dispositivi Metis)
- Python: Versioni 3.10, 3.11, 3.12 e 3.13
- Dipendenza di sistema:
sudo apt install libgl1(richiesto da OpenCV, non incluso tramitepip)
Installazione di Ultralytics#
pip install ultralyticsPer istruzioni dettagliate, consulta la nostra Guida all'installazione di Ultralytics. In caso di problemi, 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 qui sotto per corrispondere 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 l'SDK e carica il driver:
sudo apt update sudo apt install -y metis-dkms=1.5.5 sudo modprobe metis
Il driver del kernel viene installato separatamente dai pacchetti Python SDK, quindi dopo l'aggiornamento dell'SDK (ad esempio da 1.6 a 1.7) è necessario installare la versione del driver corrispondente. Un driver non sincronizzato rende il dispositivo non disponibile: axdevice segnala la versione richiesta e non riesce ad aprire il dispositivo.
[libaxldev.c:285] Found kernel driver version 1.4.16, but at least version 1.4.18 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0Installa la versione del driver corrispondente al tuo SDK — vedi Passaggio 3: Installa il driver del kernel Metis. Se stai già eseguendo un SDK precedente su Ubuntu, aggiorna il driver e ricarica il modulo del kernel (nessun riavvio richiesto):
sudo apt update
sudo apt install -y metis-dkms=1.5.5
sudo rmmod metis
sudo modprobe metisQuindi esegui nuovamente axdevice per confermare che il dispositivo sia stato rilevato.
Il primo yolo export format=axelera o yolo predict con un modello Axelera scaricherà e installerà automaticamente i pacchetti Axelera SDK. Questa operazione potrebbe richiedere diversi minuti a seconda della velocità della connessione e durante il download non viene mostrato alcun avanzamento. Per installare manualmente in anticipo:
pip install axelera-devkit==1.7.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.7.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleEsportazione di modelli YOLO su Axelera#
Il formato Axelera supporta le modalità Export, Predict e Validate. L'inferenza e la convalida vengono eseguite sull'hardware Axelera Metis AIPU. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o validarne la precisione.
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")Il compilatore Axelera richiede numpy<2. Se il tuo ambiente dispone di numpy>=2, il primo yolo export eseguirà automaticamente il downgrade, ma l'esportazione fallirà a causa dello stato obsoleto del modulo. Esegui nuovamente lo stesso comando di esportazione: riuscirà al secondo tentativo.
Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'axelera' | Formato target per l'hardware Axelera Metis AIPU. |
imgsz | int o tuple | 640 | Dimensioni dell'immagine per l'input del modello. |
batch | int | 1 | Specifica la dimensione dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict. |
quantize | int o str | 8/auto | Precisione di quantizzazione. 8 (INT8) è obbligatorio e viene abilitato automaticamente per l'AIPU Axelera. Sostituisce i flag deprecati half/int8. Vedi Quantizzazione INT8. |
data | str | None | Dataset di calibrazione YAML; la classificazione richiede invece una directory di dataset o il nome di un dataset integrato. Se omesso, Ultralytics seleziona un dataset di calibrazione specifico per il task. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione come rapporto, conteggio di immagini o rapporti/conteggi [train, val]; un elenco limita train o val, mentre test rimane completo (consigliate 100-400 immagini). |
device | str | None | Dispositivo di esportazione: GPU (device=0) o CPU (device=cpu). |
Per tutte le opzioni di esportazione, consulta la documentazione della modalità Export.
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#
Il Metis AIPU massimizza il throughput riducendo al contempo il consumo energetico.
| Modello | FPS (frame al secondo) Metis PCIe | FPS (frame al secondo) Metis M.2 |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmark basati su dati Axelera AI. Gli FPS effettivi dipendono dalle dimensioni del modello, dal batching e dalla risoluzione dell'input.
Applicazioni nel mondo reale#
Ultralytics YOLO su hardware Axelera abilita soluzioni avanzate di edge computing:
- Smart Retail: Conteggio degli oggetti in tempo reale e analisi di mappe termiche per l'ottimizzazione del punto vendita.
- Sicurezza industriale: Rilevamento dei DPI a bassa latenza in ambienti di produzione.
- Analisi con droni: Rilevamento di oggetti ad alta velocità su UAV per l'agricoltura e la ricerca e soccorso.
- Sistemi di traffico: Riconoscimento delle targhe e stimazione della velocità basati sull'edge.
Flusso di lavoro consigliato#
- Allena il tuo modello utilizzando la modalità di training di Ultralytics
- Esporta nel formato Axelera utilizzando
model.export(format="axelera") - Convalida la precisione con
yolo valper verificare una perdita di quantizzazione minima - Predici utilizzando
yolo predictper la convalida qualitativa - Distribuisci su una pipeline end-to-end ad alte prestazioni senza dipendenze da PyTorch — consulta gli esempi di YOLO su Voyager SDK per pipeline Python componibili che utilizzano
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.
Massime prestazioni#
Questa integrazione utilizza una configurazione a singolo core per garantire la compatibilità. Per la produzione che richiede la massima produttività, il Voyager SDK di Axelera offre:
- Utilizzo multi-core (quad-core Metis AIPU)
- Pipeline di inferenza in streaming
- Inferenza a riquadri (tiled) per telecamere ad alta risoluzione
Consulta il model-zoo per i benchmark FPS o contatta Axelera per il supporto di produzione.
Problemi noti#
- Limitazioni di alimentazione M.2: I modelli di grandi o extra-grandi dimensioni possono riscontrare errori di runtime sugli acceleratori M.2 a causa dei vincoli dell'alimentatore.
Per supporto, visita la Community di Axelera.
FAQ#
Il Voyager SDK supporta l'esportazione di modelli YOLOv8, YOLO11 e YOLO26. Consulta Attività supportate per la disponibilità delle attività per ciascun modello.
Sì. Qualsiasi modello addestrato utilizzando la modalità Train di Ultralytics può essere esportato nel formato Axelera, a condizione che utilizzi layer e operazioni supportati.
Il Voyager SDK di Axelera quantizza automaticamente i modelli per l'architettura AIPU a precisione mista. Per la maggior parte delle attività di rilevamento di oggetti, i vantaggi in termini di prestazioni (FPS più elevati, minor consumo energetico) superano significativamente 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.Consigliamo da 100 a 400 immagini. Più di 400 non offrono ulteriori vantaggi e aumentano il tempo di quantizzazione. Sperimenta con 100, 200 e 400 immagini per trovare l'equilibrio ottimale.
L'SDK, i driver e gli strumenti del compilatore sono disponibili tramite il Portale per sviluppatori di Axelera.