Ir al contenido

Guía de inicio rápido: NVIDIA Spark con Ultralytics YOLO11

Esta guía completa ofrece instrucciones detalladas para implementar Ultralytics YOLO11 NVIDIA Spark, el superordenador de IA de escritorio compacto NVIDIA. Además, muestra pruebas de rendimiento para demostrar las capacidades de YOLO11 este potente sistema.

NVIDIA Spark

Nota

Esta guía se ha probado con NVIDIA Spark Founders Edition ejecutando DGX OS basado en Ubuntu. Se espera que funcione con las últimas versiones de DGX OS.

¿Qué es NVIDIA Spark?

NVIDIA Spark es un superordenador de IA de escritorio compacto equipado con el superchip NVIDIA Grace Blackwell. Ofrece hasta 1 petaFLOP de rendimiento informático de IA con precisión FP4, lo que lo hace ideal para desarrolladores, investigadores y científicos de datos que necesitan potentes capacidades de IA en un formato de escritorio.

Especificaciones clave

EspecificaciónDetalles
Rendimiento de la IAHasta 1 PFLOP (FP4)
GPUArquitectura NVIDIA con Tensor de quinta generación y núcleos RT de cuarta generación.
CPUProcesador Arm de 20 núcleos (10 Cortex-X925 + 10 Cortex-A725)
MemoriaMemoria unificada del sistema LPDDR5x de 128 GB, interfaz de 256 bits, 4266 MHz, ancho de banda de 273 GB/s.
AlmacenamientoNVMe M.2 de 1 TB o 4 TB con autocifrado
Red1x RJ-45 (10 GbE), ConnectX-7 Smart NIC, Wi-Fi 7, Bluetooth 5.4
Conectividad4 puertos USB tipo C, 1 puerto HDMI 2.1a, audio multicanal HDMI
Procesamiento de vídeo1x NVENC, 1x NVDEC

DGX OS

NVIDIA OS es una distribución Linux personalizada que proporciona una base de sistema operativo estable, probada y compatible para ejecutar aplicaciones de inteligencia artificial, aprendizaje automático y análisis en sistemas DGX. Incluye:

  • Una base Linux robusta optimizada para cargas de trabajo de IA.
  • Controladores y ajustes del sistema preconfigurados para NVIDIA .
  • Actualizaciones de seguridad y capacidades de mantenimiento del sistema
  • Compatibilidad con el amplio ecosistema NVIDIA .

DGX OS sigue un calendario de lanzamientos regular, con actualizaciones que suelen proporcionarse dos veces al año (aproximadamente en febrero y agosto), y parches de seguridad adicionales entre los lanzamientos principales.

Panel de control DGX

DGX Spark incluye un panel de control DGX integrado que ofrece:

  • Supervisión del sistema en tiempo real: resumen de las métricas operativas actuales del sistema.
  • Actualizaciones del sistema: Posibilidad de aplicar actualizaciones directamente desde el panel de control.
  • Configuración del sistema: Cambiar el nombre del dispositivo y otras configuraciones
  • JupyterLab integrado: acceda a los cuadernos Jupyter locales para el desarrollo.

Panel de control NVIDIA

Acceso al panel de control

Haga clic en el botón «Mostrar aplicaciones» situado en la esquina inferior izquierda del escritorio de Ubuntu y, a continuación, seleccione «DGX Dashboard» para abrirlo en su navegador.

# Open an SSH tunnel
ssh -L 11000:localhost:11000 <username>@<IP or spark-abcd.local>

# Then open in browser
# http://localhost:11000

Después de conectarse con NVIDIA , haga clic en el botón «DGX Dashboard» para abrir el panel de control en http://localhost:11000.

JupyterLab integrado

El panel de control incluye una instancia integrada de JupyterLab que crea automáticamente un entorno virtual e instala los paquetes recomendados al iniciarse. A cada cuenta de usuario se le asigna un puerto dedicado para el acceso a JupyterLab.

Inicio rápido con Docker

