Mengelola resource TPU

Halaman ini menjelaskan cara mengelola resource Cloud TPU menggunakan:

Cloud TPU memiliki dua arsitektur VM, TPU Node dan VM TPU. Kedua arsitektur VM ini dijelaskan di Arsitektur Sistem. Anda dapat menggunakan perintah gcloud yang dijelaskan dalam dokumen ini dengan kedua konfigurasi TPU. Perintah gcloud yang Anda gunakan bergantung pada konfigurasi TPU yang Anda gunakan. Setiap perintah gcloud ditampilkan di bagian tab. Pilih tab untuk konfigurasi TPU yang ingin Anda gunakan dan halaman web akan menampilkan perintah gcloud yang sesuai. Sebaiknya gunakan VM TPU, kecuali jika Anda perlu menggunakan TPU Node. Untuk Cloud TPU v4 dan yang lebih baru, hanya arsitektur VM TPU yang didukung.

Prasyarat

Sebelum menjalankan prosedur ini, Anda harus menginstal Google Cloud CLI, membuat project Google Cloud, dan mengaktifkan Cloud TPU API. Untuk mengetahui petunjuknya, lihat Menyiapkan project dan mengaktifkan Cloud TPU API.

Jika menggunakan Google Cloud CLI, Anda dapat menggunakan Google Cloud Shell, VM Compute Engine, atau menginstal Google Cloud CLI secara lokal. Google Cloud Shell memungkinkan Anda berinteraksi dengan Cloud TPU tanpa harus menginstal software apa pun. Koneksi Google Cloud Shell dapat terputus setelah periode tidak aktif. Jika Anda menjalankan perintah yang berjalan lama, sebaiknya instal Google Cloud CLI di komputer lokal Anda. Untuk mengetahui informasi lebih lanjut tentang Google Cloud CLI, lihat Referensi gcloud.

Menyediakan Cloud TPU

Anda dapat menyediakan Cloud TPU menggunakan gcloud, Konsol Google Cloud, atau menggunakan Cloud TPU API.

Dengan menggunakan gcloud, ada dua metode untuk menyediakan TPU:

  1. Menggunakan resource dalam antrean: gcloud alpha compute tpus queued-resources create
  2. Menggunakan Create Node API: gcloud compute tpus tpu-vm create

Praktik terbaiknya adalah menyediakan dengan Resource yang Antrean. Saat Anda meminta resource dalam antrean, permintaan tersebut ditambahkan ke antrean yang dikelola oleh layanan Cloud TPU. Jika sudah tersedia, resource yang diminta akan ditetapkan ke project Google Cloud Anda untuk langsung digunakan secara eksklusif.

Untuk membuat TPU menggunakan resource dalam antrean, lihat Resource yang Diantrekan.

Jika Anda akan menggunakan Multislice, lihat Pengantar Multislice untuk mengetahui informasi selengkapnya.

Saat menggunakan Multislice, tentukan parameter tambahan berikut saat Anda meminta resource dalam antrean:

export NODE_COUNT=node_count
export NODE_PREFIX=your_tpu_prefix # Optional

Membuat Cloud TPU menggunakan Create Node API

Untuk membuat TPU menggunakan Create Node API, jalankan perintah gcloud compute tpus tpu-vm create.

VM TPU

Anda dapat menentukan konfigurasi TPU terkait TensorCore atau chip TPU. Untuk mengetahui informasi selengkapnya, lihat bagian untuk versi TPU yang Anda gunakan di Arsitektur sistem.

Perintah berikut menggunakan konfigurasi berbasis TensorCore:

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=v4-8 \
  --version=tpu-software-version

Deskripsi flag perintah

zone
Zona tempat Anda berencana membuat Cloud TPU.
accelerator-type
Jenis akselerator menentukan versi dan ukuran Cloud TPU yang ingin Anda buat. Untuk mengetahui informasi selengkapnya tentang jenis akselerator yang didukung untuk setiap versi TPU, lihat versi TPU.
version
Versi software TPU .
shielded-secure-boot (opsional)
Menentukan bahwa instance TPU dibuat dengan mengaktifkan booting aman. Hal ini secara implisit membuatnya menjadi instance Shielded VM. Lihat Apa itu Shielded VM? untuk detail selengkapnya.

