Dépannage — GPU
GPU non détecté dans la VM
Cause : le champ gpus n'est pas configuré dans le manifeste, ou le PCI passthrough n'a pas correctement attaché le GPU à la VM.
Solution :
-
Vérifiez que le champ
gpusest bien présent dans votre manifeste :vm-gpu.yamlspec:
gpus:
- name: "nvidia.com/AD102GL_L40S" -
Dans la VM, vérifiez la détection PCI :
lspci | grep -i nvidia -
Vérifiez que le module kernel NVIDIA est chargé :
lsmod | grep nvidia -
Si aucun résultat, les drivers ne sont pas installés. Consultez la section suivante.
Drivers NVIDIA manquants
Cause : les drivers NVIDIA ne sont pas installés dans la VM, ou les kernel headers ne correspondent pas à la version du noyau.
Solution :
-
Installez les prérequis et les drivers via cloud-init ou manuellement :
sudo apt-get update
sudo apt-get install -y linux-headers-$(uname -r)
sudo apt-get install -y nvidia-driver-550 nvidia-utils-550 -
Redémarrez la VM après l'installation :
sudo reboot -
Vérifiez l'installation :
nvidia-smi
Pour automatiser l'installation, utilisez le champ cloudInit dans votre manifeste VM afin que les drivers soient installés au premier démarrage.
Pod GPU en état Pending
Cause : aucun nœud avec GPU disponible, la configuration GPU du cluster est absente, ou le GPU Operator n'est pas actif.
Solution :
-
Vérifiez les événements du pod :
kubectl describe pod <pod-name>Recherchez le message
Insufficient nvidia.com/gpu. -
Vérifiez que des nœuds GPU existent et ont des GPU allocables :
kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, gpu: .status.allocatable["nvidia.com/gpu"]}' -
Vérifiez la configuration du nodeGroup GPU dans le manifeste du cluster :
cluster.yamlspec:
nodeGroups:
gpu-workers:
minReplicas: 1
maxReplicas: 4
instanceType: "u1.2xlarge"
gpus:
- name: "nvidia.com/AD102GL_L40S" -
Assurez-vous que l'addon GPU Operator est activé :
cluster.yamlspec:
addons:
gpuOperator:
enabled: true
nvidia-smi échoue dans un pod
Cause : le GPU Operator n'est pas activé sur le cluster, ce qui empêche l'installation automatique des drivers et la mise à disposition du device plugin.
Solution :
-
Activez l'addon GPU Operator sur le cluster :
cluster.yamlspec:
addons:
gpuOperator:
enabled: true -
Appliquez la modification :
kubectl apply -f cluster.yaml -
Vérifiez que les pods du GPU Operator sont en cours d'exécution :
kubectl get pods -n gpu-operator -
Une fois le GPU Operator opérationnel, recréez votre pod GPU.
GPU Operator non fonctionnel
Cause : l'addon n'est pas activé, les pods de l'opérateur sont en erreur, ou les nœuds n'ont pas de GPU physique.
Solution :
-
Vérifiez que l'addon est activé dans le manifeste du cluster :
cluster.yamlspec:
addons:
gpuOperator:
enabled: true -
Vérifiez l'état des pods du GPU Operator :
kubectl get pods -n gpu-operator
kubectl describe pod -n gpu-operator <pod-name> -
Vérifiez que les nœuds possèdent bien du hardware GPU :
kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, gpu: .status.capacity["nvidia.com/gpu"]}' -
Si les pods sont en
CrashLoopBackOff, consultez les logs :kubectl logs -n gpu-operator <pod-name>