La forma más rápida de empezar a utilizar Ultralytics YOLO11 NVIDIA Spark es ejecutarlo con imágenes Docker precompiladas. La misma imagen Docker que es compatible con Jetson AGX Thor (JetPack 7.0) funciona en DGX Spark con DGX OS.

t=ultralytics/ultralytics:latest-nvidia-arm64
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia --gpus all $t

Una vez hecho esto, vaya a la sección Usar TensorRT NVIDIA Spark.

Comenzar con la instalación nativa

Para una instalación nativa sin Docker, siga estos pasos.

Instalar el paquete Ultralytics

Aquí instalaremos Ultralytics en DGX Spark con dependencias opcionales para poder exportar el PyTorch a otros formatos diferentes. Nos centraremos principalmente en TensorRT NVIDIA TensorRT , ya que TensorRT que podamos obtener el máximo rendimiento de DGX Spark.

  1. Actualizar la lista de paquetes, instalar pip y actualizar a la última versión

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. Instalar ultralytics paquete pip con dependencias opcionales

    pip install ultralytics[export]
    
  3. Reiniciar el dispositivo

    sudo reboot
    

Instalar PyTorch y Torchvision

ultralytics anterior instalará Torch Torchvision. Sin embargo, es posible que estos paquetes instalados a través de pip no estén totalmente optimizados para la arquitectura ARM64 de DGX Spark con CUDA . Por lo tanto, recomendamos instalar las versiones compatibles CUDA :

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

Información

Al ejecutar PyTorch .9. PyTorch en NVIDIA Spark, es posible que se encuentre con lo siguiente: UserWarning al inicializar CUDA por ejemplo, al ejecutar yolo checks, yolo predict, etc.):

UserWarning: Found GPU0 NVIDIA GB10 which is of cuda capability 12.1.
Minimum and Maximum cuda capability supported by this version of PyTorch is (8.0) - (12.0)

Esta advertencia puede ignorarse sin problema. Para solucionar este problema de forma permanente, se ha enviado una corrección en PyTorch #164590 que se incluirá en la versión PyTorch . PyTorch .

Instalar onnxruntime-gpu

El onnxruntime-gpu paquete alojado en PyPI no tiene aarch64 binarios para sistemas ARM64. Por lo tanto, debemos instalar este paquete manualmente. Este paquete es necesario para algunas de las exportaciones.

Aquí descargaremos e instalaremos onnxruntime-gpu 1.24.0 con Python3.12 soporte.

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whl

Utilice TensorRT NVIDIA Spark

De entre todos los formatos de exportación de modelos compatibles con Ultralytics, TensorRT el mayor rendimiento de inferencia en NVIDIA Spark, por lo que es nuestra principal recomendación para implementaciones. Para obtener instrucciones de configuración y uso avanzado, consulte nuestra guía TensorRT de TensorRT .

Convertir el modelo a TensorRT y ejecutar la inferencia

El modelo YOLO11n en formato PyTorch se convierte a TensorRT para ejecutar la inferencia con el modelo exportado.

Ejemplo

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model to TensorRT
model.export(format="engine")  # creates 'yolo11n.engine'

