Acerca de la segmentación dinámica de GKE

En este documento, se describe el segmentado dinámico en Google Kubernetes Engine (GKE) para Cloud TPU. El segmentado dinámico mejora la eficiencia y la flexibilidad de la TPU, ya que desacopla el aprovisionamiento de la TPU de las necesidades de porción de TPU de la carga de trabajo. El segmentado dinámico ayuda a mejorar el uso de los recursos de la TPU, ya que reduce el tiempo de inicio de la carga de trabajo hasta cinco veces y el tiempo de recuperación hasta 4.5 veces.

El segmentado dinámico está destinado a ingenieros de aprendizaje automático (AA) y de plataformas que desean optimizar el uso de la TPU, reducir el tiempo de aprovisionamiento y mejorar la tolerancia a fallas para las cargas de trabajo de entrenamiento y de inferencia a gran escala.

Antes de leer este documento, debes estar familiarizado con lo siguiente:

¿Qué es el segmentado dinámico?

El segmentado dinámico es una función de optimización de TPU de GKE que desacopla el aprovisionamiento de hardware de TPU físico y estático de la asignación de porciones de TPU en el tiempo de ejecución cuando se programan las cargas de trabajo.

Cuando usas topologías de TPU estáticas, los grupos de nodos de GKE están vinculados a la topología específica que configuraste durante la creación. Debido a esta limitación, si falla algún nodo en un grupo estático, se ve afectado todo el grupo de nodos. La topología de tu carga de trabajo también debe coincidir exactamente con la topología de TPU del grupo de nodos para que se programe, lo que puede requerir un reaprovisionamiento frecuente de la infraestructura de TPU para diferentes cargas de trabajo.

El segmentado dinámico permite que GKE configure porciones de TPU en el tiempo de ejecución cuando se programan las cargas de trabajo. En lugar de crear manualmente grupos de nodos con la topología de TPU exacta requerida para cada carga de trabajo nueva, aprovisionas previamente toda tu capacidad de TPU en grupos de nodos granulares de tamaño fijo. Para Ironwood (TPU7x), cada grupo de nodos consta de una topología 4x4x4, también conocida como subbloque. Un subbloque representa un grupo de 16 nodos de VMs de TPU sin una malla de topología de interconexión entre chips (ICI) activa. En el tiempo de ejecución, cuando se programan las cargas de trabajo, el segmentado dinámico de GKE vuelve a configurar la interconexión de red de TPU para unir varios grupos de nodos en la porción de TPU grande requerida o subdividir los grupos de nodos para formar porciones de TPU más pequeñas. Esta reconfiguración crea la topología multidimensional precisa solicitada por una carga de trabajo en segundos.

Beneficios del segmentado dinámico

La implementación de una arquitectura de TPU dinámica en GKE proporciona las siguientes ventajas:

  • Recuperación más rápida de la carga de trabajo: Si se produce una falla de hardware físico, GKE aísla el problema en una sola partición. El controlador de porciones de GKE cambia automáticamente la forma de la porción activa y vuelve a configurar la red para reemplazar la partición defectuosa por una de repuesto en buen estado. Este proceso mejora la resiliencia o el tiempo medio de recuperación (MTTR) hasta 4.5 veces en comparación con la recreación de todo un grupo de nodos.
  • Inicio acelerado del trabajo: Las porciones de carga de trabajo se pueden formar de forma dinámica, lo que ofrece una mejora de hasta cinco veces en la latencia de inicio del trabajo en comparación con la creación de grupos de nodos estáticos.
  • Aislamiento de fallas: Las fallas de hardware se aíslan en la partición específica en la que se produce la falla. Este aislamiento ayuda a proteger otros trabajos simultáneos en el clúster de fallas en cascada.
  • Uso optimizado de los recursos: El segmentado dinámico ayuda a eliminar la capacidad varada o subutilizada. Debido a que las porciones están configuradas para satisfacer las demandas de la carga de trabajo, el segmentado dinámico ayuda a maximizar el uso de la flota y minimizar el hardware inactivo.
  • Organización declarativa: El segmentado dinámico usa recursos y anotaciones personalizados nativos de Kubernetes, como JobSet y Kueue. Este enfoque administra automáticamente la organización de hardware y redes de bajo nivel.

Configuraciones de segmentado dinámico

