Descripción general de las redes de GPU

AI Hypercomputer usa servicios de red específicos determinados por el tipo de máquina de GPU que elijas. Comprender estos servicios te permite optimizar el rendimiento y el buen rendimiento, es decir, el progreso efectivo de una tarea de entrenamiento de aprendizaje automático.

Redes por infraestructura

La arquitectura de red de tu implementación depende de la infraestructura que elijas: GPU generales o GPU en clúster.

Redes de VPC estándar para GPUs generales

Las GPUs generales usan redes de VPC estándar. Google Cloud

  • Arquitectura: Se basa en un diseño estándar de VPC de múltiples usuarios para la inferencia, la entrega de modelos y la investigación exploratoria.
  • Protocolos: Usa TCP/IP a través de la NIC virtual de Google (gVNIC).

Tejidos de alto rendimiento para GPUs agrupadas

AI Hypercomputer te ayuda a implementar máquinas con GPU que usan una arquitectura de red jerárquica y encarrilada. La conectividad predecible y de alto rendimiento de este diseño minimiza la sobrecarga de comunicación, lo que mejora directamente el procesamiento útil, ya que permite que las GPUs dediquen más tiempo al procesamiento en lugar de esperar los datos.

La disposición encarrilada de las GPUs agrupadas incluye tres componentes:

  • Subbloques: Son un grupo de hosts ubicados físicamente en un solo bloque. Un interruptor en la parte superior del rack (ToR) conecta estos hosts, lo que permite una comunicación de un solo salto extremadamente eficiente entre dos GPUs dentro del subbloque. RDMA sobre Ethernet convergente (RoCE) facilita esta comunicación directa. Una biblioteca de NCCL mejorada y optimizada para la topología encarrilada de Google controla las comunicaciones colectivas de la GPU.
  • Bloques: Colección de subbloques interconectados por una red de alta velocidad que no bloquea y proporciona un ancho de banda alto. Cualquier GPU dentro de un bloque es alcanzable en un máximo de dos saltos de red. El sistema expone los metadatos de los bloques y subbloques para permitir la ubicación óptima de los trabajos.
  • Clústeres: Son una colección de bloques interconectados que pueden escalar a miles de GPUs, lo que te permite ejecutar cargas de trabajo de entrenamiento a gran escala. La comunicación entre diferentes bloques agrega solo un salto adicional, lo que mantiene el alto rendimiento y la predicción incluso a una escala masiva. Para habilitar la colocación inteligente de trabajos a gran escala, los organizadores también tienen disponibles metadatos a nivel del clúster.

Tecnologías para la comunicación de GPU a GPU

Las máquinas con GPU usan una combinación de tecnologías para proporcionar alto rendimiento, alta capacidad de procesamiento y baja latencia para las cargas de trabajo. Estas tecnologías incluyen RDMA sobre Ethernet convergente (RoCE), las NIC de NVIDIA y la topología de red encarrilada a nivel de centro de datos de Google.

La tecnología NVLink de NVIDIA crea rutas de datos directas de ultraalta velocidad entre las NIC de NVIDIA en cada máquina. Además, RoCE permite una comunicación eficiente entre RDMA y GPU en diferentes máquinas.

Pilas de red de GPU

Una pila de red es un conjunto de protocolos de software, controladores y capas que trabajan en conjunto para implementar la comunicación de GPU a GPU. Los diferentes tipos de máquinas con GPU usan diferentes pilas de redes. En la siguiente tabla, se definen las pilas de redes y sus tipos de máquinas asociados:

Pila de redes Descripción Tipo de máquina de GPU
RDMA de GPUDirect Habilita una ruta directa para el intercambio de datos entre una GPU y otro dispositivo. En el caso de las instancias A4X Max y A4X, esta pila de redes usa RoCE. Para obtener más información, consulta Opciones de configuración del clúster con GPUDirect RDMA.
GPUDirect-TCPXO Mejora GPUDirect-TCPX descargando el protocolo TCP. Con GPUDirect-TCPXO, el tipo de máquina A3 Mega duplica el ancho de banda de la red en comparación con el A3 High. Para obtener información sobre cómo maximizar el ancho de banda de la red en los clústeres de GKE que usan GPUDirect-TCPXO, consulta Maximiza el ancho de banda de red de la GPU en clústeres en modo estándar y selecciona la pestaña GPUDirect-TCPXO.
GPUDirect-TCPX Aumenta el rendimiento de la red, ya que permite que las cargas útiles de los paquetes de datos se transfieran directamente de la memoria de GPU a la interfaz de red. Para obtener información sobre cómo maximizar el ancho de banda de la red en clústeres de GKE que usan GPUDirect-TCPX, consulta Maximiza el ancho de banda de red de la GPU en clústeres en modo estándar y selecciona la pestaña GPUDirect-TCPX.
TCP/IP estándar Es el protocolo de redes de referencia para las cargas de trabajo de uso general (estándar). Proporciona alta confiabilidad y amplia compatibilidad con los servicios estándar de VPC.
  • A2 (A100)
  • G4 (RTX PRO 6000)
  • G2 (L4)
  • N1 (T4 o V100)

Red del plano de datos de host y almacenamiento

Las instancias con varias GPU requieren diferentes configuraciones de red para la comunicación con la instancia de procesamiento en comparación con el procesamiento de información de GPU a GPU.

