Cloud TPU VM PyTorch 빠른 시작

개요: 이 빠른 시작은 PyTorch 및 Cloud TPU 작업에 대해 간략히 소개합니다.

시작하기 전에

Cloud TPU VM 빠른 시작 중 하나를 시작하기 전에 Cloud TPU 사용자 가이드를 읽어보시기 바랍니다. Google Cloud 프로젝트를 설정하는 방법과 Cloud TPU VM을 만드는 방법을 설명하는 가이드입니다.

Google 계정으로 로그인합니다. 아직 계정이 없으면 새 계정을 등록하세요. Google Cloud Console의 프로젝트 선택기 페이지에서 클라우드 프로젝트를 선택하거나 만듭니다. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

Cloud TPU API 사용 설정

Cloud Shell에서 다음 gcloud 명령어를 사용하여 Cloud TPU API를 사용 설정합니다. Google Cloud Console에서도 사용 설정할 수 있습니다.

$ gcloud services enable tpu.googleapis.com

gcloud 명령어 구성

다음 명령어를 실행하여 gcloud GCP 프로젝트를 사용하도록 구성하고 TPU VM 미리보기에 필요한 구성요소를 설치합니다.

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

gcloud를 사용하여 Cloud TPU VM 만들기

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

필수 입력란

zone
Cloud TPU를 만들려는 영역입니다.
accelerator-type
만들 Cloud TPU의 유형입니다.
version
Cloud TPU 런타임 버전입니다.

Cloud TPU VM에 연결

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

필수 입력란

tpu_name
연결하려는 TPU VM의 이름입니다.
zone
Cloud TPU를 만들려는 영역입니다. 현재 europe-west4-aus-central1-a가 지원됩니다.
project-id
GCP 프로젝트 ID입니다.

XRT TPU 기기 구성 설정

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

PyTorch 버전 변경

사전 설치된 버전 대신 PyTorch 1.9를 사용하려면 학습을 시작하기 전에 다음 명령어를 실행하세요.

  (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

간단한 계산 수행:

Python 3 인터프리터 시작:

(vm)$ python3

명령어의 출력:

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 패키지 가져오기

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

계산 수행

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

명령어의 출력:

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

Python 인터프리터 종료:

>>> exit()

삭제

이 빠른 시작에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

  1. Compute Engine 인스턴스에서 연결을 해제합니다.

    (vm)$ exit

    프롬프트가 username@projectname으로 바뀌면 Cloud Shell에 있는 것입니다.

  2. Cloud TPU를 삭제합니다.

    $ gcloud alpha compute tpus tpu-vm delete tpu-name \
      --zone=us-central1-b
  3. gcloud alpha compute tpus tpu-vm list를 실행하여 리소스가 삭제되었는지 확인합니다. 삭제하는 데 몇 분 정도 걸릴 수 있습니다. 다음과 같은 응답이 나타나면 인스턴스가 성공적으로 삭제되었다는 의미입니다.

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

     NAME             STATUS

다음 단계

Cloud TPU VM에 대해 자세히 알아보기