Membuat dan menjalankan tugas yang menggunakan GPU

Dokumen ini menjelaskan cara membuat dan menjalankan tugas yang menggunakan unit pemrosesan grafis (GPU).

Saat membuat tugas Batch, Anda dapat secara opsional menambahkan satu atau beberapa GPU ke VM yang menjalankannya. Kasus penggunaan umum untuk tugas yang menggunakan GPU mencakup pemrosesan data yang intensif dan workload machine learning (ML).

Sebelum memulai

Membuat tugas yang menggunakan GPU

Untuk membuat tugas yang menggunakan GPU, lakukan hal berikut:

  1. Tinjau bagian Persyaratan tugas untuk menggunakan GPU guna menentukan metode yang dapat Anda gunakan untuk membuat tugas.
  2. Buat tugas dengan metode yang Anda pilih. Untuk contoh cara membuat tugas menggunakan metode yang direkomendasikan, lihat bagian Membuat contoh tugas yang menggunakan GPU.

Persyaratan agar tugas dapat menggunakan GPU

Untuk menggunakan GPU, tugas harus melakukan semua hal berikut:

Setelah menentukan cara memenuhi persyaratan ini untuk tugas Anda, Anda juga perlu menentukan GPU dan lokasi tugas. Setiap VM tugas dapat menggunakan satu atau beberapa GPU dari jenis yang Anda tentukan. Lokasi yang diizinkan untuk VM tugas (atau jika tidak ditentukan, lokasi tugas) harus memiliki jenis GPU yang telah ditentukan. Untuk informasi selengkapnya tentang menentukan jenis GPU, nomor GPU, dan lokasi yang valid untuk tugas, lihat contoh.

Menginstal driver GPU

Untuk menginstal driver GPU yang diperlukan, pilih salah satu metode berikut:

Menentukan resource VM yang kompatibel

Jika tugas Anda menentukan salah satu resource VM (salah satu dari subkolom instances[]) selain GPU, Anda harus menentukan resource VM tersebut dengan cara yang kompatibel.

Untuk menentukan resource untuk VM tugas, termasuk GPU apa pun, Anda hanya dapat menggunakan metode berikut:

  • Menentukan resource secara langsung (direkomendasikan): Seperti yang ditunjukkan dalam contoh, guna menentukan resource untuk VM tugas secara langsung, gunakan kolom policy.
  • Tentukan resource dalam template: Tentukan resource untuk VM tugas dengan menentukan template instance Compute Engine.

Selain itu, semua resource yang Anda tentukan harus kompatibel dengan jenis dan jumlah GPU untuk tugas tersebut. Untuk mengetahui informasi selengkapnya tentang resource VM yang dapat Anda gunakan dengan GPU, lihat platform GPU dalam dokumentasi Compute Engine.

Membuat contoh tugas yang menggunakan GPU

Anda dapat membuat tugas yang menggunakan GPU dengan gcloud CLI atau Batch API.

