Arbeitslasteffizienz mit NCCL Fast Socket verbessern


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.

Autopilot-Cluster unterstützen kein NCCL Fast Socket.

Hinweis

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

Voraussetzungen

  • 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.

Cluster erstellen

Erstellen Sie einen neuen Cluster:

gcloud container clusters create CLUSTER_NAME \
    --cluster-version=VERSION \
    --region=COMPUTE_REGION

Dabei gilt:

  • CLUSTER_NAME ist der Name des neuen Clusters.
  • VERSION: die GKE-Version, die mindestens 1.25.2-gke.1700 sein muss. Sie können auch das Flag --release-channel verwenden, um eine Release-Version auszuwählen. Die Release-Version muss die Standardversion 1.25.2-gke.1700 oder höher haben.
  • COMPUTE_REGION: die Compute Engine-Region für den neuen Cluster. Verwenden Sie für zonale Cluster --zone=COMPUTE_ZONE.

NCCL Fast Socket aktivieren

Erstellen Sie 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 GPU-Beschleunigers, den Sie verwenden. 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

Folgen Sie der Anleitung unter NVIDIA-GPU-Gerätetreiber installieren, um die erforderlichen NVIDIA-Gerätetreiber auf Ihren Knoten zu installieren.

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

Führen Sie den folgenden Befehl aus, um NCCL Fast Socket 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