Descripción general de las redes de GPU

AI Hypercomputer es un sistema de supercomputación que te ayuda a implementar cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (AA) de varios hosts con máquinas de GPU. Los servicios de red subyacentes que usas en la implementación están determinados por el tipo de máquina de GPU que elijas.

Este documento está diseñado para ayudar a los arquitectos, ingenieros de redes y desarrolladores a comprender los servicios de red subyacentes relacionados con las máquinas de GPU. En este documento, se supone que tienes conocimientos básicos de los conceptos de redes en la nube y procesamiento distribuido.

Comprender los servicios de redes de máquinas de GPU es el primer paso para implementar y administrar tus cargas de trabajo de forma correcta, y es esencial para optimizar el rendimiento y el procesamiento útil. El procesamiento útil, o capacidad de procesamiento útil, mide el progreso eficaz que realiza un sistema en una tarea de entrenamiento de AA. Esta métrica ofrece estadísticas adicionales en comparación con métricas como el tiempo total transcurrido o la tasa de capacidad de procesamiento sin procesar.

Algunos tipos de máquinas de GPU tienen una jerarquía distinta y en capas que optimiza la comunicación en todos los niveles. Esta jerarquía abarca desde la estructura del centro de datos hasta los clústeres optimizados para IA y las instancias de Compute Engine. En las siguientes secciones, se explican estos componentes jerárquicos.

Arquitectura de red de GPU

AI Hypercomputer te ayuda a implementar máquinas 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 GPU dediquen más tiempo al procesamiento en lugar de esperar datos.

La disposición encarrilada de las GPU consta de tres componentes principales:

  • Subbloques: Son unidades fundamentales, que se componen de un grupo de hosts que se encuentran físicamente en un solo rack. 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 GPU dentro del subbloque. RDMA sobre Ethernet convergente (RoCE) facilita esta comunicación directa. Una biblioteca NCCL mejorada y optimizada para la topología encarrilada de Google controla los colectivos de comunicación de GPU.
  • Bloques: Se componen de varios subbloques interconectados con una estructura que no bloquea, lo que permite una interconexión de alto ancho de banda. Cualquier GPU dentro de un bloque es alcanzable en un máximo de dos saltos de red. El sistema expone metadatos de bloques y subbloques para permitir la ubicación óptima de los trabajos.
  • Clústeres: Se forman con varios bloques interconectados, que pueden escalar a miles de GPU y te permiten 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 permitir la ubicación inteligente de trabajos a gran escala, los metadatos a nivel del clúster también están disponibles para los organizadores.

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

Las máquinas de 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.

Estos tipos de máquinas usan la tecnología NVLink de NVIDIA para crear 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 GPU ubicadas en diferentes máquinas.

Pilas de red de GPU

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

Pila de red Descripción Tipo de máquina de GPU
RDMA de GPUDirect El RDMA de GPUDirect permite una ruta directa para el intercambio de datos entre una GPU y otro dispositivo. Para las instancias A4X Max y A4X, esta pila de red usa RDMA sobre Ethernet convergente (RoCE). Esta tecnología permite que los dispositivos de intercambio de tráfico lean directamente la memoria de la GPU y escriban en ella, omitiendo la CPU para crear una conexión más eficiente para el intercambio de datos de alto rendimiento. Para obtener más información, consulta Opciones de configuración de clústeres con RDMA de GPUDirect.
GPUDirect-TCPXO GPUDirect-TCPXO mejora el GPUDirect-TCPX transfiriendo el protocolo TCP. Con GPUDirect-TCPXO, el tipo de máquina A3 Mega duplica el ancho de banda de red en comparación con los tipos de máquinas A3 High y A3 Edge types. Para obtener información sobre cómo maximizar el ancho de banda de red en 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 GPUDirect-TCPX aumenta el rendimiento de la red, ya que permite que las cargas útiles del paquete 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 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.

Red del plano de datos de host y almacenamiento

Es una ruta de red independiente que controla todo el tráfico que no es comunicación directa de GPU a GPU. Este tráfico incluye el acceso a Cloud Storage, la administración a nivel de host y la comunicación con otros Google Cloud servicios. Para administrar este tráfico, los tipos de máquinas de GPU usan NIC de Titanium de Google.

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 garantiza que el tráfico 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 Google Cloud's la nube privada virtual (VPC).

Las máquinas de aceleradores de alto rendimiento tienen 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, sin importar 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 red:

  • A4X Max, A4X, A4 y A3 Ultra con RDMA de GPUDirect: Estas máquinas usan la red de VPC predeterminada para el tráfico de host de uso general (gVNIC) y requieren una red de VPC adicional para el tráfico de host de uso general y una red de VPC compartida para todo el tráfico de GPU a GPU. La VPC de tráfico de GPU debe tener habilitado el perfil de red RDMA. Para obtener más información sobre esta configuración para VMs A4 y VMs A3 Ultra, consulta Crea VPC y subredes.

  • A3 Mega con GPUDirect-TCPXO: Estas máquinas requieren ocho VPC independientes para las NIC de la GPU, que están dedicadas a la comunicación de alto ancho de banda. Para obtener pasos detallados sobre cómo completar esta configuración, consulta Crea VPC y subredes.

  • A3 High con GPUDirect-TCPX: Estas máquinas requieren cuatro VPC independientes para las NIC de la GPU, que están dedicadas a la comunicación de alto ancho de banda. Para obtener pasos detallados sobre cómo completar esta configuración, consulta Crea VPC y subredes.

Esta configuración de múltiples VPC garantiza 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 configurar difiere según el tipo de máquina de GPU. Para 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 de GPU, 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 con GPU de AI Hypercomputer.

Como se muestra en el diagrama anterior, las máquinas de 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 el almacenamiento, fluye a través de las NIC de Titanium de Google que están conectadas a una VPC. La comunicación de alto rendimiento de GPU a GPU usa interfaces de red y VPC independientes, optimizadas con tecnologías como RDMA, lo que garantiza un ancho de banda alto y una latencia baja para las cargas de trabajo de IA y AA.

Bibliotecas y componentes de red

Para maximizar el ancho de banda y el rendimiento de la red, las siguientes bibliotecas y componentes de red te permiten usar GPU con la pila de red 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 reduce los problemas de vecinos ruidosos. Es compatible y recomendado en todas las familias de máquinas, los tipos de máquinas y las generaciones, 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 operaciones de comunicación colectiva. Está diseñada específicamente para entornos de múltiples GPU y nodos, con GPU y redes de NVIDIA. Ejecuta pruebas de NCCL para evaluar el rendimiento de los clústeres implementados. Para obtener más información, consulta Implementa y ejecuta la prueba NCCCL test.
  • Varias redes 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 varias redes en el contexto de GPUDirect, consulta Maximiza el ancho de banda de red de la GPU en clústeres en 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?