Kurzanleitung: Cloud TPU VM PyTorch

Übersicht: In dieser Kurzanleitung erhalten Sie eine kurze Einführung in die Arbeit mit PyTorch und Cloud TPU.

Hinweis

Lesen Sie vor dem Starten einer der Cloud TPU VM-Kurzanleitungen das Cloud TPU-Nutzerhandbuch. Darin wird beschrieben, wie Sie ein Google Cloud-Projekt einrichten und eine Cloud TPU-VM erstellen.

Melden Sie sich bei Ihrem Google-Konto an. Wenn Sie noch kein Konto haben, registrieren Sie sich für ein neues Konto. Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines. Die Abrechnung für das Projekt muss aktiviert sein.

Cloud TPU API aktivieren

Aktivieren Sie die Cloud TPU API mit dem folgenden gcloud-Befehl in Cloud Shell. Sie können die Erweiterung auch über die Google Cloud Console aktivieren.

$ gcloud services enable tpu.googleapis.com

gcloud-Befehl konfigurieren

Führen Sie die folgenden Befehle aus, um gcloud für die Verwendung Ihres GCP-Projekts zu konfigurieren und für die TPU-VM-Vorschau erforderliche Komponenten zu installieren.

$ gcloud config set account your-email-account
$ gcloud config set project project-id

Cloud TPU-VM mit gcloud erstellen

$ gcloud alpha compute tpus tpu-vm create tpu-name \
  --zone=us-central1-b \
  --accelerator-type=v3-8 \
  --version=v2-alpha

Pflichtfelder

zone
Die Zone, in der Sie die Cloud TPU erstellen möchten.
accelerator-type
Der Typ der zu erstellenden Cloud TPU.
version
Die Cloud TPU-Laufzeitversion.

Verbindung zur Cloud TPU-VM herstellen

$ gcloud alpha compute tpus tpu-vm ssh tpu-name --zone us-central1-b --project project-id

Pflichtfelder

tpu_name
Der Name der TPU-VM, mit der Sie eine Verbindung herstellen.
zone
Die Zone, in der Sie die Cloud TPU erstellen. Derzeit werden europe-west4-a und us-central1-a unterstützt.
project-id
Ihre GCP-Projekt-ID.

XRT-TPU-Gerätekonfiguration festlegen

  (vm)$ export XRT_TPU_CONFIG="localservice;0;localhost:51011"

PyTorch-Version ändern

Wenn Sie PyTorch 1.9 anstelle der vorinstallierten Version verwenden möchten, führen Sie vor dem Training die folgenden Befehle aus:

  (vm)$ sudo bash /var/scripts/docker-login.sh
  (vm)$ sudo docker rm libtpu || true
  (vm)$ sudo docker create --name libtpu gcr.io/cloud-tpu-v2-images/libtpu:pytorch-1.9 "/bin/bash"
  (vm)$ sudo docker cp libtpu:libtpu.so /lib
  (vm)$ sudo pip3 uninstall --yes torch torch_xla torchvision
  (vm)$ sudo pip3 install torch==1.9.0
  (vm)$ sudo pip3 install torchvision==0.10.0
  (vm)$ sudo pip3 install https://storage.googleapis.com/tpu-pytorch/wheels/tpuvm/torch_xla-1.9-cp38-cp38-linux_x86_64.whl

Führen Sie eine einfache Berechnung durch:

Starten Sie den Python 3-Interpreter:

(vm)$ python3

Ausgabe des Befehls:

Python 3.6.9 (default, Oct  8 2020, 12:12:24)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

PyTorch-Pakete importieren

>>> import torch
>>> import torch_xla.core.xla_model as xm

Berechnung

>>> dev = xm.xla_device()
>>> t1 = torch.randn(3,3,device=dev)
>>> t2 = torch.randn(3,3,device=dev)
>>> print(t1 + t2)

Ausgabe des Befehls:

tensor([[-0.2121,  1.5589, -0.6951],
        [-0.7886, -0.2022,  0.9242],
        [ 0.8555, -1.8698,  1.4333]], device='xla:1')

Beenden Sie den Python-Interpreter:

>>> exit()

Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. Trennen Sie die Verbindung zur Compute Engine-Instanz, sofern noch nicht geschehen:

    (vm)$ exit

    Die Eingabeaufforderung sollte nun username@projectname lauten und angeben, dass Sie sich in Cloud Shell befinden.

  2. Löschen Sie Ihre Cloud TPU.

    $ gcloud alpha compute tpus tpu-vm delete tpu-name \
      --zone=us-central1-b
  3. Prüfen Sie, ob die Ressourcen gelöscht wurden. Führen Sie dazu gcloud alpha compute tpus tpu-vm list aus. Der Löschvorgang kann einige Minuten dauern. Eine Antwort wie die folgende gibt an, dass Ihre Instanzen erfolgreich gelöscht wurden.

     $ gcloud alpha compute tpus tpu-vm list --zone=us-central1-b

     NAME             STATUS

Nächste Schritte

Mehr über Cloud TPU-VMs erfahren: