Cloud TPU VM TensorFlow 빠른 시작

개요: 이 빠른 시작은 Cloud TPU 작업을 간략히 소개합니다. 이 빠른 시작에서는 Cloud TPU를 사용하여 ResNet을 학습시킵니다.

시작하기 전에

GCP 프로젝트 설정

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

$ gcloud config set project project-id

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=europe-west4-a \
  --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 europe-west4-a --project project-id

필수 입력란

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

Cloud TPU VM에 TensorFlow 설치

(vm)$ git clone https://github.com/tensorflow/models.git
(vm)$ pip3 install -r models/official/requirements.txt

시스템 확인

libtpu 라이브러리를 직접 사용하여 버퍼를 TPU에 로드하고 간단한 계산을 실행하는 간단한 테스트를 실행합니다. 이 명령어는 단일 기기 TPU에서만 지원됩니다.

$ /usr/share/tpu/libtpu_client

다음과 같은 출력이 표시됩니다.

------ Going to Query Version ------
TPU Driver Version: 0.0.0-dev
------ Going to Open a TPU Driver ------
------ Going to Query for System Information ------
------ Going to Compile a TPU program ------
------ Going to Load a TPU program ------
------ Going to Allocate a TPU Buffer ------
------ Going to Allocate a TPU Buffer ------
------ Going to Allocate a TPU Buffer ------
------ Going to Transfer To Device ------
------ Going to Transfer To Device ------
------ Going to Execute a TPU program ------
------ Going to Transfer From Device ------
------ Going to Unload a TPU program ------
------ Going to Deallocate a TPU Buffer ------
------ Going to Deallocate a TPU Buffer ------
------ Going to Deallocate a TPU Buffer ------
sum:
3 3 3 3 3 3 3 3 3 3 [...]

TensorFlow를 사용하여 간단한 예시 실행

이 예시에서는 TPU에서 간단한 계산을 수행합니다.

$ python3 /usr/share/tpu/tensorflow/simple_example.py

단일 TPU에서 Resnet 학습

$ export PYTHONPATH=/usr/share/tpu/tensorflow/resnet50_keras
$ python3 /usr/share/tpu/tensorflow/resnet50_keras/resnet50_single_tpu.py

삭제

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

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

    (vm)$ exit
    

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

  2. Cloud TPU를 삭제합니다.

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

    $ gcloud alpha compute tpus tpu-vm list --zone=europe-west4-a
    
    NAME             STATUS
    

다음 단계

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