Una ruta de red independiente (a veces también denominada red Norte-Sur o red de frontend) controla toda la comunicación con la instancia de procesamiento. Este tráfico incluye el acceso al disco, la comunicación entre VM, el acceso a Internet, el acceso a Cloud Storage, la administración a nivel del host y la comunicación con otros servicios de Google Cloud.

Para administrar este tráfico, los tipos de máquinas con GPU usan la configuración de la NIC virtual de Google (gVNIC) en lugar de las NIC de Google Titanium. Las NIC de Titanium transfieren las tareas de procesamiento de red de la CPU, lo que la libera para que se concentre en tus cargas de trabajo. Esta separación ayuda a garantizar que el tráfico de host de uso general y el tráfico dedicado de GPU a GPU usen diferentes interfaces físicas, lo que evita que compitan por los mismos recursos del sistema.

Entorno de múltiples VPC

Todas las cargas de trabajo operan dentro de la nube privada virtual (VPC) de Google Cloud.

Las máquinas de aceleradores de alto rendimiento cuentan con un diseño de hardware especializado que usa varias interfaces de red físicas para controlar diferentes tipos de tráfico. Para controlar este diseño de hardware especializado, se requiere un entorno de múltiples VPC, independientemente de si usas Slurm, GKE o Compute Engine para ejecutar tus cargas de trabajo.

La configuración específica de múltiples VPC depende del tipo de máquina de GPU y su pila de redes:

  • A4X Max, A4X, A4 y A3 Ultra con GPUDirect RDMA: Estas máquinas están respaldadas por dos NIC físicas: una que admite tráfico de uso general y otra que admite tráfico de RDMA. Las vNIC de la instancia que se asignan a la NIC física de uso general (la interfaz nic0 y una interfaz de red adicional) se adjuntan a las redes de VPC normales. Las vNIC de RDMA que se asignan a la NIC física compatible con RDMA se conectan a una red de VPC independiente con un perfil de red de RDMA para aprovechar el RDMA de GPUDirect. En total, estos tipos de máquinas requieren tres redes de VPC. Para obtener información sobre cómo configurar esta infraestructura de red, consulta Crea VPCs y subredes.

  • A3 Mega con GPUDirect-TCPXO: Estas máquinas requieren ocho VPC independientes para las NIC de GPU, que se dedican a la comunicación de gran ancho de banda. Para obtener información detallada sobre cómo completar esta configuración, consulta Crea VPCs y subredes.

  • A3 High con GPUDirect-TCPX: Estas máquinas requieren cuatro VPC independientes para las NIC de GPU, que se dedican a la comunicación de gran ancho de banda. Para obtener información detallada sobre cómo completar esta configuración, consulta Crea VPCs y subredes.

Esta configuración de varias VPC ayuda a garantizar que las operaciones de almacenamiento y otras tareas del sistema no compitan por el ancho de banda con las comunicaciones críticas de GPU a GPU.

La configuración de red de múltiples VPC que debes establecer difiere según el tipo de máquina con GPU. Si deseas obtener una guía detallada sobre la disposición de la red, las velocidades de ancho de banda y las NIC para todos los tipos de máquinas de GPU compatibles, consulta Redes y máquinas de GPU.

En el siguiente diagrama, se muestra la arquitectura de red para una máquina con GPU en clúster, en la que se destaca la separación del tráfico de uso general y el tráfico dedicado de GPU a GPU en diferentes planos de red.

Arquitectura de red para máquinas de GPU de AI Hypercomputer. Como se muestra en el diagrama anterior, estas máquinas con GPU usan rutas de red dedicadas para diferentes tipos de tráfico. El tráfico de uso general, incluido el acceso a la administración y al almacenamiento, fluye a través de las NIC de Google Titanium conectadas a una VPC. La comunicación de alto rendimiento entre GPU usa interfaces de red y VPCs independientes, optimizadas con tecnologías como RDMA, lo que ayuda a garantizar un ancho de banda alto y una latencia baja para las cargas de trabajo de AA y de IA.

Bibliotecas y componentes de red

Para maximizar el ancho de banda y el rendimiento de la red, las siguientes bibliotecas y componentes de redes te permiten usar GPUs con la pila de redes de Google:

  • gVNIC: La NIC virtual de Google (gVNIC) es una interfaz de red virtual diseñada específicamente para Compute Engine. gVNIC mejora el rendimiento, aumenta la coherencia y ayuda a reducir los problemas de vecinos ruidosos. Se recomienda gVNIC en todas las familias de máquinas y es la vNIC recomendada para la comunicación de host a host. Para obtener más información, consulta Usa la NIC virtual de Google.
  • NCCL: La biblioteca de comunicaciones colectivas de NVIDIA (NCCL) proporciona primitivas optimizadas para las operaciones de comunicación colectiva. NCCL está diseñada específicamente para entornos de varias GPUs y varios nodos que usan GPUs y redes de NVIDIA. Ejecuta pruebas de NCCL para evaluar el rendimiento de los clústeres implementados. Para obtener más información, consulta Cómo probar el rendimiento de la red.
  • Redes múltiples de GKE: La compatibilidad con varias redes para Pods permite varias interfaces en nodos y Pods en un clúster de GKE. Para obtener detalles sobre cómo configurar redes múltiples en el contexto de GPUDirect, consulta Maximiza el ancho de banda de red de la GPU en clústeres del modo estándar y Opciones de configuración de clústeres con RDMA de GPUDirect.

Para obtener más detalles sobre las pilas de software disponibles, consulta Imágenes de SO y Docker.

¿Qué sigue?