Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Installez le plugin d'appareil Kubernetes pour GPUs
Les plug-ins d'appareils
Considérations
-
Lorsque vous utilisez le AL2 023 optimisé pour EKS AMIs avec NVIDIA GPUs, vous devez installer le plug-in pour appareil NVIDIA Kubernetes
. Vous pouvez installer et gérer le plug-in pour appareil NVIDIA Kubernetes avec Helm, l'outil Kubernetes de votre choix ou l'opérateur du GPU NVIDIA. -
Lorsque vous utilisez le Bottlerocket optimisé pour EKS AMIs avec NVIDIA GPUs, vous n'avez pas besoin d'installer le plug-in pour appareil NVIDIA Kubernetes, car il est déjà inclus dans le Bottlerocket optimisé pour EKS. AMIs Cela inclut lorsque vous utilisez des instances GPU avec le mode automatique EKS.
-
Lorsque vous utilisez le AL2 023 ou le Bottlerocket optimisé pour EKS AMIs avec AWS Inferentia ou Trainium GPUs, vous devez installer le plug-in de périphérique Neuron Kubernetes et éventuellement installer l'extension de planificateur Neuron Kubernetes.
Pour plus d'informations, consultez la documentation Neuron relative à l'exécution sur EKS .
Installer le plugin pour appareil NVIDIA Kubernetes
La procédure suivante décrit comment installer le plug-in pour appareil NVIDIA Kubernetes et exécuter un exemple de test sur des instances de GPU NVIDIA.
Conditions préalables
-
Cluster EKS créé
-
Nœuds GPU NVIDIA exécutés dans le cluster à l'aide de l'AMI NVIDIA AL2 023 optimisée pour EKS
-
Helm installé dans votre environnement de ligne de commande, consultez les Instructions de configuration de Helm.
Procédure
-
Ajoutez le référentiel de
nvdpdiagrammes Helm.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin -
Mettez à jour votre référentiel Helm local pour vous assurer que vous disposez des graphiques les plus récents.
helm repo update -
Téléchargez la dernière version du plugin pour appareil NVIDIA Kubernetes
helm search repo nvdp --develNAME CHART VERSION APP VERSION DESCRIPTION nvdp/gpu-feature-discovery 0.17.4 0.17.4 ... nvdp/nvidia-device-plugin 0.17.4 0.17.4 ... -
Installez le plug-in pour appareil NVIDIA Kubernetes sur votre cluster, en le
0.17.4remplaçant par la dernière version de la commande ci-dessus.helm install nvdp nvdp/nvidia-device-plugin \ --namespace nvidia \ --create-namespace \ --version0.17.4\ --set gfd.enabled=true -
Vérifiez que le plug-in de l'appareil NVIDIA Kubernetes est en cours d'exécution dans votre cluster. La sortie ci-dessous montre la sortie avec deux nœuds dans le cluster.
kubectl get ds -n nvidia nvdp-nvidia-device-pluginNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE nvdp-nvidia-device-plugin 2 2 2 2 2 <none> 11m -
Vérifiez que vos nœuds sont allouables à l' GPUs aide de la commande suivante.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"NAME GPU ip-192-168-11-225.us-west-2.compute.internal 1 ip-192-168-24-96.us-west-2.compute.internal 1 -
Créez un fichier nommé
nvidia-smi.yamlavec les contenus suivants. Ce manifeste lance une image de conteneur AL2 023 minimale qui s'exécutenvidia-smisur un nœud.apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: gpu-demo image: public.ecr.aws/amazonlinux/amazonlinux:2023-minimal command: ['/bin/sh', '-c'] args: ['nvidia-smi && tail -f /dev/null'] resources: limits: nvidia.com/gpu: 1 tolerations: - key: 'nvidia.com/gpu' operator: 'Equal' value: 'true' effect: 'NoSchedule' -
Appliquez le manifeste ci-dessus avec la commande suivante.
kubectl apply -f nvidia-smi.yaml -
Une fois que le pod n’est plus en cours d’exécution, affichez ses journaux à l’aide de la commande suivante.
kubectl logs nvidia-smiL'exemple qui suit illustre un résultat.
+-----------------------------------------------------------------------------------------+ | NVIDIA-SMI XXX.XXX.XX Driver Version: XXX.XXX.XX CUDA Version: XX.X | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA L4 On | 00000000:31:00.0 Off | 0 | | N/A 27C P8 11W / 72W | 0MiB / 23034MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+
Installer le plugin pour appareil Neuron Kubernetes
La procédure suivante décrit comment installer le plug-in de périphérique Neuron Kubernetes et exécuter un exemple de test sur une instance d'Inferentia.
Conditions préalables
-
Cluster EKS créé
-
Nœuds GPU Neuron exécutés dans le cluster à l'aide de l'AMI AL2 023 Neuron ou de l'AMI Bottlerocket optimisées pour EKS
-
Helm installé dans votre environnement de ligne de commande, consultez les Instructions de configuration de Helm.
Procédure
-
Installez le plug-in pour appareil Neuron Kubernetes sur votre cluster.
helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --set "npd.enabled=false" -
Vérifiez que le plug-in de l'appareil Neuron Kubernetes est en cours d'exécution dans votre cluster. La sortie ci-dessous montre la sortie avec un seul nœud neuronal dans le cluster.
kubectl get ds -n kube-system neuron-device-pluginNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE neuron-device-plugin 1 1 1 1 1 <none> 72s -
Vérifiez que vos nœuds sont allouables à l' NueronCores aide de la commande suivante.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,NeuronCore:.status.allocatable.aws\.amazon\.com/neuroncore"NAME NeuronCore ip-192-168-47-173.us-west-2.compute.internal 2 -
Vérifiez que vos nœuds sont allouables à l' NueronDevices aide de la commande suivante.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,NeuronDevice:.status.allocatable.aws\.amazon\.com/neuron"NAME NeuronDevice ip-192-168-47-173.us-west-2.compute.internal 1 -
Créez un fichier nommé
neuron-ls.yamlavec les contenus suivants. Ce manifeste lance un conteneur Neuron Monitor surlequel l' neuron-lsoutil est installé.apiVersion: v1 kind: Pod metadata: name: neuron-ls spec: restartPolicy: Never containers: - name: neuron-container image: public.ecr.aws/g4h4h0b5/neuron-monitor:1.0.0 command: ["/bin/sh"] args: ["-c", "neuron-ls"] resources: limits: aws.amazon.com/neuron: 1 tolerations: - key: "aws.amazon.com/neuron" operator: "Exists" effect: "NoSchedule" -
Appliquez le manifeste ci-dessus avec la commande suivante.
kubectl apply -f neuron-ls.yaml -
Une fois que le pod n’est plus en cours d’exécution, affichez ses journaux à l’aide de la commande suivante.
kubectl logs neuron-lsUn exemple de résultat est présenté ci-dessous.
instance-type: inf2.xlarge instance-id: ... +--------+--------+--------+---------+ | NEURON | NEURON | NEURON | PCI | | DEVICE | CORES | MEMORY | BDF | +--------+--------+--------+---------+ | 0 | 2 | 32 GB | 00:1f.0 | +--------+--------+--------+---------+