Vai al contenuto

Guida rapida: NVIDIA Spark con Ultralytics YOLO11

Questa guida completa fornisce una procedura dettagliata per l'implementazione Ultralytics YOLO11 NVIDIA Spark, il supercomputer AI desktop compatto NVIDIA. Inoltre, presenta benchmark delle prestazioni per dimostrare le capacità di YOLO11 questo potente sistema.

NVIDIA Spark

Nota

Questa guida è stata testata con NVIDIA Spark Founders Edition con sistema operativo DGX basato su Ubuntu. Dovrebbe funzionare con le ultime versioni del sistema operativo DGX.

Che cos'è NVIDIA Spark?

NVIDIA Spark è un supercomputer AI desktop compatto basato sul superchip NVIDIA Grace Blackwell. Offre fino a 1 petaFLOP di prestazioni di calcolo AI con precisione FP4, rendendolo ideale per sviluppatori, ricercatori e data scientist che necessitano di potenti funzionalità AI in un formato desktop.

Specifiche chiave

SpecificheDettagli
Prestazioni AIFino a 1 PFLOP (FP4)
GPUArchitettura NVIDIA con Tensor di quinta generazione e RT Core di quarta generazione
CPUProcessore Arm a 20 core (10 Cortex-X925 + 10 Cortex-A725)
MemoriaMemoria di sistema unificata LPDDR5x da 128 GB, interfaccia a 256 bit, 4266 MHz, larghezza di banda di 273 GB/s
Stoccaggio1 TB o 4 TB NVMe M.2 con crittografia automatica
Rete1x RJ-45 (10 GbE), ConnectX-7 Smart NIC, Wi-Fi 7, Bluetooth 5.4
Connettività4 porte USB Type-C, 1 porta HDMI 2.1a, audio multicanale HDMI
Elaborazione video1x NVENC, 1x NVDEC

DGX OS

NVIDIA OS è una distribuzione Linux personalizzata che fornisce una base operativa stabile, testata e supportata per l'esecuzione di applicazioni di intelligenza artificiale, machine learning e analisi sui sistemi DGX. Include:

  • Una solida base Linux ottimizzata per i carichi di lavoro AI
  • Driver e impostazioni di sistema preconfigurati per NVIDIA
  • Aggiornamenti di sicurezza e funzionalità di manutenzione del sistema
  • Compatibilità con l'ecosistema NVIDIA più ampio

DGX OS segue un programma di rilascio regolare con aggiornamenti forniti in genere due volte all'anno (intorno a febbraio e agosto), con patch di sicurezza aggiuntive fornite tra le versioni principali.

Pannello di controllo DGX

DGX Spark è dotato di un pannello di controllo DGX integrato che offre:

  • Monitoraggio del sistema in tempo reale: panoramica delle metriche operative attuali del sistema
  • Aggiornamenti di sistema: possibilità di applicare gli aggiornamenti direttamente dalla dashboard
  • Impostazioni di sistema: modifica il nome del dispositivo e altre configurazioni
  • JupyterLab integrato: accedi ai notebook Jupyter locali per lo sviluppo

Pannello di controllo NVIDIA

Accesso alla dashboard

Fai clic sul pulsante "Mostra app" nell'angolo in basso a sinistra del desktop Ubuntu, quindi seleziona "DGX Dashboard" per aprirlo nel browser.

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

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

Dopo aver effettuato la connessione con NVIDIA , fare clic sul pulsante "DGX Dashboard" per aprire la dashboard all'indirizzo http://localhost:11000.

JupyterLab integrato

La dashboard include un'istanza JupyterLab integrata che crea automaticamente un ambiente virtuale e installa i pacchetti consigliati all'avvio. A ogni account utente viene assegnata una porta dedicata per l'accesso a JupyterLab.

Guida rapida con Docker

Il modo più veloce per iniziare a utilizzare Ultralytics YOLO11 NVIDIA Spark è eseguire immagini Docker predefinite. La stessa immagine Docker che supporta Jetson AGX Thor (JetPack 7.0) funziona su 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 volta fatto ciò, passa alla sezione Utilizzo TensorRT NVIDIA Spark.

