Membuat dan menjalankan tugas yang menggunakan TPU

Dokumen ini menjelaskan cara membuat dan menjalankan tugas Batch yang menggunakan instance virtual machine (VM) dengan Tensor Processing Unit (TPU). TPU adalah sirkuit terintegrasi khusus aplikasi (ASIC) yang dikembangkan secara khusus oleh Google dan dirancang untuk mempercepat workload machine learning (ML) dan kecerdasan buatan (AI). Saat membuat tugas Batch, Anda dapat menentukan jenis mesin TPU secara opsional untuk mempercepat workload inferensi, evaluasi, penyesuaian, dan pelatihan AI dan ML dalam container atau berbasis skrip.

Untuk mempelajari TPU lebih lanjut, lihat Tentang TPU di Google Cloud dan Jenis mesin TPU dalam dokumentasi Compute Engine. Atau, Anda dapat mempercepat workload pemrosesan data, AI, dan ML dengan menggunakan GPU.

Sebelum memulai

  1. Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  2. Untuk mendapatkan izin yang Anda perlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Pembatasan

Saat tugas menggunakan TPU, semua batasan berikut berlaku selain batasan Compute Engine untuk TPU.

  • Hanya slice TPU host tunggal: Batch hanya mendukung VM TPU independen, yang disebut slice TPU host tunggal. Slice TPU multi-host, yang masing-masing terdiri dari beberapa VM yang saling terhubung, tidak didukung.

    Tugas dapat berjalan di satu atau beberapa slice TPU host tunggal. Misalnya, jika tugas menetapkan taskCount ke 4 dan taskCountPerNode ke 1, maka jumlah VM yang menjalankan tugas adalah 4 atau kurang. Tidak seperti slice TPU multi-host, setiap slice TPU host tunggal beroperasi sebagai VM independen dan tidak menyediakan jaringan inter-chip interconnect (ICI) untuk komunikasi bandwidth tinggi dan latensi rendah.

    Pelajari lebih lanjut slice TPU host tunggal dan multi-host dalam dokumentasi Compute Engine.

  • Versi TPU dan jenis mesin yang didukung: Batch hanya mendukung slice TPU host tunggal (VM TPU independen) untuk versi TPU dan jenis mesin berikut:

    • TPU7x (Ironwood): tpu7x-standard-4t
    • v6e (Trillium): ct6e-standard-1t, ct6e-standard-4t, dan ct6e-standard-8t

    • v5p: ct5p-hightpu-4t

    Untuk mengetahui informasi selengkapnya tentang setiap jenis mesin TPU, seperti disk yang didukung, lihat Jenis mesin TPU dalam dokumentasi Compute Engine.

  • Opsi konsumsi yang didukung: Batch tidak mendukung Flex-start VM (model penyediaan FLEX_START) untuk tugas yang menggunakan TPU. Selain VM Flex-start, Anda dapat menentukan opsi konsumsi apa pun yang didukung oleh versi TPU tugas Anda sesuai dengan Ketersediaan opsi konsumsi berdasarkan versi TPU dalam dokumentasi Compute Engine.

  • Lokasi zona tunggal diperlukan: saat membuat tugas yang menggunakan TPU, Anda harus membatasi tugas ke zona tertentu dengan menetapkan lokasi yang diizinkan untuk tugas (kolom allowedLocations[]) ke zona yang berisi versi TPU atau, jika berlaku, pemesanan Anda.

  • Fitur yang tidak didukung: tugas yang menggunakan TPU tidak mendukung fitur berikut:

Membuat tugas yang menggunakan TPU

Untuk membuat tugas yang menggunakan TPU, lakukan hal berikut:

  1. Rencanakan konfigurasi untuk tugas yang menggunakan TPU.
  2. Buat tugas dengan konfigurasi yang Anda identifikasi. Untuk contoh cara membuat tugas yang menggunakan TPU, lihat Membuat tugas yang menggunakan TPU dalam dokumen ini.

