Puoi attivare e gestire le risorse dell'unità di elaborazione grafica (GPU) sui tuoi container. Ad esempio, potresti preferire eseguire notebook di intelligenza artificiale (AI) e machine learning (ML) in un ambiente GPU. Per eseguire carichi di lavoro dei container GPU, devi disporre di un cluster Kubernetes che supporti i dispositivi GPU. Il supporto GPU è abilitato per impostazione predefinita per i cluster Kubernetes per cui sono state sottoposte a provisioning macchine GPU.
Prima di iniziare
Per eseguire il deployment delle GPU nei container, devi disporre di quanto segue:
- Un cluster Kubernetes con una classe di macchine GPU. Consulta la sezione Schede GPU supportate per scoprire le opzioni che puoi configurare per le macchine del cluster. 
- Il ruolo Visualizzatore nodi cluster utente ( - user-cluster-node-viewer) per controllare le GPU e il ruolo Amministratore spazio dei nomi (- namespace-admin) per eseguire il deployment dei carichi di lavoro GPU nello spazio dei nomi del progetto.
- Il percorso kubeconfig per il server API di gestione zonale che ospita il tuo cluster Kubernetes. Accedi e genera il file kubeconfig se non ne hai uno. 
- Il percorso kubeconfig per il cluster di infrastruttura dell'organizzazione nella zona destinata a ospitare le GPU. Accedi e genera il file kubeconfig se non ne hai uno. 
- Il nome del cluster Kubernetes. Se non le hai, chiedi queste informazioni all'amministratore della piattaforma. 
- Il percorso kubeconfig del cluster Kubernetes. Accedi e genera il file kubeconfig se non ne hai uno. 
Configura un container per utilizzare le risorse GPU
Per utilizzare queste GPU in un container, completa i seguenti passaggi:
- Verifica che il cluster Kubernetes disponga di node pool che supportano le GPU: - kubectl describe nodepoolclaims -n KUBERNETES_CLUSTER_NAME \ --kubeconfig ORG_INFRASTRUCTURE_CLUSTER- L'output pertinente è simile al seguente snippet: - Spec: Machine Class Name: a2-ultragpu-1g-gdc Node Count: 2- Per un elenco completo dei tipi di macchine GPU supportati e dei profili GPU multi-istanza (MIG), consulta Tipi di macchine dei nodi del cluster. 
- Aggiungi i campi - .containers.resources.requestse- .containers.resources.limitsalla specifica del contenitore. Ogni nome di risorsa è diverso a seconda della classe della macchina. Controlla l'allocazione delle risorse GPU per trovare i nomi delle risorse GPU.- Ad esempio, la seguente specifica del container richiede tre partizioni di una GPU da un nodo - a2-ultragpu-1g-gdc:- ... containers: - name: my-container image: "my-image" resources: requests: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 limits: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 3 ...
- I container richiedono anche autorizzazioni aggiuntive per accedere alle GPU. Per ogni container che richiede GPU, aggiungi le seguenti autorizzazioni alla specifica del container: - ... securityContext: seLinuxOptions: type: unconfined_t ...
- Applica il file manifest del contenitore: - kubectl apply -f CONTAINER_MANIFEST_FILE \ -n NAMESPACE \ --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
Controlla l'allocazione delle risorse GPU
- Per controllare l'allocazione delle risorse GPU, utilizza il seguente comando: - kubectl describe nodes NODE_NAME- Sostituisci - NODE_NAMEcon il nodo che gestisce le GPU che vuoi esaminare.- L'output pertinente è simile al seguente snippet: - Capacity: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7 Allocatable: nvidia.com/mig-1g.10gb-NVIDIA_A100_80GB_PCIE: 7
Prendi nota dei nomi delle risorse per le GPU. Devi specificarli quando configuri un container per utilizzare le risorse GPU.