Exportación y despliegue de Axelera AI#
Ultralytics colabora con Axelera AI para permitir inferencia de alto rendimiento y bajo consumo energético en dispositivos de Edge AI. Exporta y despliega Ultralytics YOLO models directamente en la Metis® AIPU utilizando el Voyager SDK.
Axelera AI ofrece aceleración de hardware dedicada para computer vision en el extremo, utilizando una arquitectura de flujo de datos patentada y in-memory computing para ofrecer hasta 856 TOPS con un bajo consumo de energía.
Selección del hardware adecuado#
Axelera AI ofrece varios factores de forma para adaptarse a diferentes limitaciones de despliegue. El siguiente gráfico ayuda a identificar el hardware óptimo para tu despliegue de 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:#fffCartera de hardware#
La gama de hardware de Axelera está optimizada para ejecutar Ultralytics YOLO26 y versiones anteriores con una alta eficiencia de FPS por vatio.
Tarjetas aceleradoras#
Estas tarjetas permiten la aceleración de IA en dispositivos host existentes, facilitando brownfield deployments.
| Producto | Factor de forma | Cómputo | Rendimiento (INT8) | Aplicación objetivo |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | video analytics de alta densidad, ciudades inteligentes |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | PC industriales, queue management en comercios |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Drones, robótica, dispositivos médicos portátiles |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Entornos que requieren una gestión térmica avanzada |
Sistemas integrados#
Para soluciones integrales, Axelera colabora con fabricantes para proporcionar sistemas prevalidos para la Metis AIPU.
- Metis Compute Board: Un dispositivo edge autónomo que combina la Metis AIPU con una CPU ARM Rockchip RK3588.
- Estaciones de trabajo: Torres empresariales de Dell (Precision 3460XE) y Lenovo (ThinkStation P360 Ultra).
- Industrial PCs: Sistemas robustos de Advantech y Aetina diseñados para manufacturing automation.
Tareas compatibles#
La estimación de profundidad no es compatible: el encabezado de profundidad emite operadores que el compilador de Metis AIPU no puede reducir. La segmentación de YOLO26 tampoco es compatible con Ultralytics export, pero aun así se puede desplegar a través del Voyager SDK como se describe a continuación.
La segmentación de YOLO26 aún no es compatible a través del comando de Ultralytics export. Los usuarios que necesiten YOLO26-seg pueden desplegarlo mediante el Voyager SDK utilizando deploy.py, lo que proporciona una solución provisional en el espacio de usuario. El soporte nativo del compilador se añadirá en una versión futura.
Instalación#
La exportación al formato Axelera requiere:
- Sistema operativo: Solo Linux (se recomienda Ubuntu 22.04/24.04)
- Hardware: Acelerador de Axelera AI (Metis devices)
- Python: Versiones 3.10, 3.11, 3.12 y 3.13
- Dependencia del sistema:
sudo apt install libgl1(requerido por OpenCV, no incluido mediantepip)
Instalación de Ultralytics#
pip install ultralyticsPara obtener instrucciones detalladas, consulta nuestra Ultralytics Installation guide. Si encuentras dificultades, consulta nuestra Common Issues guide.
Instalación del controlador de Axelera#
-
Añade la clave del repositorio de Axelera:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Añade el repositorio a apt:
Elige el fragmento correspondiente de abajo para que coincida con el SO que estás utilizando.
# 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" -
Instala el SDK y carga el controlador:
sudo apt update sudo apt install -y metis-dkms=1.5.5 sudo modprobe metis
El controlador del núcleo se instala por separado de los paquetes del SDK de Python, por lo que después de actualizar el SDK (por ejemplo, de 1.6 a 1.7) debes instalar la versión del controlador correspondiente. Un controlador desincronizado deja el dispositivo no disponible: axdevice informa la versión requerida y no logra abrir el 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:0Instala la versión del controlador que coincida con tu SDK; consulta Step 3: Install the Metis kernel driver. Si ya estás ejecutando un SDK anterior en Ubuntu, actualiza el controlador y recarga el módulo del núcleo (no requiere reinicio):
sudo apt update
sudo apt install -y metis-dkms=1.5.5
sudo rmmod metis
sudo modprobe metisA continuación, vuelve a ejecutar axdevice para confirmar que el dispositivo se ha detectado.
El primer yolo export format=axelera o yolo predict con un modelo de Axelera descargará e instalará automáticamente los paquetes del SDK de Axelera. Esto puede tardar varios minutos dependiendo de la velocidad de tu conexión, y no se muestra ningún progreso durante la descarga. Para realizar la instalación manualmente de antemano:
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/simpleExportación de modelos YOLO a Axelera#
El formato de Axelera es compatible con los modos Export, Predict y Validate. La inferencia y la validación se ejecutan en el hardware Axelera Metis AIPU. Exporta tu modelo y luego cárgalo para ejecutar la inferencia o validar su precisión.
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")El compilador de Axelera requiere numpy<2. Si tu entorno tiene numpy>=2, el primer yolo export lo degradará automáticamente, pero la exportación fallará debido al estado obsoleto del módulo. Simplemente vuelve a ejecutar el mismo comando de exportación; se completará con éxito en el segundo intento.
Argumentos de exportación#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'axelera' | Formato de destino para el hardware Axelera Metis AIPU. |
imgsz | int o tuple | 640 | Tamaño de imagen para la entrada del modelo. |
batch | int | 1 | Especifica el tamaño de inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en el modo predict. |
quantize | int o str | 8/auto | Precisión de cuantización. 8 (INT8) es obligatorio y se activa automáticamente para la Axelera AIPU. Reemplaza los indicadores obsoletos half/int8. Consulta INT8 quantization. |
data | str | None | YAML del conjunto de datos de calibración; en su lugar, la clasificación toma un directorio de conjuntos de datos o un nombre de conjunto de datos integrado. Si se omite, Ultralytics selecciona un conjunto de datos de calibración específico de la tarea. |
fraction | float, int o list | 1.0 | Subconjunto de calibración como proporción, recuento de imágenes o proporciones/recuentos de [train, val]; una lista limita train o val, mientras que test permanece completo (se recomiendan entre 100 y 400 imágenes). |
device | str | None | Dispositivo de exportación: GPU (device=0) o CPU (device=cpu). |
Para todas las opciones de exportación, consulta la Export Mode documentation.
Estructura de salida#
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.)Benchmarks de Axelera AI#
La Metis AIPU maximiza el rendimiento y minimiza el consumo de energía.
| Modelo | FPS de Metis PCIe (fotogramas por segundo) | FPS de Metis M.2 (fotogramas por segundo) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmarks basados en datos de Axelera AI. Los FPS reales dependen del tamaño del modelo, el procesamiento por lotes y la resolución de entrada.
Aplicaciones en el mundo real#
Ultralytics YOLO en hardware Axelera permite soluciones avanzadas de computación edge:
- Smart Retail: object counting en tiempo real y heatmap analytics para la optimización de tiendas.
- Industrial Safety: PPE detection de baja latencia en entornos de fabricación.
- Drone Analytics: object detection de alta velocidad en vehículos aéreos no tripulados para agriculture y búsqueda y rescate.
- Traffic Systems: license plate recognition y speed estimation basados en el extremo.
Flujo de trabajo recomendado#
- Entrena tu modelo usando el modo de entrenamiento de Ultralytics
- Exporta al formato de Axelera utilizando
model.export(format="axelera") - Valida la precisión con
yolo valpara comprobar que la pérdida por cuantización sea mínima - Predice usando
yolo predictpara la validación cualitativa - Despliega en una canalización de extremo a extremo de alto rendimiento sin dependencia de PyTorch; consulta los YOLO on Voyager SDK examples para ver canalizaciones de Python componibles usando
axelera-rt
Comprobación del estado del dispositivo#
Verifica que tu dispositivo Axelera funcione correctamente:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePara diagnósticos detallados, consulta la AxDevice documentation.
Máximo rendimiento#
Esta integración utiliza una configuración de un solo núcleo por compatibilidad. Para producción que requiera el máximo rendimiento, el Axelera Voyager SDK ofrece:
- Utilización de múltiples núcleos (Metis AIPU de cuatro núcleos)
- Canalizaciones de inferencia en streaming
- Inferencia en mosaico (tiled) para cámaras de alta resolución
Consulta el model-zoo para ver las comparativas de FPS o contact Axelera para obtener soporte de producción.
Problemas conocidos#
- Limitaciones de energía en M.2: Los modelos grandes o extra grandes pueden encontrar errores de tiempo de ejecución en aceleradores M.2 debido a las limitaciones de la fuente de alimentación.
Para obtener asistencia, visita la Axelera Community.
FAQ#
El Voyager SDK admite la exportación de modelos YOLOv8, YOLO11 y YOLO26. Consulta Supported Tasks para conocer la disponibilidad de tareas por modelo.
Sí. Cualquier modelo entrenado utilizando Ultralytics Train Mode se puede exportar al formato de Axelera, siempre que utilice capas y operaciones compatibles.
El Voyager SDK de Axelera cuantiza automáticamente los modelos para la arquitectura AIPU de precisión mixta. Para la mayoría de las tareas de object detection, las ganancias de rendimiento (mayor FPS, menor consumo) superan significativamente el impacto mínimo en el mAP. La cuantización tarda desde unos segundos hasta varias horas dependiendo del tamaño del modelo. Ejecuta
yolo valdespués de la exportación para verificar la precisión.Recomendamos entre 100 y 400 imágenes. Más de 400 no proporcionan ningún beneficio adicional y aumentan el tiempo de cuantificación. Experimenta con 100, 200 y 400 imágenes para encontrar el equilibrio óptimo.
El SDK, los controladores y las herramientas de compilación están disponibles a través del Axelera Developer Portal.