Merencanakan konfigurasi untuk tugas yang menggunakan TPU

Sebelum melanjutkan untuk membuat tugas yang menggunakan TPU, Anda harus melakukan hal berikut:

  1. Pilih versi TPU: pilih versi TPU yang sesuai untuk workload Anda. Untuk mengetahui daftar versi TPU berdasarkan jenis workload, lihat Versi TPU yang direkomendasikan berdasarkan jenis workload.

    Pastikan Anda memilih salah satu versi TPU yang didukung.

  2. Pilih opsi pemakaian TPU: pilih opsi pemakaian yang paling sesuai dengan workload, durasi, dan kebutuhan biaya Anda. Pastikan Anda memilih salah satu opsi konsumsi yang didukung. Kasus penggunaan dan persyaratan tugas untuk setiap opsi konsumsi diringkas dalam tabel berikut.

    Opsi pemakaian dan persyaratan tugasnya

    Terikat pemesanan (pemesanan untuk masa mendatang dalam mode kalender atau pemesanan untuk masa mendatang untuk blok kapasitas)

    • Kasus penggunaan: Sebaiknya gunakan opsi pemakaian terikat pemesanan untuk tugas yang memerlukan tingkat jaminan ketersediaan resource TPU yang sangat tinggi untuk jangka waktu tertentu. Di Compute Engine, hal ini dijelaskan sebagai pemesanan untuk masa mendatang dalam mode kalender (untuk 1 hingga 90 hari) dan pemesanan untuk masa mendatang untuk blok kapasitas (untuk 1 tahun atau lebih).

    • Detail: Sebelum membuat tugas, Anda harus mendapatkan atau mengidentifikasi pemesanan untuk versi TPU yang Anda pilih dan model penyediaan RESERVATION_BOUND. Setelah dibuat, pemesanan akan dikenai biaya VM yang ditentukan dengan harga yang sama seperti menjalankan VM hingga Anda menghapus pemesanan. VM yang menggunakan pemesanan tidak dikenai biaya terpisah, tetapi pemesanan dikenai biaya terlepas dari penggunaannya.

      Untuk mengetahui informasi selengkapnya, lihat Memilih jenis pemesanan dalam dokumentasi Compute Engine.

    Batch menggunakan pemesanan terikat pemesanan untuk tugas yang melakukan semua hal berikut:

    • Tetapkan kolom provisioningModel ke RESERVATION_BOUND.
    • Menargetkan secara khusus pemesanan yang kompatibel. Tetapkan kolom reservation ke nama pendek (jika pemesanan berada dalam project dan zona yang sama) atau jalur resource lengkap dari pemesanan, blok pemesanan, atau sub-blok pemesanan.

    Sesuai permintaan

    • Kasus penggunaan: On-demand cepat dan mudah dicoba, sehingga menjadi opsi konsumsi default untuk sebagian besar tugas. Namun, kami tidak merekomendasikan on-demand jika opsi konsumsi lain lebih sesuai dengan prioritas Anda atau jika Anda berulang kali mengalami masalah dengan ketersediaan resource.

    • Detail: On-demand biasanya merupakan cara default untuk mengakses VM Compute Engine. On-demand memungkinkan Anda mengakses resource (jika tersedia) saat diminta. Resource tidak akan dihapus hingga tugas selesai atau batas waktu proses tercapai.

    Batch menggunakan on-demand untuk sebagian besar tugas secara default. Jika Anda ingin memastikan bahwa tugas menggunakan on-demand, lakukan semua hal berikut:

    Spot VM

    • Kasus penggunaan: Sebaiknya gunakan Spot VM untuk mengurangi biaya workload fault-tolerant.

    • Detail: Jika permintaan untuk membuat tugas yang menggunakan Spot VM terpenuhi, VM akan dikenai biaya sesuai harga Spot VM, yang dapat sering berubah dan mungkin memberikan diskon terbesar, hingga 91% dari harga on-demand. Namun, Spot VM mungkin tidak selalu tersedia dan dapat di-preempt kapan saja.

      Pelajari lebih lanjut Spot VM dan rekomendasi untuk tugas dengan Spot VM.

    Batch menggunakan Spot VM untuk tugas yang melakukan semua hal berikut:

  3. Pilih zona tempat TPU yang Anda pilih tersedia: untuk menggunakan versi TPU, kolom allowedLocations[] tugas harus ditetapkan ke zona yang berisi TPU yang Anda pilih sebagai berikut:

    • Jika Anda memilih opsi konsumsi yang menggunakan pemesanan, Anda harus menggunakan zona tempat pemesanan berada.
    • Atau, pilih zona yang berisi versi TPU Anda sesuai dengan ketersediaan TPU.

    Dalam kedua kasus tersebut, zona juga harus berada di salah satu wilayah yang didukung untuk Batch.

  4. Pastikan project Anda memiliki kuota TPU yang memadai: jika Anda membuat tugas yang menggunakan TPU dengan VM Spot atau sesuai permintaan, Anda harus memiliki kuota TPU yang memadai di region yang ingin Anda gunakan. Membuat tugas yang menggunakan TPU yang menggunakan pemesanan TPU tidak memerlukan kuota TPU karena kuota digunakan saat pemesanan dibuat. Untuk mengetahui daftar nama kuota TPU, lihat Kuota TPU dan untuk mengetahui petunjuk cara melihat kuota, lihat Melihat dan mengelola kuota

  5. Pilih jenis mesin TPU: pilih jenis mesin TPU untuk versi TPU yang Anda pilih. Jika memilih opsi pemakaian yang menggunakan pemesanan, Anda harus menggunakan jenis mesin pemesanan Anda. Untuk mengetahui daftar jenis mesin yang tersedia untuk setiap versi TPU, lihat Jenis mesin TPU.

    Karena adanya batasan, Anda harus menggunakan topologi host tunggal untuk jenis mesin TPU Anda.