Inizia con l'installazione nativa

Per un'installazione nativa senza Docker, segui questi passaggi.

Installa il pacchetto Ultralytics

Qui installeremo Ultralytics su DGX Spark con dipendenze opzionali in modo da poter esportare il PyTorch in altri formati diversi. Ci concentreremo principalmente sulle TensorRT NVIDIA TensorRT perché TensorRT ci TensorRT di ottenere le massime prestazioni da DGX Spark.

  1. Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'aggiornamento all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. Installa ultralytics pacchetto pip con dipendenze opzionali

    pip install ultralytics[export]
    
  3. Riavvia il dispositivo

    sudo reboot
    

Installa PyTorch e Torchvision

ultralytics sopra indicata installerà Torch Torchvision. Tuttavia, questi pacchetti installati tramite pip potrebbero non essere completamente ottimizzati per l'architettura ARM64 di DGX Spark con CUDA . Pertanto, si consiglia di installare le versioni compatibili CUDA :

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

Info

Quando si esegue PyTorch .9.1 su NVIDIA Spark, è possibile che si verifichi il seguente problema UserWarning durante l'inizializzazione CUDA ad esempio durante l'esecuzione di yolo checks, yolo predict, ecc.):

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)

Questo avviso può essere tranquillamente ignorato. Per risolvere definitivamente il problema, è stata inviata una correzione in PyTorch #164590 che sarà inclusa nella versione PyTorch .10.

Installa onnxruntime-gpu

Il onnxruntime-gpu package ospitato in PyPI non ha aarch64 binari per sistemi ARM64. Quindi dobbiamo installare manualmente questo pacchetto. Questo pacchetto è necessario per alcune esportazioni.

Qui scaricheremo e installeremo onnxruntime-gpu 1.24.0 con Python3.12 supporto.

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

Utilizza TensorRT NVIDIA Spark

Tra tutti i formati di esportazione dei modelli supportati da Ultralytics, TensorRT le migliori prestazioni di inferenza su NVIDIA Spark, rendendolo la nostra prima scelta per le implementazioni. Per le istruzioni di configurazione e l'utilizzo avanzato, consulta la nostra guida dedicata TensorRT .

Converti il modello in TensorRT ed esegui l'inferenza

Il modello YOLO11n in formato PyTorch viene convertito in TensorRT per eseguire l'inferenza con il modello esportato.

Esempio

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

Visita la pagina di esportazione per accedere ad argomenti aggiuntivi durante l'esportazione di modelli in diversi formati

YOLO11 NVIDIA Spark YOLO11

YOLO11 sono stati eseguiti dal Ultralytics su diversi formati di modelli, misurandone la velocità e la precisione: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF , MNN, NCNN, ExecuTorch. I benchmark sono stati eseguiti su NVIDIA Spark con precisione FP32 e dimensione predefinita dell'immagine di input pari a 640.

Tabella comparativa dettagliata

La tabella sottostante riporta i risultati dei benchmark per cinque diversi modelli (YOLO11n, YOLO11s, YOLO11m, YOLO11l, YOLO11x) in diversi formati, fornendo lo stato, le dimensioni, la metrica mAP50(B) e il tempo di inferenza per ciascuna combinazione.

Prestazioni

FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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

Confrontato con Ultralytics .3.249

Riproduci i nostri risultati

Per riprodurre i benchmark Ultralytics di cui sopra su tutti i formati di esportazione, esegui questo codice:

Esempio

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

Si noti che i risultati dei benchmark possono variare in base alla configurazione hardware e software esatta di un sistema, nonché al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark. Per ottenere risultati più affidabili, utilizzare un set di dati con un numero elevato di immagini, ad esempio data='coco.yaml' (5000 immagini val).

Best practice per NVIDIA Spark

