Auf dieser Seite erfahren Sie, wie Sie mit dem NVIDIA Collective Communication Library (NCCL) Fast Socket-Plug-in effizientere Arbeitslasten in Ihren GKE-Clustern (Google Kubernetes Engine) ausführen können.
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Beschränkungen
- Es gelten die Einschränkungen für Compute Engine.
- Es gelten die gVNIC-Einschränkungen.
- NCCL Fast Socket wird nur in Knotenpools unterstützt, für die Hardwarebeschleuniger aktiviert sind.
Voraussetzungen
GKE Autopilot:
- GKE Autopilot-Cluster müssen die Version 1.30.2-gke.1023000 oder höher ausführen.
Weitere Informationen finden Sie unter Autopilot-Cluster erstellen.
GKE Standard:
- In Ihren Knotenpools muss gVNIC aktiviert sein, um NCCL Fast Socket zu verwenden.
- GKE-Knoten müssen ein Knoten-Image für Container-Optimized OS verwenden.
- Ihre Cluster müssen die GKE-Version 1.25.2-gke.1700 oder höher ausführen.
Weitere Informationen finden Sie unter Regionalen Cluster erstellen.
NCCL Fast Socket in Standardclustern aktivieren
In diesem Abschnitt erfahren Sie, wie Sie das NCCL Fast Socket-Plug-in in GKE-Standardknotenpools aktivieren. Wenn Sie GKE Autopilot-Cluster verwenden, aktiviert GKE das Plug-in automatisch, wenn Sie NCCL Fast Socket in Ihren Arbeitslasten anfordern. Eine Anleitung finden Sie im Abschnitt NCCL Fast Socket in Autopilot.
Erstellen Sie für Standardcluster einen Knotenpool, der das NCCL Fast Socket-Plug-in verwendet. Sie können auch einen vorhandenen Knotenpool mit gcloud container node-pools update
aktualisieren.
gcloud container node-pools create NODEPOOL_NAME \
--accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
--machine-type=MACHINE_TYPE \
--cluster=CLUSTER_NAME \
--enable-fast-socket \
--enable-gvnic
Dabei gilt:
NODEPOOL_NAME
: der Name des neuen Knotenpools.CLUSTER_NAME
ist der Name des Clusters.ACCELERATOR_TYPE
: Der Typ des von Ihnen verwendeten GPU-Beschleunigers. Beispiel:nvidia-tesla-t4
ACCELERATOR_COUNT
ist die Anzahl der GPUs pro Knoten.MACHINE_TYPE
ist der Maschinentyp, den Sie verwenden möchten. NCCL Fast Socket wird nicht auf speicheroptimierten Maschinentypen unterstützt.
NVIDIA-GPU-Gerätetreiber installieren
In Autopilot werden GPU-Gerätetreiber automatisch installiert.
Folgen Sie für Standardcluster der Anleitung unter NVIDIA-GPU-Gerätetreiber installieren, um die erforderlichen NVIDIA-Gerätetreiber auf Ihren Knoten zu installieren.
NCCL Fast Socket in Autopilot
In Autopilot-Clustern fordern Sie NCCL Fast Socket in Ihren Arbeitslasten mithilfe der Knotenauswahl cloud.google.com/gke-nccl-fastsocket
an.
Wenn Sie NCCL Fast Socket in einer Arbeitslast anfordern, aktiviert GKE gVNIC und NCCL Fast Socket auf Knoten, die GKE für die Arbeitslast bereitstellt.
Sie können NCCL Fast Socket mit jedem GPU-Typ verwenden, der von Autopilot unterstützt wird.
Der folgende Pod fordert NCCL Fast Socket an:
apiVersion: v1
kind: Pod
metadata:
name: my-gpu-pod
spec:
nodeSelector:
cloud.google.com/gke-accelerator: GPU_TYPE
cloud.google.com/gke-nccl-fastsocket: "true"
containers:
- name: my-gpu-container
image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
command: ["/bin/bash", "-c", "--"]
args: ["while true; do sleep 600; done;"]
resources:
limits:
nvidia.com/gpu: GPU_QUANTITY
Ersetzen Sie Folgendes:
GPU_TYPE
: der Typ der GPU-Hardware. Zulässige Werte sind:nvidia-h100-mega-80gb
: NVIDIA H100 Mega (80 GB)nvidia-h100-80gb
: NVIDIA H100 (80 GB)nvidia-a100-80gb
: NVIDIA A100 (80 GB)nvidia-tesla-a100
: NVIDIA A100 (80 GB)nvidia-l4
; NVIDIA L4nvidia-tesla-t4
: NVIDIA T4
GPU_QUANTITY
: die Anzahl der GPUs, die dem Container zugewiesen werden sollen.
Aktivierung von NCCL Fast Socket prüfen
Rufen Sie die Pods "kube-system" auf, um zu prüfen, ob NCCL Fast Socket aktiviert ist:
kubectl get pods -n kube-system
Die Ausgabe sieht in etwa so aus:
NAME READY STATUS RESTARTS AGE
nccl-fastsocket-installer-qvfdw 2/2 Running 0 10m
nccl-fastsocket-installer-rtjs4 2/2 Running 0 10m
nccl-fastsocket-installer-tm294 2/2 Running 0 10m
In dieser Ausgabe sollte die Anzahl der Pods der Anzahl der Knoten im Knotenpool entsprechen.
NCCL Fast Socket deaktivieren
In GKE Autopilot-Clustern ist das NCCL Fast Socket-Plug-in standardmäßig deaktiviert. Wenn Sie das Plug-in für eine vorhandene Arbeitslast deaktivieren möchten, stellen Sie die Arbeitslast ohne die NCCL Fast Socket-Knotenauswahl neu bereit.
Führen Sie den folgenden Befehl aus, um NCCL Fast Socket für einen Knotenpool in Standardclustern zu deaktivieren:
gcloud container node-pools update NODEPOOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-fast-socket
Auf vorhandenen Knoten ist das Plug-in noch installiert. Sie müssen die Größe des Knotenpools manuell anpassen, um Arbeitslasten auf neue Knoten zu migrieren.
Fehlerbehebung
Informationen zur Fehlerbehebung für gVNIC finden Sie unter Fehlerbehebung bei Google Virtual NIC.
Nächste Schritte
- Verwenden Sie das Logging von Netzwerkrichtlinien, um aufzuzeichnen, wann Verbindungen zu Pods von den Netzwerkrichtlinien Ihres Clusters zugelassen oder verweigert werden.