Perintah berikut membuat TPU dengan topologi tertentu:

  $ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --type=v4 \
    --topology=2x2x1 \
    --version=tpu-software-version

Tanda yang diperlukan

tpu-name
Nama VM TPU yang Anda buat.
zone
Zona tempat Anda membuat Cloud TPU.
type
Versi Cloud TPU yang ingin Anda buat. Untuk mengetahui informasi selengkapnya tentang versi TPU, lihat versi TPU.
topology
Lihat bagian topologi untuk mengetahui topologi yang didukung.
version
Versi software TPU yang ingin Anda gunakan. Untuk mengetahui informasi selengkapnya, lihat versi software TPU

Untuk mengetahui informasi selengkapnya tentang topologi dan jenis TPU yang didukung, lihat versi TPU.

Node TPU

$ gcloud compute tpus execution-groups create --name=tpu-name \
  --zone=us-central1-a \
  --tf-version=2.12.0 \
  --machine-type=n1-standard-1 \
  --accelerator-type=v3-8

Deskripsi flag perintah

zone
Zona tempat Anda berencana membuat Cloud TPU.

tf-version
Versi Tensorflow perintah gcloud akan diinstal di VM Anda.

machine-type
Jenis mesin VM Compute Engine yang akan dibuat.

accelerator-type
Jenis akselerator menentukan versi dan ukuran Cloud TPU yang ingin Anda buat. Untuk mengetahui informasi selengkapnya tentang jenis akselerator yang didukung untuk setiap versi TPU, lihat versi TPU.

Membuat Cloud TPU di Konsol Google Cloud

  1. Buka konsol Google Cloud.
  2. Dari menu navigasi, pilih Compute Engine > TPU.
  3. Klik BUAT node TPU.
  4. Di kotak Name, ketik nama instance TPU.
  5. Di kotak Zone, pilih zona untuk membuat TPU.
  6. Di bagian TPU settings, pilih TPU VM architecture atau TPU node architecture. Konfigurasi TPU menentukan apakah Anda membuat TPU sebagai VM TPU atau TPU Node. Untuk informasi selengkapnya, lihat Arsitektur Sistem.
  7. Untuk TPU type, pilih jenis TPU yang ingin Anda buat.
  8. Untuk versi software TPU, pilih versi software. Saat membuat VM Cloud TPU, versi software TPU akan menentukan versi runtime TPU yang akan diinstal. Saat membuat Cloud TPU Node, versi software TPU memungkinkan Anda memilih framework ML yang diinstal pada VM node. Tidak ada setelan lain yang diperlukan. Untuk informasi selengkapnya, lihat Model yang Didukung.
  9. Klik CREATE untuk membuat resource.

Membuat VM Cloud TPU menggunakan curl

Perintah berikut menggunakan curl untuk membuat TPU.

$ 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.16.1-pjrt', \
  network_config: {enable_external_ips: true}, \
  shielded_instance_config: { enable_secure_boot: true }}" \
  https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

Kolom wajib diisi

runtime_version
Versi runtime Cloud TPU yang ingin Anda gunakan.
project
Nama project Google Cloud Anda yang terdaftar.
zone
Zona tempat Anda membuat Cloud TPU.
node_name
Nama VM TPU yang Anda buat.

Menjalankan skrip startup

Anda dapat menjalankan skrip startup di setiap VM TPU dengan menentukan parameter --metadata startup-script saat membuat VM TPU. Perintah berikut membuat VM TPU menggunakan skrip startup.

$ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --accelerator-type=tpu-type \
    --version=tpu-vm-tf-2.16.1-pjrt \
    --metadata startup-script='#! /bin/bash
      pip3 install numpy
      EOF'

Menghubungkan ke Cloud TPU

Anda dapat terhubung ke TPU menggunakan SSH.

