Mejora la eficiencia de la carga de trabajo con Fast Socket de NCCL


En esta página, se muestra cómo usar el complemento Fast Socket de bibliotecas de comunicación colectiva (NCCL) de NVIDIA para ejecutar cargas de trabajo más eficientes en los clústeres de Google Kubernetes Engine (GKE).

Los clústeres de Autopilot no son compatibles con Fast Socket de NCCL.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Limitaciones

Requisitos

  • Tus grupos de nodos deben tener gVNIC habilitado para usar Fast Socket de NCCL.
  • Los nodos de GKE deben usar una imagen de nodo de Container-Optimized OS.
  • Tus clústeres deben ejecutar la versión 1.25.2-gke.1700 de GKE o una posterior.

Crea un clúster

Crea un clúster nuevo:

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

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster nuevo.
  • VERSION: la versión de GKE, que debe ser 1.25.2-gke.1700 o posterior. También puedes usar la marca --release-channel para seleccionar un canal de versiones. El canal de versiones debe tener una versión predeterminada de 1.25.2-gke.1700 o posterior.
  • COMPUTE_REGION: es la región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.

Habilita Fast Socket de NCCL

Crea un grupo de nodos que use el complemento de Fast Socket de NCCL. También puedes actualizar un grupo de nodos existente con gcloud container node-pools update.

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

Reemplaza lo siguiente:

  • NODEPOOL_NAME: el nombre del grupo de nodos nuevo
  • CLUSTER_NAME: el nombre del clúster
  • ACCELERATOR_TYPE: Es el tipo de acelerador de GPU que usas. Por ejemplo, nvidia-tesla-t4.
  • ACCELERATOR_COUNT: es la cantidad de GPU por nodo.
  • MACHINE_TYPE: Es el tipo de máquina que deseas usar. Fast Socket de NCCL no es compatible con los tipos de máquina con optimización de memoria.

Instala los controladores de GPU de NVIDIA

Sigue las instrucciones en Instala controladores de dispositivos de GPU de NVIDIA para instalar los controladores de dispositivos de NVIDIA necesarios en tus nodos.

Verifica que Fast Socket de NCCL esté habilitado

Para verificar que Fast Socket de NCCL esté habilitado, consulta los pods del sistema de Kubernetes:

kubectl get pods -n kube-system

El resultado es similar a este:

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

En este resultado, la cantidad de Pods debe ser igual a la cantidad de nodos en el grupo de nodos.

Inhabilita Fast Socket de NCCL

Para inhabilitar Fast Socket de NCCL, ejecuta el siguiente comando:

gcloud container node-pools update NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-fast-socket

El nodo existente todavía tiene instalado el complemento. Debes cambiar el tamaño del grupo de nodos de forma manual para migrar las cargas de trabajo a nodos nuevos.

Soluciona problemas

Para solucionar problemas de gVNIC, consulta Soluciona problemas de NIC virtual de Google.

¿Qué sigue?