Guía de inicio rápido

En esta página, se explica cómo utilizar Cloud TPU para acelerar cargas de trabajo de aprendizaje automático de TensorFlow en Compute Engine.

Para Google Kubernetes Engine, consulta la guía rápida de configuración de Cloud TPU.

Para Cloud Machine Learning Engine, consulta la guía acerca de cómo entrenar tu modelo con las TPU.

¿Necesitas ayuda para decidir qué servicio de TPU te conviene?

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Select or create a Google Cloud Platform project.

    Go to the Manage resources page

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. En esta explicación, se usan componentes facturables de Google Cloud Platform. Consulta la página de precios de Cloud TPU a fin de calcular los costos y sigue las instrucciones para limpiar los recursos una vez que termines de usarlos.

Crea un depósito de Cloud Storage

Necesitas un depósito de Cloud Storage a fin de almacenar los datos que utilizas para entrenar el modelo de aprendizaje automático y los resultados del entrenamiento.

  1. Ve a la página de Cloud Storage en GCP Console.

    Ir a la página de Cloud Storage

  2. Crea un depósito nuevo y especifica las siguientes opciones:

    • Un nombre único de tu elección
    • Clase de almacenamiento predeterminada: Regional
    • Ubicación: us-central1

Abre Cloud Shell y utiliza la herramienta ctpu

En esta guía, se utiliza el Servicio de aprovisionamiento de Cloud TPU (ctpu) como una herramienta simple para configurar y administrar Cloud TPU. La guía ejecuta ctpu desde Cloud Shell. Si deseas obtener opciones de configuración más avanzadas, consulta la configuración personalizada.

