컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Cloud TPU VM 사용자 가이드

이 가이드에서는 Cloud TPU VM을 사용하기 위해 Google Cloud 프로젝트를 설정하는 방법을 설명합니다. 여기에서는 Cloud TPU VM을 사용하기 위한 명령어와 Cloud TPU VM을 처음 사용할 때 접할 수 있는 일반적인 문제에 대한 해결책을 설명합니다.

Cloud TPU VM은 TPU 호스트 머신(Cloud TPU 기기에 연결된 머신)에서 실행되며 TPU로 작업할 때 더 우수한 성능과 사용성을 제공합니다.

Cloud TPU를 처음 사용하는 경우 Cloud TPU 빠른 시작을 확인하세요.

TPU VM을 사용해 Cloud TPU Pod에서 실행하려면 TPU Pod에서 학습을 참조하세요.

Cloud TPU VM에는 새로운 Cloud TPU 아키텍처가 도입되었습니다. Cloud TPU 아키텍처에 대한 자세한 내용은 시스템 아키텍처를 참조하세요.

Google Cloud 프로젝트 설정

Google Cloud CLI를 설치한 후 다음 명령어를 사용하여 gcloud 구성요소를 설치합니다.

gcloud components install

gcloud 구성요소에 대한 자세한 내용은 Google Cloud CLI 구성요소 관리를 참조하세요.

Google Cloud 프로젝트 준비

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

$ gcloud config set project project-id

Cloud TPU API 사용 설정

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

$ gcloud services enable tpu.googleapis.com

gcloud 명령어 구성

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

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

TPU 관리

gcloud 또는 curl을 사용하여 Cloud TPU VM을 관리할 수 있습니다. 자세한 내용은 Cloud TPU 관리를 참조하세요.

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

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=zone \
  --accelerator-type=4-8 \
  --version=tpu-vm-tf-2.11.0

필수 입력란

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

선택적 플래그

shielded-secure-boot
보안 부팅이 사용 설정된 상태로 TPU 인스턴스가 생성되도록 지정합니다. 이 플래그를 사용하면 TPU VM이 보안 VM 인스턴스로 생성됩니다. 자세한 내용은 보안 VM이란 무엇인가요?를 참조하세요.

TPU VM을 만들 때 --metadata startup-script 플래그를 사용하여 시작 스크립트를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

$ gcloud compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v4-8 \
--version=tpu-vm-tf-2.10.0-v4 \
--metadata startup-script=your-script

시작 스크립트는 유지보수 이벤트로 인해 TPU VM이 다시 시작될 때마다, 그리고 TPU VM이 프로비저닝될 때마다 실행됩니다.

curl을 사용하여 Cloud TPU VM 만들기

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
  runtime_version:'tpu-vm-tf-2.10.0-v4', \
  network_config: {enable_external_ips: true}, \
  shielded_instance_config: { enable_secure_boot: true }}" \
  https://tpu.googleapis.com/v2/projects/project-id/locations/us-central1-b/nodes?node_id=node_name

필수 입력란

runtime_version
사용할 Cloud TPU 런타임 버전입니다.
project
: 등록된 Google Cloud 프로젝트 이름입니다.
zone
Cloud TPU를 만들려는 영역입니다.
node_name
만들려는 TPU VM의 이름입니다.

Cloud TPU VM에 연결

  1. (선택사항) SSH용 방화벽 설정

기본 네트워크는 모든 VM에 대해 SSH 액세스를 허용하도록 사전 구성된 상태로 제공됩니다. 기본 네트워크를 사용하지 않거나 기본 네트워크 설정이 수정된 경우에는 방화벽 규칙을 추가하여 SSH 액세스를 명시적으로 사용 설정해야 할 수 있습니다.

$ gcloud CLI compute firewall-rules create --network=network allow-ssh --allow=tcp:22
  1. SSH를 사용하여 TPU VM에 연결
$ gcloud compute tpus tpu-vm ssh tpu-name --zone zone --project project-id

필수 입력란