# Load the exported TensorRT model
trt_model = YOLO("yolo11n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TensorRT format
yolo export model=yolo11n.pt format=engine # creates 'yolo11n.engine'

# Run inference with the exported model
yolo predict model=yolo11n.engine source='https://ultralytics.com/images/bus.jpg'

Nota

Visite la página de exportación para acceder a argumentos adicionales al exportar modelos a diferentes formatos de modelo

YOLO11 NVIDIA Spark YOLO11

Ultralytics ejecutó YOLO11 en múltiples formatos de modelo para medir la velocidad y la precisión: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF , MNN, NCNN y ExecuTorch. Las pruebas de rendimiento se ejecutaron en NVIDIA Spark con una precisión FP32 y un tamaño de imagen de entrada predeterminado de 640.

Tabla de comparación detallada

La siguiente tabla muestra los resultados de referencia de cinco modelos diferentes (YOLO11n, YOLO11s, YOLO11m, YOLO11l, YOLO11x) en múltiples formatos, lo que nos proporciona el estado, el tamaño, la métrica mAP50(B) y el tiempo de inferencia para cada combinación.

Rendimiento

FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch5.40.50712.67
TorchScript10.50.50832.62
ONNX10.20.50745.92
OpenVINO10.40.505814.95
TensorRT (FP32)12.80.50851.95
TensorRT (FP16)7.00.50681.01
TensorRT (INT8)18.60.48801.62
TF SavedModel25.70.507636.39
TF GraphDef10.30.507641.06
TF Lite10.30.507564.36
MNN10.10.507512.14
NCNN10.20.504112.31
ExecuTorch10.20.507527.61
FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch18.40.57675.38
TorchScript36.50.57815.48
ONNX36.30.57848.17
OpenVINO36.40.580927.12
TensorRT (FP32)39.80.57833.59
TensorRT (FP16)20.10.58001.85
TensorRT (INT8)17.50.56641.88
TF SavedModel90.80.578266.63
TF GraphDef36.30.578271.67
TF Lite36.30.5782187.36
MNN36.20.577527.05
NCNN36.20.580626.26
ExecuTorch36.20.578254.73
FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch38.80.625411.14
TorchScript77.30.630412.00
ONNX76.90.630413.83
OpenVINO77.10.628462.44
TensorRT (FP32)79.90.63056.96
TensorRT (FP16)40.60.63133.14
TensorRT (INT8)26.60.62043.30
TF SavedModel192.40.6306139.85
TF GraphDef76.90.6306146.76
TF Lite76.90.6306568.18
MNN76.80.630667.67
NCNN76.80.630860.49
ExecuTorch76.90.6306120.37
FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch49.00.636613.95
TorchScript97.60.639915.67
ONNX97.00.639916.62
OpenVINO97.30.637778.80
TensorRT (FP32)99.20.64078.86
TensorRT (FP16)50.80.63503.85
TensorRT (INT8)32.50.62244.52
TF SavedModel242.70.6409187.45
TF GraphDef97.00.6409193.92
TF Lite97.00.6409728.61
MNN96.90.636985.21
NCNN96.90.637377.62
ExecuTorch97.00.6409153.56
FormatoEstadoTamaño en disco (MB)mAP50-95(B)Tiempo de inferencia (ms/im)
PyTorch109.30.699223.19
TorchScript218.10.690025.75
ONNX217.50.690027.43
OpenVINO217.80.6872149.44
TensorRT (FP32)222.70.690213.87
TensorRT (FP16)111.10.68836.19
TensorRT (INT8)62.90.67936.62
TF SavedModel543.90.6900335.10
TF GraphDef217.50.6900348.86
TF Lite217.50.69001578.66
MNN217.30.6874168.95
NCNN217.40.6901132.13
ExecuTorch217.40.6900297.17

Comparado con Ultralytics .3.249

Reproducir nuestros resultados

Para reproducir los benchmarks de Ultralytics anteriores en todos los formatos de exportación, ejecute este código:

Ejemplo

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)
# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
yolo benchmark model=yolo11n.pt data=coco128.yaml imgsz=640

Tenga en cuenta que los resultados de las pruebas comparativas pueden variar en función de la configuración exacta del hardware y el software de un sistema, así como de la carga de trabajo actual del sistema en el momento en que se ejecutan las pruebas. Para obtener resultados más fiables, utilice un conjunto de datos con un gran número de imágenes, por ejemplo, data='coco.yaml' (5000 imágenes de validación).

Mejores prácticas para NVIDIA Spark

