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 la tasa de transferencia útil, es decir, el progreso efectivo de una tarea de entrenamiento de aprendizaje automático.
Herramientas de redes por infraestructura
La arquitectura de red para tu implementación depende de la infraestructura que elijas, GPU generales o GPU agrupadas.
Herramientas de redes de VPC estándar para GPU generales
Las GPU generales usan redes de VPC estándar de Google Cloud.
- Arquitectura: Se basa en un diseño de VPC estándar y multiusuario para la inferencia, la entrega de modelos y la investigación exploratoria.
- Protocolos: Usa TCP/IP en la NIC virtual de Google (gVNIC).
Tejidos de alto rendimiento para GPU agrupadas
AI Hypercomputer te ayuda a implementar máquinas con GPU que usan una arquitectura de red jerárquica alineada con rieles. 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 agrupadas incluye tres componentes:
- Subbloques: Es 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 GPU dentro del subbloque. El acceso directo a memoria remota (RDMA) sobre Ethernet convergente (RoCE) facilita esta comunicación directa. Una biblioteca de NCCL mejorada que está optimizada para la topología encarrilada de Google controla los colectivos de comunicación de GPU.
- Bloques: Es una colección de subbloques interconectados por una red de alta velocidad que no bloquea y que 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: Es una colección de bloques interconectados que pueden escalar a miles de GPU, 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 previsibilidad incluso a gran escala. Para habilitar 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 con GPU usan una combinación de tecnologías para proporcionar un alto rendimiento, una alta capacidad de procesamiento y una 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 habilita el RDMA eficiente entre GPU en diferentes máquinas.
Pilas de red de GPU
Una pila de red es un conjunto de protocolos, controladores y capas de software que funcionan 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 red y sus tipos de máquinas asociados:
| Pila de red | Descripción | Tipo de máquina de GPU |
|---|---|---|
| GPUDirect RDMA | Habilita una ruta directa para el intercambio de datos entre una GPU y otro dispositivo. Para las instancias A5X, A4X Max y A4X, esta pila de red usa RoCE. Para obtener más información, consulta Opciones de configuración del clúster con RDMA de GPUDirect. | |
| 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 A3 High. Para obtener información sobre cómo maximizar el ancho de banda de la red en clústeres de GKE que usan GPUDirect-TCPXO, consulta Maximiza el ancho de banda de la red de 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 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 la red en clústeres de GKE que usan GPUDirect-TCPX, consulta Maximiza el ancho de banda de la red de GPU en clústeres en modo estándar y selecciona la pestaña GPUDirect-TCPX. |
|
| TCP/IP estándar | Es el protocolo de red de referencia para las cargas de trabajo generales (estándar). Proporciona alta confiabilidad y amplia compatibilidad con los servicios de VPC estándar. |
|
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 de host y la comunicación con otros servicios de Google Cloud.
Para administrar este tráfico, los tipos de máquinas de GPU usan la NIC virtual de Google (gVNIC) o, en el caso de las instancias de equipos físicos A5X y A4X Max, la interfaz de red de la función de ruta de datos de infraestructura (IDPF) de Intel en 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 administrar 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 varias VPC depende del tipo de máquina de GPU y de su pila de red:
A5X, A4X Max, A4X, A4 y A3 Ultra con GPUDirect RDMA: Estas máquinas están respaldadas por dos tipos de NIC físicas: una que admite el tráfico de uso general y otra que admite el tráfico de RDMA. Las interfaces de red que se asignan a la NIC física de uso general (la interfaz
nic0y una interfaz de red adicional) se conectan a redes de VPC normales. Las interfaces de red 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 usar GPUDirect RDMA. En total, estos tipos de máquinas usan hasta tres redes de VPC. Para las implementaciones de A5X, A4X Max y A4X dentro de un solo subbloque, el tejido de NVLink de varios nodos controla la comunicación entre GPU, por lo que la red de VPC de RDMA es opcional. Para aprender a configurar esta infraestructura de red, consulta Crea VPC 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 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 GPU, que se dedican a la comunicación de gran ancho de banda. Para obtener pasos detallados sobre cómo completar esta configuración, consulta Crea VPC 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 esenciales de GPU a GPU.
La configuración de red de múltiples VPC que debes establecer varía 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 Herramientas de redes y máquinas de GPU.
En el siguiente diagrama, se muestra la arquitectura de red de una máquina con GPU agrupadas, 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.
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 GPU a GPU de alto rendimiento usa interfaces de red
y VPC independientes, optimizadas con tecnologías como
RDMA, lo que ayuda a garantizar un gran ancho de banda y una baja latencia 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 ayuda a reducir los problemas de vecinos ruidosos. gVNIC se recomienda 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 operaciones de comunicación colectiva. La NCCL está diseñada específicamente para entornos de varias GPU y varios nodos que usan 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 Prueba el rendimiento de la red.
- Redes múltiples de GKE: La compatibilidad con varias redes para Pods habilita 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 GPUDirect RDMA.
Para obtener más detalles sobre las pilas de software disponibles, consulta Imágenes de Docker y del SO.
¿Qué sigue?
- Para aprender a proteger tus implementaciones, consulta Prácticas recomendadas para usar cuentas de servicio.
- Para obtener información sobre cómo endurecer tu red, consulta Reglas de firewall de VPC.
- Para obtener más información sobre la conectividad de los aceleradores, consulta Descripción general de las redes de GPU.