Membuat VM GPU secara massal


Anda dapat membuat grup virtual machine (VM) yang telah memasang unit pemrosesan grafis (GPU) menggunakan proses pembuatan massal. Dengan proses pembuatan massal, Anda akan mendapatkan validasi di awal saat permintaan akan gagal dengan cepat jika tidak memungkinkan. Selain itu, jika Anda menggunakan flag region, API pembuatan massal akan otomatis memilih zona yang memiliki kapasitas untuk memenuhi permintaan.

Untuk mempelajari pembuatan massal lebih lanjut, lihat Tentang pembuatan VM secara massal. Untuk mempelajari lebih lanjut cara membuat VM dengan GPU yang terpasang, lihat Ringkasan pembuatan instance dengan GPU yang terpasang.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat VM, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat VM. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat VM:

  • compute.instances.create pada project
  • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
  • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly pada snapshot
  • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly pada template instance
  • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
  • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
  • Untuk menentukan subnet bagi VM Anda: compute.subnetworks.use di project atau di subnet yang dipilih
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
  • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata pada project
  • Untuk menetapkan tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label untuk VM: compute.instances.setLabels di VM
  • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru bagi VM: compute.disks.create pada project
  • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
  • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Ringkasan

Saat membuat VM dengan GPU yang terpasang menggunakan metode pembuatan massal, Anda dapat memilih untuk membuat VM di satu region (seperti us-central1) atau di zona tertentu seperti (us-central1-a).

Jika Anda memilih untuk menentukan region, Compute Engine akan menempatkan VM di zona mana pun dalam region yang mendukung GPU.

Jenis mesin

Kelompok mesin yang dioptimalkan akselerator berisi beberapa jenis mesin.

Setiap jenis mesin yang dioptimalkan akselerator memiliki model GPU NVIDIA tertentu yang terpasang.

Membuat grup VM A3, A2, dan G2

Bagian ini menjelaskan bahwa Anda dapat membuat instance secara massal untuk seri mesin A3 High, A3 Mega, A3 Edge, A2, dan G2 menggunakan Google Cloud CLI, atau REST.

gcloud

Untuk membuat grup VM, gunakan perintah gcloud compute instances bulk create. Untuk mengetahui informasi lebih lanjut tentang parameter dan cara menggunakan perintah ini, baca Membuat VM secara massal.

Flag opsional berikut ditampilkan dalam perintah contoh:

  • --provisioning-model=SPOT adalah flag opsional yang mengonfigurasi VM Anda sebagai Spot VM. Jika workload Anda fault-tolerant dan dapat menahan kemungkinan preempti VM, pertimbangkan untuk menggunakan Spot VM untuk mengurangi biaya VM dan GPU yang terpasang. Untuk mengetahui informasi selengkapnya, lihat GPU di Spot VM. Untuk Spot VM, tanda opsi mulai ulang otomatis dan pengelolaan host dinonaktifkan.

  • Flag --accelerator untuk menentukan workstation virtual. NVIDIA RTX Virtual Workstation (vWS) hanya didukung untuk VM G2.

Contoh

Contoh ini membuat dua VM yang telah memasang GPU dengan menggunakan spesifikasi berikut:

gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --region=REGION \
    --count=2 \
    --machine-type=MACHINE_TYPE \
    --boot-disk-size=200 \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT \
    --on-host-maintenance=TERMINATE \
    [--provisioning-model=SPOT] \
    [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]

Ganti kode berikut:

  • REGION: region untuk VM. Region ini harus mendukung model GPU yang Anda pilih.
  • MACHINE_TYPE: jenis mesin yang Anda pilih. Pilih dari salah satu opsi berikut:

    • Jenis mesin A3.
    • Jenis mesin A2.
    • Jenis mesin G2. Jenis mesin G2 juga mendukung memori kustom. Memori harus kelipatan dari 1024 MB dan dalam rentang memori yang didukung. Misalnya, untuk membuat VM dengan 4 vCPU dan memori 19 GB, tentukan --machine-type=g2-custom-4-19456.
  • IMAGE: image sistem operasi yang mendukung GPU.

    Jika Anda ingin menggunakan gambar terbaru dalam kelompok image, ganti flag --image dengan flag --image-family dan setel nilainya ke kelompok image yang mendukung GPU. Contoh: --image-family=rocky-linux-8-optimized-gcp.

    Anda juga dapat menentukan image kustom atau Deep Learning VM Image.

  • IMAGE_PROJECT: project image Compute Engine yang mencakup image OS tersebut. Jika menggunakan image kustom atau Deep Learning VM Image, tentukan project tempat image tersebut berada.

  • VWS_ACCELERATOR_COUNT: jumlah GPU virtual yang Anda butuhkan.

Jika berhasil, output-nya akan mirip dengan berikut ini:

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

REST

Gunakan metode instances.bulkInsert dengan parameter yang diperlukan untuk membuat beberapa VM dalam satu zona. Untuk mengetahui informasi lebih lanjut tentang parameter dan cara menggunakan perintah ini, baca Membuat VM secara massal.

Contoh

Contoh ini membuat dua VM yang telah memasang GPU dengan menggunakan spesifikasi berikut:

  • Nama VM: my-test-vm-1, my-test-vm-2
  • Setiap VM memiliki dua GPU yang terpasang, ditentukan menggunakan jenis mesin yang dioptimalkan akselerator yang sesuai

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
    {
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":MACHINE_TYPE,
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":SOURCE_IMAGE_URI
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        ["automaticRestart":true]
      }
    }
    }
    

