En este documento, se describe el segmentado dinámico en Google Kubernetes Engine (GKE). El segmentado dinámico te permite configurar sub-bloques de TPU aprovisionados en diferentes topologías. Esta capacidad reduce la necesidad de volver a crear grupos de nodos, mejora la tolerancia a fallas, ya que permite la recuperación automática cuando se produce un error, y optimiza el uso de recursos.
El segmentado dinámico está diseñado para 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 inferencia y entrenamiento a gran escala.
Antes de leer este documento, debes familiarizarte con lo siguiente:
- TPUs in GKE
- Cluster Director de TPU El segmentado dinámico es una función de la TPU que habilita Cluster Director de la TPU.
- Reservas en el modo All Capacity. Las funciones de segmentación dinámica están disponibles exclusivamente en las TPU que usan el modo All Capacity.
¿Qué es la segmentación dinámica?
El segmentado dinámico ofrece flexibilidad en la administración de la capacidad de Cloud TPU, ya que te permite desacoplar el aprovisionamiento de TPU. El segmentado dinámico implica el siguiente proceso:
- Aprovisiona recursos como unidades más pequeñas: Aprovisionas recursos como unidades llamadas subbloques. Un subbloque es la unidad lógica fundamental de capacidad de Ironwood (TPU7x).
En el caso de Ironwood (TPU7x), un subbloque representa un grupo de 16 nodos de VMs de TPU con una topología
4x4x4de chips TPU interconectados. En el contexto del modo All Capacity de TPU y el segmentado dinámico, un grupo de nodos se asigna directamente a un subbloque. - Unir subbloques: El corte dinámico une estos subbloques en cortes más grandes.
Beneficios del segmentado dinámico
El segmentado dinámico te ayuda a lograr lo siguiente:
- Reducir el tiempo de aprovisionamiento: El aprovisionamiento individual de subbloques permite un aprovisionamiento general más rápido, ya que minimiza el impacto de cualquier falla individual.
- Reducción del tiempo de recuperación: Si se produce una falla en un chip TPU, la unidad de falla más pequeña es un subbloque. El segmentado dinámico aísla los subbloques defectuosos para que las cargas de trabajo se puedan reprogramar en subbloques en buen estado más rápido que si se aprovisionara una porción grande completa.
- Cambio de forma de la capacidad: Si tienes diversos requisitos de carga de trabajo, no es necesario que borres y vuelvas a crear grupos de nodos para los cambios de topología. En cambio, puedes reconfigurar de forma dinámica los grupos de nodos aprovisionados para que coincidan con las formas especificadas.
Elementos clave del segmentado dinámico
El segmentado dinámico introduce los siguientes conceptos clave:
- Aprovisionamiento incremental de grupos de nodos: El corte 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 de grupos de 16 nodos de VMs de TPU.
- Controlador de segmentación: Es un controlador de recursos personalizados de Kubernetes que se ejecuta dentro del plano de control de GKE y administra la segmentación dinámica. El controlador de segmentación administra el ciclo de vida de un recurso personalizado de Slice, que representa una segmentación dinámica. El controlador de segmentos se encarga de crear, supervisar de forma continua y borrar el Slice. Cuando usas un programador, este dirige la creación y el borrado del recurso personalizado Slice.
- Recurso personalizado de segmentación: Une dinámicamente subbloques según la topología de TPU solicitada. Este proceso se basa en la reconfiguración dinámica de la red de OCS para conectar los grupos de nodo TPU, lo que ayuda a garantizar un rendimiento optimizado. Puedes inspeccionar el progreso o el estado de la formación de segmentos dinámicos a través de los campos de estado del recurso personalizado de Slice.
Usa programadores para la segmentación dinámica
Para usar la segmentación dinámica, puedes usar cualquiera de las siguientes opciones:
- Usa tu propio programador para administrar los recursos personalizados de Slice. Esta opción es útil si tienes requisitos de programación complejos o si deseas integrar la segmentación dinámica con tu infraestructura de programación existente. Para comenzar, consulta Cómo usar el segmentado dinámico con un programador personalizado.
- Usa un programador para crear automáticamente un recurso personalizado de Slice. Puedes configurar Kueue y la programación que tiene en cuenta la topología (TAS) para crear automáticamente un recurso personalizado de Slice. Para comenzar, consulta Programa segmentos dinámicos con Kueue y TAS.