VM TPU

Saat menggunakan VM TPU, Anda harus secara eksplisit terhubung ke VM TPU menggunakan SSH.

  • Hubungkan ke VM TPU melalui SSH menggunakan perintah gcloud compute tpus tpu-vm ssh.

    Saat Anda meminta slice yang berisi lebih dari 4 chip, Cloud TPU akan membuat VM TPU untuk setiap grup yang terdiri dari 4 chip.

    Untuk menginstal biner atau menjalankan kode, Anda dapat terhubung ke setiap VM TPU menggunakan tpu-vm ssh command.

    gcloud compute tpus tpu-vm ssh ${TPU_NAME}
    

    Untuk mengakses VM TPU tertentu atau menginstal biner di setiap VM TPU dengan SSH, gunakan flag --worker yang mengikuti indeks berbasis 0:

    gcloud compute tpus tpu-vm ssh ${TPU_NAME} --worker=1
    

    Jika Anda memiliki lebih dari satu VM TPU, gunakan flag --worker=all dan --command untuk menjalankan perintah di semua VM TPU secara bersamaan. Contoh:

    gcloud compute tpus tpu-vm ssh ${TPU_NAME}  --project ${PROJECT_ID} \
    --zone  ${ZONE} \
    --worker=all \
    --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'
    

    Untuk Multislice, Anda dapat menjalankan perintah pada satu VM (dengan menggunakan enumerated tpu-name) atau menggunakan flag --node=all, --worker=all, dan --command untuk menjalankan perintah di semua VM TPU dari semua slice Multislice, dengan kolom --batch-size opsional.

    gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \
    --project ${PROJECT_ID} --zone ${ZONE} --node=all --worker=all \
    --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' --batch-size=4
    
    $ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
  • Gunakan SSH di browser dengan melakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman TPU:

      Buka TPU

    2. Dalam daftar VM TPU, klik SSH di baris VM TPU yang ingin dihubungkan.

Node TPU

Secara default, perintah gcloud yang Anda gunakan untuk membuat TPU Node akan otomatis mencoba melakukan SSH ke node TPU Anda. Jika menggunakan Node TPU dan tidak terhubung ke instance Compute Engine dengan perintah gcloud, Anda dapat menghubungkannya dengan menjalankan perintah berikut:

$ gcloud compute ssh tpu-name \
  --zone=zone

Setelah VM TPU dibuat, Anda dapat melihat log dari skrip startup dengan menghubungkan ke VM TPU menggunakan SSH, lalu menjalankannya:

$ cat /var/log/syslog | grep startup-script

Mencantumkan resource Cloud TPU

Anda dapat menampilkan daftar semua Cloud TPU di zona tertentu.

Mencantumkan resource Cloud TPU menggunakan gcloud

Perintah yang digunakan bergantung pada apakah Anda menggunakan VM TPU atau Node TPU. Untuk informasi selengkapnya, lihat Arsitektur Sistem.

VM TPU

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

Node TPU

$ gcloud compute tpus execution-groups list --zone=zone

Perintah ini mencantumkan resource Cloud TPU di zona yang ditentukan. Jika tidak ada resource yang disiapkan saat ini, output hanya akan menampilkan tanda hubung untuk VM dan TPU. Jika satu resource aktif dan resource lainnya tidak, Anda akan melihat pesan yang menyatakan statusnya tidak sehat. Anda harus memulai atau memulai ulang resource mana pun yang tidak berjalan.

Mencantumkan resource Cloud TPU di konsol Google Cloud

  1. Buka konsol Google Cloud.

  2. Dari menu navigasi, pilih Compute Engine > TPU. Konsol akan menampilkan halaman TPU.

Mengambil informasi tentang Cloud TPU Anda

Anda dapat mengambil informasi tentang Cloud TPU yang ditentukan.

Mengambil informasi tentang Cloud TPU menggunakan gcloud

Perintah yang digunakan bergantung pada apakah Anda menggunakan VM TPU atau Node TPU. Untuk informasi selengkapnya, lihat Arsitektur Sistem.