El segmentado dinámico ofrece las siguientes configuraciones:

  • Supersegmentado dinámico: combina varios grupos de nodo TPU aprovisionados previamente y separados físicamente para formar una sola porción virtual en el momento de la programación de la carga de trabajo. Por ejemplo, puedes combinar dos grupos de nodos 4x4x4 para formar una topología 4x4x8. Esta capacidad te permite crear porciones que son iguales o mayores que una topología 4x4x4. Esta configuración requiere la versión 1.35.2-gke.1842000 o posterior. Puedes usar el supersegmentado dinámico para entrenar modelos de base grandes que superen la capacidad de un solo bloque de hardware físico.

    El controlador de porciones organiza las reconfiguraciones físicas dentro de la estructura de red del conmutador de circuitos ópticos (OCS). Al volver a configurar el OCS de forma dinámica, GKE extiende la red de interconexión entre chips (ICI) a través de racks de hardware independientes. Desde la perspectiva de las cargas de trabajo, los subbloques combinados operan como una sola malla toroidal. En una malla toroidal, las conexiones se envuelven. Los chips del borde derecho se conectan directamente a los chips del borde izquierdo, y la parte superior se conecta a la inferior. Si visualizas esta disposición, se formará la forma de un toro (una forma de anillo).

  • Subsegmentado dinámico: divide un solo grupo de nodo TPU aprovisionado previamente en varias unidades más pequeñas e independientes a nivel de la carga de trabajo. El subsegmentado dinámico te permite crear topologías más pequeñas dentro de un solo subbloque, específicamente 2x2x1, 2x2x2, 2x2x4 y 2x4x4. Por ejemplo, puedes dividir un subbloque 4x4x4 en una subporción 2x2x4 y dos subporciones 2x2x2. Esta configuración requiere la versión 1.36.0-gke.3712000 o posterior en el canal Rápido.

    Con el subsegmentado dinámico, puedes ejecutar varias cargas de trabajo en un solo grupo de nodos físicos. Por ejemplo, puedes ejecutar el ajuste preciso, la experimentación y la inferencia en línea de forma simultánea. El subsegmentado proporciona aislamiento eléctrico y de red entre estas subporciones, lo que ayuda a aislar las fallas o los impactos en el rendimiento entre las cargas de trabajo.

Características clave de las configuraciones de segmentado dinámico

Las configuraciones de segmentado dinámico tienen las siguientes características:

  • Aprovisionamiento incremental de grupos de nodos: El segmentado dinámico usa el aprovisionamiento incremental, que es un modelo de aprovisionamiento tolerante a errores de grupos de nodos. Este modelo convierte toda tu capacidad de TPU en grupos de nodos que comprenden grupos de 16 nodos de VMs de Ironwood (TPU7x), lo que te permite continuar aprovisionando y usando incluso cubos parcialmente en mal estado.
  • Controlador de porciones: Un controlador de recursos personalizados de Kubernetes que se ejecuta dentro de el plano de control de GKE que administra el segmentado dinámico. El controlador de porciones administra el ciclo de vida de un recurso personalizado de porciones, que representa una porción dinámica (maneja la creación, la supervisión continua y la eliminación). También propaga datos de estado de la infraestructura (host, ICI, OCS) a las etiquetas de nodos para ayudar a identificar nodos candidatos en buen estado.
  • Recurso personalizado de porciones: Representa la porción lógica y, además, inicia la configuración dinámica de los vínculos entre nodos (ICI y OCS) para formar la topología de TPU solicitada. Este proceso une varios subbloques (supersegmentado) o aísla una topología más pequeña dentro de un solo subbloque (subsegmentado). Puedes inspeccionar el progreso o el estado de la formación de porciones dinámicas si inspeccionas los campos de estado del recurso personalizado de Slice.

Requisitos

Para usar el segmentado dinámico en GKE, debes cumplir con los siguientes requisitos:

  • Usa un clúster Estándar en el canal Rápido en una de las siguientes versiones:
    • Para la configuración de supersegmentado dinámico (topologías iguales o mayores que 4x4x4), usa la versión 1.35.2-gke.1842000 o posterior.
    • Para la configuración de subsegmentado dinámico (topologías más pequeñas que 4x4x4), usa la versión 1.36.0-gke.3712000 o posterior.
  • Usa la versión de Ironwood (TPU7x).
  • Usa la imagen de Container-Optimized OS para tus nodos.
  • Para usar el aprovisionamiento incremental, usa las reservas del modo All Capacity. El modo All Capacity es una función habilitada por Cluster Director de TPU.
  • Para el subsegmentado dinámico, asegúrate de que tus nodos tengan eventos de mantenimiento pendientes. Supervisa tus instancias para detectar eventos de mantenimiento pendientes. Si alguno de tus nodos tiene un evento de mantenimiento pendiente con una hora de finalización entre el 18 de septiembre de 2026 y el 30 de septiembre de 2026, debes activar manualmente el evento de mantenimiento del host en esos nodos antes de poder usar el subsegmentado.

Usa programadores para el segmentado dinámico

Para usar el segmentado dinámico, puedes usar cualquiera de las siguientes opciones:

¿Qué sigue?