Membuat tugas yang menggunakan TPU

Bagian berikut menjelaskan cara membuat contoh tugas yang menggunakan TPU untuk setiap opsi konsumsi.

Opsi pemakaian Contoh petunjuk tugas
Terikat pemesanan (pemesanan untuk masa mendatang dalam mode kalender atau pemesanan untuk masa mendatang untuk blok kapasitas)

Menggunakan TPU dengan opsi pemakaian terikat pemesanan

Sesuai permintaan atau Spot VM

Menggunakan TPU dengan VM on-demand atau Spot VM

Menggunakan TPU dengan VM on-demand atau Spot VM

Anda dapat membuat tugas yang menggunakan TPU dengan VM on-demand atau Spot menggunakan gcloud CLI atau Batch API.

gcloud

  1. Buat file konfigurasi JSON yang menentukan jenis mesin TPU host tunggal yang didukung, menetapkan model penyediaan ke STANDARD atau SPOT, dan berjalan di lokasi yang menawarkan jenis mesin TPU.

    Misalnya, untuk membuat tugas skrip dasar, buat file JSON dengan konten berikut:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world from TPU task ${BATCH_TASK_INDEX}."
                }
              }
            ]
          },
          "taskCount": 3,
          "parallelism": 1
        }
      ],
      "allocationPolicy": {
        "instances": [
          {
            "policy": {
              "provisioningModel": "PROVISIONING_MODEL",
              "machineType": "MACHINE_TYPE"
            }
          }
        ],
        "location": {
          "allowedLocations": [
            "ALLOWED_LOCATIONS"
          ]
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Ganti kode berikut:

    • PROVISIONING_MODEL: model penyediaan untuk opsi konsumsi Anda: STANDARD untuk on-demand atau SPOT untuk Spot VM.

    • MACHINE_TYPE: jenis mesin TPU host tunggal yang didukung—misalnya, ct5p-hightpu-4t.

    • ALLOWED_LOCATIONS: lokasi yang diizinkan untuk tugas. Untuk tugas yang menggunakan TPU, Anda harus menetapkan kolom allowedLocations[] ke zona yang menawarkan jenis mesin TPU—misalnya, zones/us-central1-a menawarkan jenis mesin TPU ct5p-hightpu-4t.

  2. Untuk membuat dan menjalankan tugas, gunakan perintah gcloud batch jobs submit:

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Ganti kode berikut:

    • JOB_NAME: nama tugas.

    • LOCATION: lokasi tugas.

    • JSON_CONFIGURATION_FILE: jalur untuk file JSON dengan detail konfigurasi tugas.

API

Buat permintaan POST ke metode jobs.create yang menentukan jenis mesin TPU host tunggal yang didukung, menetapkan model penyediaan ke STANDARD atau SPOT, dan berjalan di lokasi yang menawarkan jenis mesin TPU.

Misalnya, untuk membuat tugas skrip dasar, buat permintaan berikut:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello world from TPU task ${BATCH_TASK_INDEX}."
            }
          }
        ]
      },
      "taskCount": 3,
      "parallelism": 1
    }
  ],
  "allocationPolicy": {
    "instances": [
      {
        "policy": {
          "provisioningModel": "PROVISIONING_MODEL",
          "machineType": "MACHINE_TYPE"
        }
      }
    ],
    "location": {
      "allowedLocations": [
        "ALLOWED_LOCATIONS"
      ]
    }
  },
  "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Ganti kode berikut:

  • PROJECT_ID: Project ID project Anda.

  • LOCATION: lokasi tugas.

  • JOB_NAME: nama tugas.

  • PROVISIONING_MODEL: model penyediaan untuk opsi konsumsi Anda: STANDARD untuk on-demand atau SPOT untuk Spot VM.

  • MACHINE_TYPE: jenis mesin TPU host tunggal yang didukung—misalnya, ct5p-hightpu-4t.

  • ALLOWED_LOCATIONS: lokasi yang diizinkan untuk tugas. Untuk tugas yang menggunakan TPU, Anda harus menetapkan kolom allowedLocations[] ke zona yang menawarkan jenis mesin TPU—misalnya, zones/us-central1-a menawarkan jenis mesin TPU ct5p-hightpu-4t.

