TPU v6e

En este documento, se describe la arquitectura y las configuraciones compatibles de Cloud TPU v6e (Trillium).

Trillium es el acelerador de IA de nueva generación de Cloud TPU. En todas las plataformas técnicas, como la API y los registros, y en todo este documento, se hará referencia a Trillium como v6e.

Con una huella de 256 chips por pod, la v6e comparte muchas similitudes con la v5e. Este sistema está optimizado para ser el producto de mayor valor para el entrenamiento, la optimización y la entrega de transformadores, texto a imagen y redes neuronales convolucionales (CNN).

Arquitectura del sistema

Cada chip v6e contiene un TensorCore. Cada TensorCore tiene 4 unidades de multiplicación de matrices (MXU), una unidad vectorial y una unidad escalar. En la siguiente tabla, se muestran las especificaciones clave y sus valores para la TPU v6e en comparación con la TPU v5e.

Especificación v5e v6e
Rendimiento/costo total de propiedad (TCO) (esperado) 0.65x 1
Procesamiento máximo por chip (bf16) 197 TFLOPS 918 TFLOPS
Procesamiento máximo por chip (Int8) 393 TOPS 1836 TOPS
Capacidad de HBM por chip 16 GB 32 GB
Ancho de banda de HBM por chip 819 GBps 1,640 GBps
Ancho de banda de interconexión entre chips (ICI) 1,600 Gbps 3584 Gbps
Puertos ICI por chip 4 4
DRAM por host 512 GiB 1,536 GiB
Chips por host 8 8
Tamaño del pod de TPU 256 chips 256 chips
Topología de interconexión Torón 2D Torón 2D
Procesamiento máximo de BF16 por pod 50.63 PFLOP 234.9 PFLOP
Ancho de banda de reducción total por pod 51.2 TB/s 102.4 TB/s
Ancho de banda de bisección por pod 1.6 TB/s 3.2 TB/s
Configuración de la NIC por host 2 NIC de 100 Gbps NIC de 4 x 200 Gbps
Ancho de banda de red del centro de datos por Pod 6.4 Tbps 25.6 Tbps
Funciones especiales - SparseCore

Configuraciones admitidas

La TPU v6e admite el entrenamiento de hasta 256 chips v6e y la inferencia de host único para hasta 8 chips.

En la siguiente tabla, se muestran las formas de rebanada 2D compatibles con la versión 6e:

Topología Chips TPU Hosts VMs Tipo de acelerador (API de TPU) Tipo de máquina (API de GKE) Alcance ¿Admite inferencia?
1x1 1 1/8 1 v6e-1 ct6e-standard-1t Subhost
2x2 4 1/2 1 v6e-4 ct6e-standard-4t Subhost
2x4 8 1 1 v6e-8 ct6e-standard-8t Host único
2x4 8 1 2 - ct6e-standard-4t Host único No
4x4 16 2 4 v6e-16 ct6e-standard-4t Varios hosts No
4x8 32 4 8 v6e-32 ct6e-standard-4t Varios hosts No
8x8 64 8 16 v6e-64 ct6e-standard-4t Varios hosts No
8x16 128 16 32 v6e-128 ct6e-standard-4t Varios hosts No
16x16 256 32 64 v6e-256 ct6e-standard-4t Varios hosts No

Las porciones con 8 chips (v6e-8) adjuntas a una sola VM están optimizadas para la inferencia, lo que permite que se usen los 8 chips en una sola carga de trabajo de publicación.

Para obtener información sobre la cantidad de VMs de cada topología, consulta Tipos de VM.

Tipos de VM

Cada VM de TPU v6e puede contener 1, 4 u 8 chips. Las porciones de 4 chips y más pequeñas tienen el mismo nodo de acceso a la memoria no uniforme (NUMA). Para obtener más información sobre los nodos NUMA, consulta Acceso a memoria no uniforme en Wikipedia.

Diagrama de un host v6e

Las porciones v6e se crean con VMs de host medio, cada una con 4 chips de TPU. Existen dos excepciones a esta regla:

  • v6e-1: Es una VM con un solo chip, diseñada principalmente para pruebas.
  • v6e-8: Es una VM de host completo que se optimizó para un caso de uso de inferencia con los 8 chips conectados a una sola VM.

En la siguiente tabla, se muestra una comparación de los tipos de VM de TPU v6e:

Tipo de VM Cantidad de CPU virtuales por VM RAM (GB) por VM Cantidad de nodos de NUMA por VM
VM de 1 chip 44 176 1
VM de 4 chips 180 720 1
VM de 8 chips 180 1440 2

Especifica la configuración de v6e

Cuando asignas una porción de TPU v6e con la API de TPU, especificas su tamaño y forma con los parámetros AcceleratorType o AcceleratorConfig.

Si usas GKE, usa la marca --machine-type para especificar un tipo de máquina que admita la TPU que deseas usar. Para obtener más información, consulta Implementa cargas de trabajo de TPU en GKE Standard en la documentación de GKE.

Utilizar AcceleratorType

Cuando asignas recursos de TPU, usas AcceleratorType para especificar la cantidad de TensorCores en una porción. El valor que especifiques para AcceleratorType es una cadena con el formato v$VERSION-$TENSORCORE_COUNT. Por ejemplo, v6e-8 especifica una porción de TPU v6e con 8 TensorCores.

En el siguiente ejemplo, se muestra cómo crear una porción de TPU v6e con 32 TensorCores con AcceleratorType:

gcloud

    $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=zone \
        --accelerator-type=v6e-32 \
        --version=v2-alpha-tpuv6e

Console

  1. En la consola de Google Cloud, ve a la página TPUs:

    Ve a TPUs

  2. Haz clic en Crear TPU.

  3. En el campo Nombre, ingresa un nombre para tu TPU.

  4. En el cuadro Zona, selecciona la zona en la que deseas crear la TPU.

  5. En el cuadro Tipo de TPU, selecciona v6e-32.

  6. En el cuadro Versión de software de TPU, selecciona v2-alpha-tpuv6e. Cuando se crea una VM de Cloud TPU, la versión del software de TPU especifica la versión del entorno de ejecución de TPU que se instalará. Para obtener más información, consulta Imágenes de VM de TPU.

  7. Haz clic en el botón de activación Habilitar colas.

  8. En el campo Nombre del recurso en cola, ingresa un nombre para tu solicitud de recurso en cola.

  9. Haz clic en Crear.

Utilizar AcceleratorConfig

También puedes usar AcceleratorConfig para especificar la cantidad de TensorCores que quieres usar. Sin embargo, como no hay variantes de topología 2D personalizadas para la TPU v6e, no hay diferencia entre usar AcceleratorConfig y AcceleratorType.

Para configurar una TPU v6e con AcceleratorConfig, usa las marcas --version y --topology. Establece --version en la versión de TPU que deseas usar y --topology en la disposición física de los chips TPU en la porción. El valor que especifiques para AcceleratorConfig es una cadena con el formato AxB, en la que A y B son los recuentos de chips en cada dirección.

En el siguiente ejemplo, se muestra cómo crear una porción TPU v6e de 32 TensorCores con AcceleratorType organizado en una topología 4x8:

    $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=zone \
        --type=v6e \
        --topology=4x8 \
        --version=v2-alpha-tpuv6e