VM TPU

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

Node TPU

$ gcloud compute tpus execution-groups describe tpu-name \
  --zone=zone

Mengambil informasi tentang Cloud TPU di Konsol Google Cloud

  1. Buka konsol Google Cloud.
  2. Dari menu navigasi, pilih Compute Engine > TPU. Konsol akan menampilkan halaman TPU.
  3. Klik nama Cloud TPU Anda. Halaman detail Cloud TPU ditampilkan.

Menghentikan resource Cloud TPU

Anda dapat menghentikan satu Cloud TPU untuk menghentikan tagihan tanpa kehilangan konfigurasi dan software VM. Menghentikan Pod TPU atau TPU yang dialokasikan melalui API resource yang diantrekan tidak didukung. Untuk menghentikan tagihan untuk TPU yang dialokasikan melalui API resource dalam antrean, Anda harus menghapus TPU.

Menghentikan Cloud TPU menggunakan gcloud

Perintah yang digunakan untuk menghentikan Cloud TPU bergantung pada apakah Anda menggunakan VM TPU atau Node TPU. Untuk informasi selengkapnya, lihat Arsitektur Sistem.

VM TPU

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

Node TPU

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

Menghentikan Cloud TPU di Konsol Google Cloud

  1. Buka konsol Google Cloud.

  2. Dari menu navigasi, pilih Compute Engine > TPU. Konsol akan menampilkan halaman TPU.

  3. Pilih kotak centang di samping Cloud TPU Anda, lalu klik Stop.

Memulai resource Cloud TPU

Anda dapat memulai Cloud TPU saat dihentikan.

Memulai Cloud TPU menggunakan gcloud

Anda dapat memulai Cloud TPU yang dihentikan untuk melanjutkan penggunaannya.

Perintah yang Anda gunakan untuk memulai Cloud TPU yang dihentikan bergantung pada apakah Anda menggunakan VM TPU atau Node TPU. Untuk informasi selengkapnya, lihat Arsitektur Sistem.

VM TPU

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

Node TPU

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

Memulai Cloud TPU di konsol Google Cloud

  1. Buka konsol Google Cloud.

  2. Dari menu navigasi, pilih Compute Engine > TPU. Konsol akan menampilkan halaman TPU.

  3. Pilih kotak centang di samping Cloud TPU Anda, lalu klik Start.

Menghapus VM TPU

Perintah yang digunakan bergantung pada apakah Anda menggunakan VM TPU atau Node TPU. Untuk informasi selengkapnya, lihat Arsitektur Sistem.

VM TPU

Hapus slice VM TPU di akhir sesi.

 gcloud compute tpus tpu-vm delete ${TPU_NAME} --project=${PROJECT_ID}
 --zone=${ZONE} --quiet

Deskripsi flag perintah

zone
Zona tempat Anda berencana menghapus Cloud TPU.

Node TPU

$ gcloud compute tpus execution-groups delete tpu-name \
  --zone=zone

Deskripsi flag perintah

zone
Zona tempat Anda berencana menghapus Cloud TPU.

Menghapus Cloud TPU di Konsol Google Cloud

  1. Buka konsol Google Cloud.

  2. Dari menu navigasi, pilih Compute Engine > TPU. Konsol akan menampilkan halaman TPU.

  3. Pilih kotak centang di samping Cloud TPU lalu klik Hapus.

Konfigurasi Lanjutan

Resource Jaringan Kustom

Saat membuat TPU, Anda dapat memilih untuk menentukan jaringan dan/atau subnetwork. Anda dapat melakukannya dengan mengirimkan perintah gcloud atau panggilan curl.

Untuk menentukan jaringan atau subnetwork di CLI gcloud, gunakan:

--network [NETWORK] --subnetwork [SUBNETWORK]

Untuk menentukan jaringan atau subnetwork dalam panggilan curl, gunakan:

network_config: {network: '[NETWORK]', subnet: '[SUBNETWORK]', enable_external_ips: true}

Jaringan