Quando si utilizza NVIDIA Spark, è necessario seguire alcune best practice per ottenere le massime prestazioni con YOLO11.

  1. Monitorare le prestazioni del sistema

    Utilizza gli strumenti di monitoraggio NVIDIA per track CPU GPU CPU :

    nvidia-smi
    
  2. Ottimizza l'utilizzo della memoria

    Con 128 GB di memoria unificata, DGX Spark è in grado di gestire batch e modelli di grandi dimensioni. Valuta la possibilità di aumentare la dimensione dei batch per migliorare la produttività:

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

    Per ottenere prestazioni ottimali, esportare modelli con precisione FP16 o INT8:

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

Aggiornamenti di sistema (Founders Edition)

Mantenere aggiornato DGX Spark Founders Edition è fondamentale per garantire prestazioni e sicurezza ottimali. NVIDIA due metodi principali per aggiornare il sistema operativo, i driver e il firmware del sistema.

Il DGX Dashboard è il metodo consigliato per eseguire gli aggiornamenti di sistema garantendo la compatibilità. Consente di:

  • Visualizza gli aggiornamenti di sistema disponibili
  • Installare patch di sicurezza e aggiornamenti di sistema
  • Gestisci gli aggiornamenti NVIDIA e del firmware NVIDIA

Aggiornamenti manuali del sistema

Per gli utenti esperti, gli aggiornamenti possono essere eseguiti manualmente tramite terminale:

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

Attenzione

Assicurati che il tuo sistema sia collegato a una fonte di alimentazione stabile e che tu abbia eseguito il backup dei dati critici prima di eseguire gli aggiornamenti.

Prossimi passi

Per ulteriori informazioni e assistenza, consultare la YOLO11 Ultralytics YOLO11 .

FAQ

Come posso implementare Ultralytics YOLO11 NVIDIA Spark?

L'implementazione Ultralytics YOLO11 NVIDIA Spark è molto semplice. È possibile utilizzare l'immagine Docker predefinita per una configurazione rapida oppure installare manualmente i pacchetti richiesti. I passaggi dettagliati per ciascun approccio sono disponibili nelle sezioni Avvio rapido con Docker e Avvio con installazione nativa.

Quali prestazioni posso aspettarmi da YOLO11 NVIDIA Spark?

YOLO11 offrono prestazioni eccellenti su DGX Spark grazie al superchip GB10 Grace Blackwell. Il TensorRT garantisce le migliori prestazioni di inferenza. Consulta la sezione Tabella comparativa dettagliata per i risultati specifici dei benchmark relativi a modelli di diverse dimensioni e formati.

Perché dovrei usare TensorRT YOLO11 DGX Spark?

TensorRT altamente raccomandato per l'implementazione YOLO11 su DGX Spark grazie alle sue prestazioni ottimali. Accelera l'inferenza sfruttando le GPU Blackwell, garantendo la massima efficienza e velocità. Per ulteriori informazioni, consulta la sezione Utilizzo TensorRT NVIDIA Spark.

Come si comporta DGX Spark rispetto ai dispositivi Jetson per YOLO11?

DGX Spark offre una potenza di calcolo significativamente superiore rispetto ai dispositivi Jetson, con prestazioni AI fino a 1 PFLOP e 128 GB di memoria unificata, rispetto ai 2070 TFLOPS e ai 128 GB di memoria di Jetson AGX Thor. DGX Spark è progettato come supercomputer AI desktop, mentre i dispositivi Jetson sono sistemi integrati ottimizzati per l'implementazione edge.

Posso usare la stessa immagine Docker per DGX Spark e Jetson AGX Thor?

Sì! Il ultralytics/ultralytics:latest-nvidia-arm64 L'immagine Docker supporta sia NVIDIA Spark (con DGX OS) che Jetson AGX Thor (con JetPack 7.0), poiché entrambi utilizzano l'architettura ARM64 con CUDA e stack software simili.



📅 Creato 0 giorni fa ✏️ Aggiornato 0 giorni fa
onuralpszr

Commenti