Ganti kode berikut:

  • PROJECT_ID: project ID Anda
  • REGION: region untuk VM. Region ini harus mendukung model GPU yang Anda pilih.
  • MACHINE_TYPE: jenis mesin yang Anda pilih. Pilih dari salah satu opsi berikut:

    • Jenis mesin A2.
    • Jenis mesin G2. Jenis mesin G2 juga mendukung memori kustom. Memori harus kelipatan dari 1024 MB dan dalam rentang memori yang didukung. Misalnya, untuk membuat VM dengan 4 vCPU dan memori 19 GB, tentukan --machine-type=g2-custom-4-19456.
  • SOURCE_IMAGE_URI: URI untuk kelompok image atau image tertentu yang ingin Anda gunakan.

    Contoh:

    • Gambar spesifik: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • Kelompok image: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp".

    Saat Anda menentukan kelompok image, Compute Engine akan membuat VM dari image OS terbaru yang masih digunakan dalam kelompok tersebut. Untuk mengetahui informasi selengkapnya tentang kapan harus menggunakan kelompok image, lihat Praktik terbaik kelompok image.

Setelan tambahan:

  • Jika workload Anda fault-tolerant dan dapat menahan kemungkinan preemption VM, pertimbangkan untuk menggunakan Spot VM guna mengurangi biaya VM dan GPU yang terpasang. Untuk mengetahui informasi selengkapnya, lihat GPU di Spot VM. Untuk menggunakan Spot VM, tambahkan opsi "provisioningModel": "SPOT ke permintaan Anda. Untuk Spot VM, tanda opsi mulai ulang otomatis dan pengelolaan host dinonaktifkan.

    "scheduling":
      {
        "provisioningModel": "SPOT"
      }
    
  • Untuk VM G2, didukung NVIDIA RTX Virtual Workstations (vWS). Untuk menentukan workstation virtual, tambahkan opsi guestAccelerators ke permintaan Anda. Ganti VWS_ACCELERATOR_COUNT dengan jumlah GPU virtual yang Anda butuhkan.

    "guestAccelerators":
     [
       {
         "acceleratorCount": VWS_ACCELERATOR_COUNT,
         "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws"
       }
     ]
    

Membuat grup VM tujuan umum N1

Anda dapat membuat grup VM dengan GPU yang terpasang menggunakan Google Cloud CLI, atau REST.

Bagian ini menjelaskan cara membuat beberapa VM menggunakan jenis GPU berikut:

GPU NVIDIA:

  • NVIDIA T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

NVIDIA RTX Virtual Workstation (vWS) (sebelumnya disebut NVIDIA GRID):

  • NVIDIA T4 Virtual Workstation: nvidia-tesla-t4-vws
  • NVIDIA P4 Virtual Workstation: nvidia-tesla-p4-vws
  • NVIDIA P100 Virtual Workstation: nvidia-tesla-p100-vws

    Untuk workstation virtual ini, lisensi NVIDIA RTX Virtual Workstation (vWS) otomatis ditambahkan ke VM Anda.

gcloud

Untuk membuat grup VM, gunakan perintah gcloud compute instances bulk create. Untuk mengetahui informasi lebih lanjut tentang parameter dan cara menggunakan perintah ini, baca Membuat VM secara massal.

Contoh

Contoh berikut membuat dua VM dengan GPU yang terpasang menggunakan spesifikasi berikut:

  • Nama VM: my-test-vm-1, my-test-vm-2
  • VM yang dibuat di zona mana pun di us-central1 yang mendukung GPU
  • Setiap VM dipasangi dengan dua GPU T4, ditentukan dengan menggunakan jenis akselerator dan flag jumlah akselerator
  • Setiap VM diinstal dengan driver GPU
  • Setiap VM menggunakan pytorch-latest-gpu-v20211028-debian-10 Deep Learning VM Image
gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --count=2 \
    --region=us-central1 \
    --machine-type=n1-standard-2 \
    --accelerator type=nvidia-tesla-t4,count=2 \
    --boot-disk-size=200 \
    --metadata="install-nvidia-driver=True" \
    --scopes="https://www.googleapis.com/auth/cloud-platform" \
    --image=pytorch-latest-gpu-v20211028-debian-10 \
    --image-project=deeplearning-platform-release \
    --on-host-maintenance=TERMINATE --restart-on-failure

Jika berhasil, output-nya akan mirip dengan berikut ini:

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

REST

Gunakan metode instances.bulkInsert dengan parameter yang diperlukan untuk membuat beberapa VM dalam satu zona. Untuk mengetahui informasi lebih lanjut tentang parameter dan cara menggunakan perintah ini, baca Membuat VM secara massal.

Contoh

Contoh berikut membuat dua VM dengan GPU yang terpasang menggunakan spesifikasi berikut:

  • Nama VM: my-test-vm-1, my-test-vm-2
  • VM yang dibuat di zona mana pun di us-central1 yang mendukung GPU
  • Setiap VM dipasangi dengan dua GPU T4, ditentukan dengan menggunakan jenis akselerator dan flag jumlah akselerator
  • Setiap VM diinstal dengan driver GPU
  • Setiap VM menggunakan pytorch-latest-gpu-v20211028-debian-10 Deep Learning VM Image

Ganti PROJECT_ID dengan project ID Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/us-central1/instances/bulkInsert

{
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":"n1-standard-2",
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "guestAccelerators":
      [
        {
          "acceleratorCount": 2,
          "acceleratorType": "nvidia-tesla-t4"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        "automaticRestart":true
      },
      "metadata":{
        "items":[
          {
            "key":"install-nvidia-driver",
            "value":"True"
          }
        ]
      }
  }
 }

Apa langkah selanjutnya?