Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Tipos y topologías de TPU

Descripción general

Cuando creas una configuración de TPU, debes especificar un tipo y tamaño de TPU, o un tipo de TPU y una topología (una disposición lógica de chips). Hay dos formas de hacerlo en una operación gcloud create:

  • Crea una sola string accelerator-type que especifique el tipo (v2, v3 o v4) y la cantidad de TensorCores que se solicitan.
  • Especifica el parámetro type de TPU junto con la marca topology.

Consulta los tipos de TPU para ver ejemplos de cómo crear TPU con la string accelerator-type o las marcas type y topology.

Puedes encontrar información adicional sobre las diferentes versiones y topologías de Cloud TPU en el documento Arquitectura del sistema.

Tipos de TPU

Usa la marca 'accelerator-type&;#39; del comando gcloud para especificar una configuración de TPU. Una configuración de TPU se compone de una versión de TPU y la cantidad de TensorCores. Por ejemplo, el siguiente comando de gcloud crea una TPU v3 con 128 núcleos de tensor:

    $ gcloud compute tpus tpu-vm create tpu-name
      --zone=zone
      --accelerator-type=v3-128
      --version=tpu-vm-tf-2.10.0

También puedes especificar la configuración de TPU como la cantidad de chips TPU y su disposición lógica (la topología). Para obtener más información, consulta Configuraciones de TPU basadas en chips.

Configuraciones de TPU basadas en TensorCore

Para todos los tipos de TPU, la versión está seguida por la cantidad de TensorCores (p.ej., 8, 32, 128). Por ejemplo, --accelerator-type=<code>v2-8</code> especifica una v2 de TPU con 8 núcleos de tensor y v3-1024 especifica una TPU de v3 con 1,024 núcleos de tensor (una porción de un pod v3).

Configuraciones de TPU basadas en chipstopología

Las configuraciones de v4 se especifican con una versión de TPU y una topología. La topología se especifica con 3 tuplas que describen cómo se organizan los chips. Por ejemplo, la configuración de 32-TensorCore se puede representar en chips como 2x2x4 (16 chips, cada uno con 2 núcleos TensorCore). La tupla triple solo especifica la topología, no la configuración, que requiere una versión de TPU.

La representación de una topología v4 es AxBxC, donde A<=B<=C y A,B,C son todos <=4 o todos los múltiplos de 4. Los valores A, B y C son los recuentos de chips de las tres dimensiones. Las topologías en las que 2A=B=C o 2A=2B=C también tienen variantes optimizadas para la comunicación general, por ejemplo, 4×4×8, 8×8×16 y 12×12×24.

Para obtener más información sobre las topologías de v4, consulta Configuraciones de TPU v4.

Crea topologías basadas en chipstopología (v4)

Con la versión 4, se ven dispositivos en lugar de TensorCore, un dispositivo por chip. A fin de especificar topologías basadas en chipstopología, v4 introdujo formatos de topología tridimensionales (por ejemplo, 4x4x4) junto con una marca --topology para la operación de creación de TPU gcloud. Las tablas que se muestran en Variantes de topología incluyen ejemplos de otras topologías basadas en topologías de chip compatibles.

Puedes especificar un tipo y una topología v4 con las marcas type y topology en la operación de creación gcloud. Por ejemplo, con el siguiente comando de gcloud, se crea una TPU v4 con 64 chips en una topología de cubo de 4 x 4 x 4.

  $ gcloud compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=4x4x4
    --version=tpu-vm-tf-2.10.0

El valor admitido para --type es v4.

Variantes de topología

La topología estándar asociada con un recuento de chips o TensorCore determinado es la más similar a un cubo (consulta Formas de topología). Esta forma hace que sea probable que sea la mejor opción para el entrenamiento de AA paralelo de datos. Otras topologías pueden ser útiles para cargas de trabajo con múltiples tipos de paralelismo (por ejemplo, paralelismo de datos y modelos, o la partición espacial de una simulación). Estas cargas de trabajo funcionan mejor si la forma de la porción coincide con el paralelismo que se usa. Por ejemplo, colocar el paralelismo de modelos en 4 vías en el eje X y el paralelismo de datos en 256 vías en las dimensiones Y y Z coincide con una topología 4x16x16.

Los modelos con varias dimensiones de paralelismo tienen un mejor rendimiento con sus dimensiones de paralelismo asignadas a dimensiones de torus. Por lo general, se trata de modelos de lenguaje grande (LLM) de datos y modelos paralelos. Por ejemplo, para una porción de pod de TPU v4 con topología de 8 × 16 × 16, las dimensiones de los torus son 8, 16 y 16. Es más eficaz usar modelos de paralelismo de 8 o 16 modos (asignados a una de las dimensiones del torso físico). Un paralelismo de modelos de 4 vías sería subóptimo con esta topología, ya que no está alineado con ninguna dimensión del toro, pero sería óptimo con una topología 4x16x32 en la misma cantidad de chips.

Topologías de v4 pequeñas

Cloud TPU admite las siguientes porciones de TPU v4 más pequeñas que 64 chips, un cubo 4x4x4. Puedes crear estas topologías pequeñas de v4 con su nombre basado en TensorCore (por ejemplo, v4-32) o su topología (por ejemplo, 2x2x4):

Nombre (basado en el recuento de TensorCore) Cantidad de chips Topología
v4 a 8 4 2x2x1
Versión 4-16 8 2 × 2 × 2
Versión 4-32 16 2 × 2 × 4
Versión 4-64 32 2 × 4 × 4

Topologías de v4 grandes

Las secciones de TPU v4 están disponibles en incrementos de 64 chips, con formas que son múltiplos de 4 en las tres dimensiones. Las dimensiones también deben estar en orden creciente. En la siguiente tabla, se muestran varios ejemplos. Algunas de estas topologías son topologías "personalizadas" que solo se pueden iniciar mediante la API de topología porque tienen la misma cantidad de chips que una topología con nombre más usada.

Nombre (basado en el recuento de TensorCore) Cantidad de chips Topología
Versión 4-128 64 4x4x4
Versión 4-256 128 4x4x8
Versión 4-512 256 4x8x8
Consulta la API de Topology 256 4x4x16
Versión 4-1024 512 8x8x8
Versión 4-1536 768 8x8x12
Versión 4-2048 1,024 8x8x16
Consulta la API de Topology 1,024 4x16x16
v4-4096 2,048 8x16x16

API de Topology

Para crear porciones de pod de Cloud TPU con topología personalizada, la API de TPU gcloud se puede usar de la siguiente manera:

     $ gcloud compute tpus tpu-vm create tpu-name \
        --zone=us-central2-b \
        --subnetwork=tpusubnet \
        --type=v4 \
        --topology=4x4x16 \
        --version=runtime-version

Formas de topología

En la siguiente imagen, se muestran tres formas de topología posibles y su configuración de marca topology asociada.

imagen

Compatibilidad del tipo de TPU

Puedes cambiar el tipo de TPU a otro tipo de TPU que tenga la misma cantidad de chips o TensorCores (por ejemplo, v3-128 y v4-128) y ejecutar la secuencia de comandos de entrenamiento sin cambios en el código. Sin embargo, si cambias a un tipo de TPU con una cantidad mayor o menor de chips o TensorCores, deberás realizar ajustes y optimizaciones significativos. Para obtener más información, consulta Entrena en pods de TPU.

¿Qué sigue?