Menggunakan TPU dengan opsi pemakaian terikat pemesanan

Anda dapat membuat tugas yang menggunakan TPU dengan opsi konsumsi untuk model penyediaan terikat pemesanan (RESERVATION_BOUND)—baik pemesanan untuk masa mendatang untuk blok kapasitas atau pemesanan untuk masa mendatang dalam mode kalender—menggunakan gcloud CLI atau Batch API.

gcloud

  1. Buat file konfigurasi JSON yang menentukan pemesanan untuk jenis mesin TPU host tunggal, menetapkan model penyediaan ke RESERVATION_BOUND, dan berjalan di zona pemesanan.

    Misalnya, untuk membuat tugas skrip dasar, buat file JSON dengan konten berikut:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world from TPU task ${BATCH_TASK_INDEX}."
                }
              }
            ]
          },
          "taskCount": 3,
          "parallelism": 1
        }
      ],
      "allocationPolicy": {
        "instances": [
          {
            "policy": {
              "provisioningModel": "RESERVATION_BOUND",
              "reservation": "RESERVATION",
              "machineType": "MACHINE_TYPE"
            }
          }
        ],
        "location": {
          "allowedLocations": [
            "ALLOWED_LOCATIONS"
          ]
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Ganti kode berikut:

    • RESERVATION: ganti dengan salah satu jalur berikut ke pemesanan Anda:

      • Jika Anda ingin menggunakan pemesanan untuk masa mendatang dalam mode kalender atau bagian apa pun dari pemesanan untuk pemesanan untuk masa mendatang untuk blok kapasitas, tentukan pemesanan:

        projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
        
      • Jika Anda ingin menggunakan blok tertentu dari pemesanan untuk masa mendatang untuk blok kapasitas, tentukan blok pemesanan:

        projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME
        
      • Jika Anda ingin menggunakan sub-blok tertentu dari pemesanan untuk masa mendatang untuk blok kapasitas, tentukan sub-blok pemesanan:

        projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationSubBlocks/SUB_BLOCK_NAME
        
    • MACHINE_TYPE: jenis mesin TPU dari pemesanan Anda—misalnya, ct5p-hightpu-4t.

    • ALLOWED_LOCATIONS: lokasi yang diizinkan untuk tugas. Untuk tugas yang menggunakan TPU yang dipesan, Anda harus menetapkan kolom allowedLocations[] ke zona pemesanan Anda—misalnya, zones/us-central1-a menawarkan jenis mesin TPU ct5p-hightpu-4t.

  2. Untuk membuat dan menjalankan tugas, gunakan perintah gcloud batch jobs submit:

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Ganti kode berikut:

    • JOB_NAME: nama tugas.

    • LOCATION: lokasi tugas.

    • JSON_CONFIGURATION_FILE: jalur untuk file JSON dengan detail konfigurasi tugas.

API

Buat permintaan POST ke metode jobs.create yang menentukan pemesanan untuk jenis mesin TPU host tunggal, menetapkan model penyediaan ke RESERVATION_BOUND, dan berjalan di zona pemesanan.

Misalnya, untuk membuat tugas skrip dasar, buat permintaan berikut:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello world from TPU task ${BATCH_TASK_INDEX}."
            }
          }
        ]
      },
      "taskCount": 3,
      "parallelism": 1
    }
  ],
  "allocationPolicy": {
    "instances": [
      {
        "policy": {
          "provisioningModel": "RESERVATION_BOUND",
          "reservation": "RESERVATION",
          "machineType": "MACHINE_TYPE"
        }
      }
    ],
    "location": {
      "allowedLocations": [
        "ALLOWED_LOCATIONS"
      ]
    }
  },
  "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Ganti kode berikut:

  • PROJECT_ID: Project ID project Anda.

  • LOCATION: lokasi tugas.

  • JOB_NAME: nama tugas.

  • RESERVATION: ganti dengan salah satu jalur berikut ke pemesanan Anda:

    • Jika Anda ingin menggunakan pemesanan untuk masa mendatang dalam mode kalender atau bagian apa pun dari pemesanan untuk pemesanan untuk masa mendatang untuk blok kapasitas, tentukan pemesanan:

      projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
      
    • Jika Anda ingin menggunakan blok tertentu dari pemesanan untuk masa mendatang untuk blok kapasitas, tentukan blok pemesanan:

      projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAME
      
    • Jika Anda ingin menggunakan sub-blok tertentu dari pemesanan untuk masa mendatang untuk blok kapasitas, tentukan sub-blok pemesanan:

      projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/reservationSubBlocks/SUB_BLOCK_NAME
      
  • MACHINE_TYPE: jenis mesin TPU dari pemesanan Anda—misalnya, ct5p-hightpu-4t.

  • ALLOWED_LOCATIONS: lokasi yang diizinkan untuk tugas. Untuk tugas yang menggunakan TPU yang dipesan, Anda harus menetapkan kolom allowedLocations[] ke zona pemesanan Anda—misalnya, zones/us-central1-a menawarkan jenis mesin TPU ct5p-hightpu-4t.

Untuk mengetahui informasi selengkapnya tentang cara membuat tugas yang menggunakan pemesanan, lihat Memastikan ketersediaan resource menggunakan pemesanan VM.

Langkah berikutnya