Ambienti GPU (Jupyter Notebooks with Python con GPU)
Con gli ambienti GPU, puoi ridurre i tempi di formazione necessari per eseguire modelli di machine learning ad alta intensità di calcolo. Con una maggiore potenza di elaborazione, è possibile eseguire più iterazioni di addestramento quando si stanno ottimizzando i modelli di machine learning. Gli ambienti GPU sono disponibili solo per Python .
Servizio Questo servizio non è disponibile per impostazione predefinita. L'amministratore deve installare il servizio. Per verificare se il servizio è installato, clicca sul tuo avatar e poi su Informazioni > Dettagli versione. Se il servizio è installato e pronto all'uso, viene contrassegnato come " Deployed".
Per ulteriori informazioni, consultare:
Nvidia Multi - Instance GPU (MIG) consente il partizionamento di una GPU fisica in più istanze più piccole e indipendenti, che sono note come dispositivi MIG. Questi dispositivi MIG offrono capacità di isolamento e allocazione, consentendo una condivisione efficiente delle risorse.
Per gli aspetti principali relativi all'uso di Nvidia MIG, consultare la sezione "Utilizzo dei dispositivi MIG" nei notebook e negli script.
Modelli di ambiente GPU
Per utilizzare un ambiente GPU è necessario creare un nuovo modello di ambiente GPU.
È necessario avere il ruolo Admin o Editor all'interno del progetto per creare un modello di ambiente.
Per creare un modello di ambiente GPU:
Dalla scheda Gestisci del progetto, selezionare la pagina Ambienti , quindi in Modelli, fare clic su Nuovo modello.
Inserire un nome e una descrizione.
Selezionare il tipo di configurazione dell'ambiente GPU .
Selezionare la configurazione hardware. Scegli la taglia in base a:
- la complessità delle operazioni del modello
- il numero di iterazioni di addestramento del modello che desideri eseguire
- la complessità del vostro carico di lavoro analitico
- risorse disponibili
La dimensione predefinita è
1 GPU and 1 vCPU and 2 GB RAM.Selezionare la versione software Python .
Vengono visualizzati i dettagli del modello di ambiente. È possibile modificare le impostazioni hardware attivando l'impostazione.
- Gli ambienti GPU con Runtime 25.1 includono NVIDIA CUDA Toolkit 12.6.
È possibile aggiungere le proprie librerie personalizzate oltre alle librerie preinstallate. Per questo, creare una personalizzazione. Vedere Personalizzazione dei modelli di ambiente.
Utilizzo di ambienti GPU nei notebook
Dopo aver creato un modello di ambiente GPU, puoi iniziare ad assegnarlo ai notebook.
In un progetto, è possibile eseguire più di un notebook che utilizza lo stesso modello di ambiente GPU. Questo significa che se si apre un secondo notebook con lo stesso modello di ambiente nello stesso progetto, viene avviato un secondo kernel nello stesso runtime. Le risorse di runtime sono condivise dai kermesse Jupyter che si avviano nel runtime. Il runtime viene avviato per singolo utente e non per notebook.
Utilizzo di dispositivi MIG in notebook e script
Quando si utilizzano dispositivi MIG, tenere presente le seguenti limitazioni:
- Per progettazione, un singolo processo CUDA può utilizzare un singolo dispositivo MIG. Ciò significa che l'esecuzione parallela dei processi CUDA su più dispositivi MIG non è supportata. Ogni processo deve essere assegnato a una specifica periferica MIG. Questo è il motivo per cui più sezioni MIG non possono essere facilmente utilizzate in modo distribuito.
- watsonx attualmente supporta solo la strategia a processo singolo, che espone le istanze MIG come GPU standard all' OpenShift.
- Se il tuo cluster contiene altre GPU che non forniscono supporto MIG, devi contaminare questi nodi e lavorare con una definizione di runtime personalizzata che contiene le tolleranze. In questo modo si assicura che gli utenti non selezionino accidentalmente una GPU completa invece di un singolo dispositivo MIG.
Quando si utilizza un singolo dispositivo MIG, è possibile applicare il workflow standard per lavorare con le GPU. Fare riferimento allo snippet di codice che mostra come utilizzare il parametro del dispositivo in PyTorch:
import torch
zeros_tensor_gpu = torch.zeros((50, 50), device='cuda')
In alternativa, utilizzare la funzione torch.device("cuda:0") .
Se si utilizza Tensorflow, è possibile utilizzare il gestore contesto tf.device :
import tensorflow as tf
with tf.device('/GPU:0'):
a = tf.constant([[1.0, 2.0], [4.0, 5.0]])
Accesso agli UUID MIG in modo programmatico con più MIGs per runtime
Se un runtime richiede più di una periferica MIG, è necessario configurare il MIG specifico che deve essere utilizzato da un processo CUDA. A tale scopo, utilizzare la variabile di ambiente CUDA_VISIBLE_DEVICES . Questo frammento di codice interroga a livello di programmazione la libreria di gestione dell' NVIDIA e (NVML) per tutti gli UUID MIG disponibili (richiede l'installazione della libreria dell' py3nvml ):
import os
from py3nvml.py3nvml import *
nvmlInit()
deviceCount = nvmlDeviceGetCount()
for deviceIndex in range(deviceCount):
handle = nvmlDeviceGetHandleByIndex(deviceIndex)
deviceUUID = nvmlDeviceGetUUID(handle)
# Set CUDA_VISIBLE_DEVICES variable and start subprocess
# os.environ["CUDA_VISIBLE_DEVICES"]=deviceUUID
nvmlShutdown()