Al utilizar NVIDIA Spark, hay una serie de prácticas recomendadas que se deben seguir para obtener el máximo rendimiento al ejecutar YOLO11.

  1. Supervisar el rendimiento del sistema

    Utilice las herramientas de supervisión NVIDIA para track CPU GPU CPU :

    nvidia-smi
    
  2. Optimizar el uso de la memoria

    Con 128 GB de memoria unificada, DGX Spark puede gestionar grandes tamaños de lotes y modelos. Considere aumentar el tamaño del lote para mejorar el rendimiento:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n.engine")
    results = model.predict(source="path/to/images", batch=16)
    
  3. Utiliza TensorRT FP16 o INT8.

    Para obtener el mejor rendimiento, exporte modelos con precisión FP16 o INT8:

    yolo export model=yolo11n.pt format=engine half=True # FP16
    yolo export model=yolo11n.pt format=engine int8=True # INT8
    

Actualizaciones del sistema (Edición Fundadores)

Mantener actualizado su DGX Spark Founders Edition es fundamental para el rendimiento y la seguridad. NVIDIA dos métodos principales para actualizar el sistema operativo, los controladores y el firmware del sistema.

El panel de control DGX es la forma recomendada de realizar actualizaciones del sistema para garantizar la compatibilidad. Le permite:

  • Ver las actualizaciones disponibles del sistema
  • Instalar parches de seguridad y actualizaciones del sistema.
  • Gestionar las actualizaciones NVIDIA y el firmware NVIDIA

Actualizaciones manuales del sistema

Para usuarios avanzados, las actualizaciones se pueden realizar manualmente a través del terminal:

sudo apt update
sudo apt dist-upgrade
sudo fwupdmgr refresh
sudo fwupdmgr upgrade
sudo reboot

Advertencia

Asegúrese de que su sistema esté conectado a una fuente de alimentación estable y de que haya realizado una copia de seguridad de los datos críticos antes de realizar las actualizaciones.

Próximos pasos

Para obtener más información y asistencia, consulte la YOLO11 Ultralytics YOLO11 .

Preguntas frecuentes

¿Cómo puedo implementar Ultralytics YOLO11 NVIDIA Spark?

La implementación de Ultralytics YOLO11 NVIDIA Spark es muy sencilla. Puede utilizar la imagen Docker precompilada para una configuración rápida o instalar manualmente los paquetes necesarios. Los pasos detallados para cada método se pueden encontrar en las secciones Inicio rápido con Docker e Iniciar con instalación nativa.

¿Qué rendimiento puedo esperar de YOLO11 NVIDIA Spark?

YOLO11 ofrecen un rendimiento excelente en DGX Spark gracias al superchip GB10 Grace Blackwell. El TensorRT proporciona el mejor rendimiento de inferencia. Consulte la sección «Tabla comparativa detallada » para ver los resultados específicos de las pruebas de rendimiento en diferentes tamaños y formatos de modelos.

¿Por qué debería utilizar TensorRT YOLO11 DGX Spark?

TensorRT muy recomendable para implementar YOLO11 en DGX Spark debido a su rendimiento óptimo. Acelera la inferencia aprovechando GPU Blackwell, lo que garantiza la máxima eficiencia y velocidad. Obtenga más información en la sección Usar TensorRT NVIDIA Spark.

¿En qué se diferencia DGX Spark de los dispositivos Jetson para YOLO11?

DGX Spark ofrece una potencia de cálculo significativamente mayor que los dispositivos Jetson, con hasta 1 PFLOP de rendimiento de IA y 128 GB de memoria unificada, en comparación con los 2070 TFLOPS y los 128 GB de memoria de Jetson AGX Thor. DGX Spark está diseñado como un superordenador de IA de escritorio, mientras que los dispositivos Jetson son sistemas integrados optimizados para su implementación en el borde.

¿Puedo utilizar la misma imagen de Docker para DGX Spark y Jetson AGX Thor?

¡Sí! El ultralytics/ultralytics:latest-nvidia-arm64 La imagen Docker es compatible tanto con NVIDIA Spark (con DGX OS) como con Jetson AGX Thor (con JetPack 7.0), ya que ambos utilizan la arquitectura ARM64 con CUDA y pilas de software similares.



📅 Creado hace 0 días ✏️ Actualizado hace 0 días
onuralpszr

Comentarios