tpu_name
연결하려는 TPU VM의 이름입니다.
zone
Cloud TPU를 만들려는 영역입니다.
project-id
: Google Cloud 프로젝트 ID입니다.

선택사항 입력란

user
SSH를 통해 Cloud TPU VM에 연결할 때 인증에 사용되는 사용자 이름을 지정할 수 있습니다. TPU 이름 앞에 $USER@를 사용합니다(예: my-email-account@tpu-node-1).
worker
Cloud TPU Pod의 경우 연결할 작업자 VM을 지정할 수 있습니다. 기본값은 TPU 포드와 연결된 첫 번째 VM인 작업자 0입니다.
ssh-key-file
SSH 키 파일에 대한 경로입니다. 기본 경로는 ~/.ssh/google_compute_engine입니다.
internal-ip
내부 IP 주소를 사용하여 TPU VM에 연결합니다. 이 연결이 작동하려면 연결하려는 TPU VM의 내부 IP 주소에 대해 SSH 연결을 허용하도록 네트워크 및 방화벽을 구성해야 합니다.
command
TPU VM에서 실행할 명령어입니다. 명령어가 대상 TPU VM에서 실행된 후 종료됩니다.
tunnel-through-iap
TCP 전달을 위해 IAP(Identity-Aware Proxy)를 사용하여 SSH 연결을 터널링합니다. 자세한 내용은 TCP 전달 개요를 참조하세요.

TPU Pod와 연결된 다른 TPU VM에 연결하려면 명령어에 --worker ${WORKER_NUMBER}를 추가하세요. 여기서 WORKER_NUMBER는 0부터 시작하는 색인입니다.

Cloud TPU 리소스 나열

지정된 영역에서 모든 Cloud TPU를 나열할 수 있습니다.

$ gcloud compute tpus tpu-vm list --zone=zone

필수 입력란

zone
Cloud TPU를 만들려는 영역입니다.

이 명령어는 지정된 영역의 Cloud TPU 리소스를 나열합니다. 현재 설정된 리소스가 없으면 출력에서 VM과 TPU가 대시(-)로만 표시됩니다.

Cloud TPU에 대한 정보 검색

다음 명령어를 실행하여 특정 Cloud TPU에 대한 정보를 검색할 수 있습니다.

$ gcloud compute tpus tpu-vm describe tpu-name \
  --zone=zone

필수 입력란

tpu-name
생성할 Cloud TPU의 이름입니다.
zone
Cloud TPU가 생성된 영역입니다.

Cloud TPU 리소스 중지

다음 명령어를 사용하여 단일 Cloud TPU를 중지할 수 있습니다. TPU 포드를 중지할 수 없습니다.

$ gcloud compute tpus tpu-vm stop tpu-name \
  --zone=zone

필수 입력란

tpu-name
생성할 Cloud TPU의 이름입니다.
zone
Cloud TPU를 만든 영역입니다.

Cloud TPU 리소스 시작

Cloud TPU가 중지되었으면 다음 명령어를 사용하여 다시 시작할 수 있습니다.

$ gcloud compute tpus tpu-vm start tpu-name --zone  zone

명령어 플래그 설명

tpu-name
시작할 Cloud TPU의 이름입니다.
zone
Cloud TPU가 생성된 영역입니다.

VM 및 Cloud TPU 리소스 삭제

사용을 완료한 후 Cloud TPU를 삭제할 수 있습니다.

$ gcloud compute tpus tpu-vm delete tpu-name \
  --zone=zone

필수 입력란

zone
Cloud TPU가 생성된 영역입니다.

성능 측정항목 캡처

명령줄 스크립트 또는 텐서보드를 사용하여 성능 프로필을 캡처할 수 있습니다. 텐서보드 설치에 대한 안내는 텐서보드 설정을 참조하세요.

TensorFlow 모델의 경우 표준 TensorFlow 프로파일링 콜백 메서드를 사용하여 프로필 데이터를 자동으로 캡처할 수 있습니다.