Anda dapat secara opsional menentukan jaringan yang akan digunakan untuk TPU. Jika tidak ditentukan, jaringan default akan digunakan.

Format jaringan yang valid:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-##}/global/networks/{network}
projects/{proj-id}/global/networks/{network}
projects/{proj-##}/global/networks/{network}
global/networks/{network}
{network}

Subnetwork

Anda dapat menentukan subnetwork untuk menggunakan subnetwork tertentu. Subnetwork yang ditentukan harus berada di region yang sama dengan zona tempat TPU berjalan.

Format yang Valid:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
regions/{region}/subnetworks/{subnetwork}
{subnetwork}

Akses Google Pribadi

Untuk melakukan SSH ke VM TPU, Anda perlu menambahkan konfigurasi akses untuk VM TPU, atau mengaktifkan Akses Google Pribadi untuk subnetwork tempat VM TPU terhubung.

Untuk menambahkan konfigurasi akses, enable_external_ips harus ditetapkan. Saat Anda membuat TPU, enable_external_ips ditetapkan secara default. Jika tidak ingin mengaktifkannya, tentukan perintah berikut:

--internal-ips

Atau gunakan panggilan curl:

network_config: {enable_external_ips: true}

Setelah Anda mengonfigurasi Akses Google Pribadi, hubungkan ke VM melalui SSH.

Akun Layanan Kustom

Setiap VM TPU memiliki akun layanan terkait yang digunakannya untuk membuat permintaan API atas nama Anda. VM TPU menggunakan akun layanan ini untuk memanggil Cloud TPU API, mengakses Cloud Storage, dan layanan lainnya. Secara default, VM TPU Anda menggunakan akun layanan Compute Engine default.

Anda dapat menentukan akun layanan kustom saat membuat VM TPU menggunakan flag --service-account. Akun layanan harus ditentukan di project Google Cloud yang sama tempat Anda membuat VM TPU. Akun layanan kustom yang digunakan untuk VM TPU harus memiliki peran TPU Viewer untuk memanggil Cloud TPU API. Jika kode yang berjalan di VM TPU Anda memanggil layanan Google Cloud lain, kode tersebut harus memiliki peran yang diperlukan untuk mengakses layanan tersebut.

Saat membuat TPU, Anda dapat memilih untuk menentukan akun layanan kustom menggunakan tanda --service-account. Untuk informasi selengkapnya tentang akun layanan, lihat Akun Layanan.

Gunakan perintah berikut untuk menentukan akun layanan kustom.

Membuat VM TPU menggunakan CLI gcloud

$ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --accelerator-type=tpu-type \
    --version=tpu-vm-tf-2.16.1-pjrt \
    --service-account=your-service-account

Buat VM TPU menggunakan curl

$ 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.16.1-pjrt', \
  network_config: {enable_external_ips: true}, \
  shielded_instance_config: { enable_secure_boot: true }}" \
  service_account: {email: 'your-service-account'} \
  https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

Untuk menggunakan akun layanan kustom, Anda harus mengizinkan akun layanan untuk bucket Google Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke bucket Cloud Storage.

Metode SSH VM kustom

  1. Menyiapkan firewall untuk SSH.

    Jaringan default sudah dikonfigurasi untuk mengizinkan akses SSH ke semua VM. Jika tidak menggunakan jaringan default, atau setelan jaringan default telah diedit, Anda mungkin perlu mengaktifkan akses SSH secara eksplisit dengan menambahkan aturan firewall:

    $ gcloud CLI compute firewall-rules create \
    --network=network allow-ssh \
    --allow=tcp:22
    
  2. SSH ke VM TPU.

    $ gcloud compute tpus tpu-vm ssh tpu-name \
    --zone=us-central2-b \
    --project=project-id
    

    Kolom wajib diisi

    • tpu-name: Nama node TPU.
    • zone: Lokasi node TPU. Saat ini, hanya us-central2-b yang didukung.
    • project-id: Project yang Anda buat di atas.

    Untuk mengetahui daftar kolom opsional, lihat dokumentasi API gcloud.