gcloud

  1. Buat file JSON yang menentukan detail konfigurasi tugas, subkolom type dan count dari kolom accelerators[], dan lokasi yang memiliki jenis GPU tersebut.

    Misalnya, untuk membuat tugas skrip dasar yang menggunakan GPU, menginstal driver GPU yang diperlukan secara otomatis, dan menentukan lokasi yang diizinkan untuk VM tugas tersebut, buat file JSON dengan konten berikut:

    {
        "taskGroups": [
            {
                "taskSpec": {
                    "runnables": [
                        {
                            "script": {
                                "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                            }
                        }
                    ]
                },
                "taskCount": 3,
                "parallelism": 1
            }
        ],
        "allocationPolicy": {
            "instances": [
                {
                    "installGpuDrivers": INSTALL_GPU_DRIVERS,
                    "policy": {
                        "accelerators": [
                            {
                                "type": "GPU_TYPE",
                                "count": GPU_COUNT
                            }
                        ]
                    }
                }
            ],
            "location": {
                "allowedLocations": [
                    "ALLOWED_LOCATIONS"
                ]
            }
        }
    }
    

    Ganti kode berikut:

    • INSTALL_GPU_DRIVERS: Opsional. Jika ditetapkan ke true, Batch akan mengambil driver yang diperlukan untuk jenis GPU yang Anda tentukan di kolom policy dari lokasi pihak ketiga, dan Batch menginstalnya untuk Anda. Jika Anda menetapkan kolom ini ke false (default), Anda harus menginstal driver GPU secara manual agar dapat menggunakan GPU apa pun untuk tugas ini.

    • GPU_TYPE: jenis GPU. Anda dapat melihat daftar jenis GPU yang tersedia dengan menggunakan perintah gcloud compute accelerator-types list.

    • GPU_COUNT: jumlah GPU dari jenis yang ditentukan.

    • ALLOWED_LOCATIONS: Opsional. Lokasi tempat instance VM untuk tugas Anda diizinkan untuk dijalankan—misalnya, regions/us-central1, zones/us-central1-a memungkinkan zona us-central1-a. Jika menentukan lokasi yang diizinkan, Anda harus memilih region, dan secara opsional, satu atau beberapa zona. Lokasi yang Anda pilih harus memiliki jenis GPU yang Anda inginkan untuk tugas ini. Jika tidak, jika Anda menghilangkan kolom ini, lokasi tugas harus memiliki jenis GPU. Untuk mengetahui informasi selengkapnya, lihat kolom allowedLocations[].

  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 pekerjaan.

    • LOCATION: lokasi tugas.

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

API

Buat permintaan POST ke metode jobs.create yang menentukan detail konfigurasi tugas, subkolom type dan count dari kolom accelerators[], dan lokasi yang memiliki jenis GPU tersebut.

Misalnya, untuk membuat tugas skrip dasar yang menggunakan GPU, menginstal driver GPU yang diperlukan secara otomatis, dan menentukan lokasi yang diizinkan untuk VM tugas tersebut, buat file JSON dengan konten 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 task ${BATCH_TASK_INDEX}."
                        }
                    }
                ]
            },
            "taskCount": 3,
            "parallelism": 1
        }
    ],
    "allocationPolicy": {
        "instances": [
            {
                "installGpuDrivers": INSTALL_GPU_DRIVERS,
                "policy": {
                    "accelerators": [
                        {
                            "type": "GPU_TYPE",
                            "count": GPU_COUNT
                        }
                    ]
                }
            }
        ],
        "location": {
            "allowedLocations": [
                "ALLOWED_LOCATIONS"
            ]
        }
    }
}

Ganti kode berikut:

  • PROJECT_ID: project ID project Anda.

  • LOCATION: lokasi tugas.

  • JOB_NAME: nama pekerjaan.

  • INSTALL_GPU_DRIVERS: Opsional. Jika ditetapkan ke true, Batch akan mengambil driver yang diperlukan untuk jenis GPU yang Anda tentukan di kolom policy dari lokasi pihak ketiga, dan Batch menginstalnya untuk Anda. Jika Anda menetapkan kolom ini ke false (default), Anda harus menginstal driver GPU secara manual agar dapat menggunakan GPU apa pun untuk tugas ini.

  • GPU_TYPE: jenis GPU. Anda dapat melihat daftar jenis GPU yang tersedia dengan menggunakan perintah gcloud compute accelerator-types list.

  • GPU_COUNT: jumlah GPU dari jenis yang ditentukan.

  • ALLOWED_LOCATIONS: Opsional. Lokasi tempat instance VM untuk tugas Anda diizinkan untuk dijalankan—misalnya, regions/us-central1, zones/us-central1-a memungkinkan zona us-central1-a. Jika menentukan lokasi yang diizinkan, Anda harus memilih region, dan secara opsional, satu atau beberapa zona. Lokasi yang Anda pilih harus memiliki jenis GPU yang Anda inginkan untuk tugas ini. Jika tidak, jika Anda menghilangkan kolom ini, lokasi tugas harus memiliki jenis GPU. Untuk mengetahui informasi selengkapnya, lihat kolom allowedLocations[].

Langkah selanjutnya