La herramienta ctpu está previamente instalada en Cloud Shell. Para verificar la configuración de ctpu, sigue estos pasos:

  1. Abre una ventana de Cloud Shell.

    Abrir Cloud Shell

  2. En Cloud Shell, escribe lo siguiente para verificar la configuración de ctpu:

    $ ctpu print-config
    

    Deberías ver un mensaje como este:

    2018/04/29 05:23:03 WARNING: Setting zone to "us-central1-b"
    ctpu configuration:
            name: [your TPU's name]
            project: [your-project-name]
            zone: us-central1-b
    If you would like to change the configuration for a single command invocation, please use the command line flags.
    

    En el mensaje de salida, name es el nombre del recurso TPU (de forma predeterminada, tu nombre de usuario) y zone es la zona geográfica predeterminada para Compute Engine. Puedes cambiarlos si ejecutas ctpu up para crear una VM de Compute Engine y una Cloud TPU.

  3. Observa los comandos ctpu:

    $ ctpu

    Deberías consultar una guía de uso, incluida una lista de subcomandos y marcas con una descripción breve de cada uno.

Crea una VM de Compute Engine y una Cloud TPU

Ejecuta el siguiente comando para configurar una máquina virtual (VM) de Compute Engine y una Cloud TPU con servicios asociados. La combinación de recursos y servicios se denomina conjunto de Cloud TPU. El parámetro --tpu-size es un parámetro opcional que puedes usar para especificar el tamaño de configuración de Cloud TPU, un dispositivo único de Cloud TPU o segmentos de un pod de Cloud TPU (Alfa).

$ ctpu up [optional: --name --zone --tpu-size] 

Deberías ver un mensaje como este:

ctpu will use the following configuration:

   Name: [your TPU's name]
   Zone: [your project's zone]
   GCP Project: [your project's name]
   TensorFlow Version: 1.12
   VM:
     Machine Type: [your machine type]
     Disk Size: [your disk size]
     Preemptible: [true or false]
   Cloud TPU:
     Size: [your TPU size]
     Preemptible: [true or false]

OK to create your Cloud TPU resources with the above configuration? [Yn]:

Presiona y para crear tus recursos de Cloud TPU.

El comando ctpu up realiza las siguientes tareas:

  • Habilita los servicios de Compute Engine y Cloud TPU.
  • Crea una VM de Compute Engine con la última versión estable de TensorFlow previamente instalada. La zona predeterminada es us-central1-b. Como referencia, Cloud TPU está disponible en las siguientes zonas:

    EE.UU.

    Cloud TPU v2 y TPU v2 interrumpible us-central1-b
    us-central1-c
    us-central1-f (programa TFRC solamente)
    Cloud TPU v3 (Beta) y TPU v3 interrumpible (Beta) us-central1-a
    us-central1-b
    us-central1-f
    (programa TFRC solamente)
    Pod de Cloud TPU v2 (Alfa) us-central1-a

    Europa

    Cloud TPU v2 y TPU v2 interrumpible europe-west4-a
    Cloud TPU v3 (Beta) y TPU v3 interrumpible (Beta) europe-west4-a
    Pod de Cloud TPU v2 (Alfa) europe-west4-a

    Asia-Pacífico

    Cloud TPU v2 y TPU v2 interrumpible asia-east1-c
  • Crea una Cloud TPU con la versión correspondiente de TensorFlow y pasa el nombre de la Cloud TPU a la VM de Compute Engine como una variable del entorno (TPU_NAME).

  • Otorga funciones específicas de IAM a la cuenta de servicio de Cloud TPU para garantizar que Cloud TPU tenga acceso a los recursos que necesita del proyecto de GCP.

  • Realiza otras comprobaciones.

  • Te registra en tu nueva VM de Compute Engine.

Puedes ejecutar ctpu up las veces que quieras. Por ejemplo, si pierdes la conexión SSH a la VM de Compute Engine, ejecuta ctpu up para restablecer la conexión, y especifica --name y --zone si cambiaste los valores predeterminados. Consulta la documentación de ctpu para obtener más información.

A partir de este punto, un prefijo (vm)$ significa que debes ejecutar el comando en la instancia de VM de Compute Engine.

Verifica tu VM de Compute Engine

Cuando el comando ctpu up haya terminado de ejecutarse, verifica que el indicador de shell haya cambiado de username@project a username@tpuname. Este cambio indica que accediste a la VM de Compute Engine.

Usa los permisos predeterminados o cambia los permisos de acceso a Cloud Storage

El comando ctpu up configura los permisos predeterminados para la cuenta de servicio de Cloud TPU. Si deseas obtener permisos más detallados, revisa y actualiza los permisos de nivel de acceso.

Ejecuta un cálculo de TensorFlow

Utiliza Cloud TPU para ejecutar una secuencia de comandos de TensorFlow sencilla que realiza el cálculo A*X+Y:

  1. Abre un editor de texto y crea una nueva secuencia de comandos de Python llamada cloud-tpu.py:

    (vm)$ pico cloud-tpu.py
    
  2. Copia el contenido de la siguiente secuencia de comandos de muestra en el archivo y, a continuación, guárdalo.

    import os
    import tensorflow as tf
    from tensorflow.contrib import tpu
    from tensorflow.contrib.cluster_resolver import TPUClusterResolver
    
    def axy_computation(a, x, y):
      return a * x + y
    
    inputs = [
        3.0,
        tf.ones([3, 3], tf.float32),
        tf.ones([3, 3], tf.float32),
    ]
    
    tpu_computation = tpu.rewrite(axy_computation, inputs)
    
    tpu_grpc_url = TPUClusterResolver(
        tpu=[os.environ['TPU_NAME']]).get_master()
    
    with tf.Session(tpu_grpc_url) as sess:
      sess.run(tpu.initialize_system())
      sess.run(tf.global_variables_initializer())
      output = sess.run(tpu_computation)
      print(output)
      sess.run(tpu.shutdown_system())
    
    print('Done!')
    
  1. Ejecuta el programa de TensorFlow. El programa crea un elemento tf.Session() con un gRPC que apunta a tu extremo de Cloud TPU y ejecuta un cálculo simple.
    (vm)$ python cloud-tpu.py
    [array([[4., 4., 4.],
           [4., 4., 4.],
           [4., 4., 4.]], dtype=float32)]
    Done!

Limpia

A fin de evitar que se generen cargos en tu cuenta de GCP por los recursos que usaste en esta guía de inicio rápido:

  1. Desconéctate de la VM de Compute Engine:

    (vm)$ exit
    

    Ahora, el indicador debe ser user@projectname, lo cual indica que estás en Cloud Shell.

  2. En Cloud Shell, ejecuta el siguiente comando para borrar la VM de Compute Engine y Cloud TPU:

    $ ctpu delete
    
  3. Ejecuta ctpu status para asegurarte de no tener instancias asignadas y así evitar cargos innecesarios por el uso de la TPU. La eliminación puede tardar varios minutos. Una respuesta como la que se muestra a continuación indica que no hay más instancias asignadas:

    2018/04/28 16:16:23 WARNING: Setting zone to "us-central1-b"
    No instances currently exist.
            Compute Engine VM:     --
            Cloud TPU:             --
    
  4. Cuando ya no necesites el depósito de Cloud Storage que creaste durante este instructivo, usa el comando gsutil para borrarlo. Reemplaza YOUR-BUCKET-NAME por el nombre del depósito de Cloud Storage:

    $ gsutil rm -r gs://YOUR-BUCKET-NAME
    

    Consulta la guía de precios de Cloud Storage para obtener los límites de almacenamiento gratuito y otra información sobre precios.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…