TensorFlow 모델의 프로필 데이터를 수동으로 캡처하려면 TPU VM에서 다음 명령어를 사용합니다.

$ python3 -c "import tensorflow as tf; tf.profiler.experimental.client.trace('grpc://localhost:port', 'gs://model-dir', 1000)"

명령줄을 사용하여 PyTorch 모델의 프로필 데이터를 캡처하려면 TPU VM에서 다음 명령어를 사용합니다.

$ python3 -c "import torch_xla.debug.profiler as xp; xp.trace('localhost:port', '/tmp/tb', 1000)"

JAX 모델의 프로필 데이터를 캡처하는 방법은 JAX 프로그램 프로파일링을 참조하세요.

프로필 데이터 보기

  1. Cloud Shell을 엽니다.
  2. 텐서보드가 설치되어 있는지 확인합니다.
  3. 텐서보드 실행
  4. Cloud Shell에서 웹 미리보기 버튼을 클릭한 후 포트 변경을 선택하고 6006을 입력합니다.
  5. 프로필을 클릭하면 개요 페이지가 표시됩니다.
  6. tools.trace viewer u로 이동합니다.

추가 TPU 할당량 요청

Cloud TPU는 프로젝트에 대해 기본 TPU 할당량을 할당합니다. 더 필요하면 추가 할당량 요청을 참조하세요.

프로필 정보 생성 및 보기

프로필 정보를 생성하고 텐서보드를 사용하여 학습 측정항목을 시각화할 수 있습니다.

gcloud 설정 문제 해결

문제

gcloud components update가 다음 오류 메시지를 표시합니다.

ERROR: (gcloud.components.update)
You cannot perform this action because the gcloud CLI component manager
is disabled for this installation.
솔루션

TPU VM에 gcloud를 사용하려면 패키지 관리자를 통해 관리되지 않는 Google Cloud CLI 설치를 사용해야 합니다. 소스 코드에서 Google Cloud CLI를 설치하려면 다음을 실행합니다.

sudo apt-get remove google-cloud-sdk
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-311.0.0-linux-x86_64.tar.gz
tar -xzf google-cloud-sdk-311.0.0-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh
source ~/.bashrc
문제

gcloud compute tpus tpu-vm로 시작하는 명령어를 실행하면 다음 정보가 표시됩니다.

ERROR: (gcloud.compute.tpus) Invalid choice: 'tpu-vm'.
솔루션

이 오류는 구성요소 저장소가 제대로 업데이트되지 않은 경우에 발생합니다. 이 오류가 표시되면 다음 명령어를 사용하여 gcloud CLI 구성요소를 업데이트합니다.

gcloud CLI components update

동일한 오류가 계속 발생하면 다음 명령어로 gcloud CLI를 다시 설치해 보세요.

gcloud CLI components reinstall
문제

gcloud compute tpus tpu-vm ssh ${TPU_NAME} --zone ${ZONE} 명령어가 다음 오류 메시지를 표시합니다.

Waiting for SSH key to propagate.
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ssh: connect to host 34.91.136.59 port 22: Connection timed out
ERROR: (gcloud.compute.tpus.tpu-vm.ssh) Could not SSH into the instance.  It is possible that your SSH key has not propagated to the instance yet. Try running this command again.  If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.
솔루션

gcloud CLI에서 생성된 SSH 키를 백업 위치로 옮겨 이를 다시 만들게 합니다.

mv ~/.ssh/google_compute_engine ~/.ssh/old-google_compute_engine
mv ~/.ssh/google_compute_engine.pub ~/.ssh/old-google_compute_engine.pub

FAQ

V1Alpha1 및 V1 API를 사용하여 Cloud TPU VM을 관리할 수 있나요?
Get/List가 허용되지만 변형은 V2Alpha1 API 버전에서만 제공됩니다.
TPU에 Cloud TPU VM이 사용되는지 여부를 어떻게 알 수 있나요?
TPU에서 GetNode를 호출하고 APIVersion 필드를 V2_ALPHA1로 설정하세요.