Halaman ini menjelaskan cara menggunakan akselerator hardware unit pemrosesan grafis (GPU) NVIDIA di instance virtual machine (VM) Container-Optimized OS.
Ringkasan
Dengan menggunakan Compute Engine, Anda dapat membuat instance VM yang menjalankan Container-Optimized OS yang memiliki GPU terpasang. Anda hanya dapat menggunakan dua kelompok mesin saat menjalankan GPU di Compute Engine: yang dioptimalkan akselerator dan tujuan umum N1.
Untuk jenis mesin yang dioptimalkan akselerator, setiap jenis mesin memiliki model GPU NVIDIA tertentu yang terpasang.
- Untuk jenis mesin yang dioptimalkan akselerator A4, GPU NVIDIA B200 terpasang.
- Untuk jenis mesin yang dioptimalkan akselerator A3 Ultra, GPU NVIDIA H200 141 GB terpasang.
- Untuk jenis mesin yang dioptimalkan akselerator A3, GPU NVIDIA H100 80 GB terpasang.
- Untuk jenis mesin yang dioptimalkan akselerator A2, GPU NVIDIA A100 terpasang. GPU ini tersedia dalam opsi A100 40 GB dan A100 80 GB.
- Untuk jenis mesin yang dioptimalkan akselerator G2, GPU NVIDIA L4 terpasang.
Untuk jenis mesin tujuan umum N1, Anda dapat melampirkan GPU berikut:
GPU memberikan daya komputasi untuk mendorong tugas deep learning seperti pengenalan citra dan natural language processing, serta tugas intensif komputasi lainnya seperti transcoding video dan pemrosesan gambar.
Google Cloud memberikan pengalaman yang lancar bagi Anda untuk menjalankan workload GPU dalam container di instance VM Container-Optimized OS sehingga Anda dapat memanfaatkan fitur Container-Optimized OS lainnya seperti keamanan dan keandalan.
Untuk mempelajari kasus penggunaan GPU lebih lanjut, lihat GPU Cloud.
Untuk mempelajari cara menggunakan GPU di Google Kubernetes Engine (GKE), lihat Menjalankan GPU di GKE.
Persyaratan
Menjalankan GPU di instance VM Container-Optimized OS memiliki persyaratan berikut:
Image Container-Optimized OS x86: hanya image Container-Optimized OS berbasis x86 yang mendukung GPU yang berjalan. Image Container-Optimized OS berbasis Arm tidak mendukung fitur ini.
Versi Container-Optimized OS: Untuk menjalankan GPU di instance VM Container-Optimized OS, tonggak pencapaian rilis Container-Optimized OS harus merupakan tonggak pencapaian LTS dan nomor tonggak pencapaian harus 85 atau yang lebih tinggi.
Kuota GPU: Anda harus memiliki kuota GPU Compute Engine di zona yang dipilih sebelum dapat membuat instance VM Container-Optimized OS dengan GPU. Untuk memastikan Anda memiliki kuota GPU yang cukup dalam project, lihat Kuota di Google Cloud konsol.
Jika memerlukan kuota GPU tambahan, Anda harus meminta kuota GPU di Google Cloud konsol. Jika memiliki akun penagihan yang telah ditetapkan, project Anda akan otomatis menerima kuota GPU setelah Anda mengirimkan permintaan kuota.
Driver GPU NVIDIA: Anda harus menginstal driver GPU NVIDIA sendiri di instance VM Container-Optimized OS. Bagian ini menjelaskan cara menginstal driver di instance VM Container-Optimized OS.
Membuat VM
Bagian berikut menjelaskan cara menjalankan GPU di VM Container-Optimized OS.
Pertama, Anda memerlukan instance VM Container-Optimized OS dengan GPU. Metode yang digunakan untuk membuat VM bergantung pada model GPU yang dipilih.
- Untuk membuat VM Container-Optimized OS yang telah memasang GPU NVIDIA H100, A100, atau L4, lihat Membuat VM yang dioptimalkan akselerator.
- Untuk membuat VM Container-Optimized OS yang telah memasang GPU NVIDIA T4, P4, P100, atau V100, lihat Membuat VM N1 yang telah memasang GPU.
Anda juga dapat menambahkan GPU ke instance VM Container-Optimized OS yang ada.
Saat membuat VM, ingatlah untuk memilih image atau kelompok image dari project image cos-cloud.
Untuk memeriksa semua GPU yang terpasang ke instance VM Container-Optimized OS saat ini, jalankan perintah berikut:
gcloud compute instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--zone ZONE \
--format="value(guestAccelerators)"
Ganti kode berikut:
INSTANCE_NAME: Nama instance VM baru.PROJECT_ID: ID project Anda.zone: Zona untuk instance VM.
Menginstal driver perangkat GPU NVIDIA
Setelah Anda membuat instance dengan satu atau beberapa GPU, sistem Anda memerlukan driver perangkat agar aplikasi Anda dapat mengakses perangkat. Panduan ini menunjukkan cara menginstal driver eksklusif NVIDIA di instance VM Container-Optimized OS.
Container-Optimized OS menyediakan utilitas bawaan cos-extensions untuk menyederhanakan proses penginstalan driver NVIDIA. Dengan menjalankan utilitas ini, pengguna setuju untuk menerima perjanjian lisensi NVIDIA.
Mengidentifikasi versi driver GPU
Setiap versi image Container-Optimized OS memiliki daftar versi driver GPU NVIDIA yang didukung untuk setiap jenis GPU, beserta driver default untuk setiap jenis. Untuk mengetahui daftar lengkap versi yang didukung, lihat catatan rilis tonggak pencapaian utama LTS Container-Optimized OS.
Anda juga dapat memeriksa semua versi driver GPU yang didukung oleh GPU di instance VM Container-Optimized OS dengan menjalankan perintah berikut:
sudo cos-extensions list
Mengidentifikasi versi toolkit CUDA yang diperlukan
Jika aplikasi Anda menggunakan CUDA, instal toolkit CUDA NVIDIA di container Anda. Setiap versi CUDA memerlukan versi driver GPU minimum atau versi yang lebih baru. Untuk memeriksa versi driver GPU minimum yang diperlukan pada versi CUDA, lihat Toolkit CUDA dan Versi Driver yang Kompatibel. Pastikan versi Container-Optimized OS yang Anda gunakan memiliki versi driver GPU yang benar untuk versi CUDA yang Anda gunakan.
Menginstal driver
Anda dapat menginstal GPU menggunakan perintah shell, skrip startup, atau cloud-init. Ketiga metode tersebut menggunakan perintah sudo cos-extensions install gpu untuk menginstal driver GPU default untuk versi LTS Container-Optimized OS Anda.
Shell
sudo cos-extensions install gpu
Skrip startup
Anda juga dapat menginstal driver GPU melalui skrip startup. Anda dapat menyediakan skrip startup saat membuat instance VM atau menerapkan skrip ke instance VM yang sedang berjalan lalu melakukan reboot VM. Hal ini memungkinkan Anda menginstal driver tanpa terhubung ke VM. Hal ini juga memastikan driver GPU dikonfigurasi pada setiap reboot VM.
Berikut adalah contoh skrip startup untuk menginstal driver:
#! /bin/bash
sudo cos-extensions install gpu
Cloud-init
Cloud-init mirip dengan skrip startup, tetapi lebih canggih. Contoh berikut menunjukkan cara menginstal driver GPU melalui cloud-init:
#cloud-config
runcmd:
- cos-extensions install gpu
Dengan menggunakan cloud-init, Anda dapat menentukan dependensi sehingga aplikasi GPU hanya akan berjalan setelah driver diinstal. Lihat bagian End-to-end: Menjalankan aplikasi GPU di Container-Optimized OS untuk mengetahui detail selengkapnya.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan cloud-init di instance VM Container-Optimized OS, lihat halaman membuat dan mengonfigurasi instance.
Dalam beberapa kasus, driver default yang disertakan dengan Container-Optimized OS tidak memenuhi persyaratan driver minimum toolkit CUDA atau model GPU Anda. Lihat Versi driver NVIDIA yang diperlukan versions untuk mengetahui persyaratan versi untuk jenis GPU tertentu.
Untuk menginstal versi driver GPU tertentu, jalankan perintah berikut:
sudo cos-extensions install gpu -- -version=DRIVER_VERSION
Ganti DRIVER_VERSION dengan salah satu opsi berikut:
default: Menginstal driver default yang ditetapkan oleh rilis Container-Optimized OS. Versi ini menerima perbaikan bug dan update keamanan.latest: Menginstal driver terbaru yang tersedia dalam rilis Container-Optimized OS. Perlu diketahui bahwa hal ini dapat menyebabkan perubahan kompatibilitas karena potensi update versi utama di seluruh rilis COS.- Versi lengkap: Gunakan opsi ini untuk menyematkan ke versi tertentu untuk workload
yang sensitif terhadap perubahan driver. Misalnya, tentukan versi
535.183.01. - Cabang driver NVIDIA: Menginstal driver stabil terbaru dalam
cabang NVIDIA tertentu agar tetap mendapatkan update keamanan dan perbaikan bug dalam
cabang tersebut. Misalnya, tentukan cabang
R535. Opsi ini tersedia mulai daricos-gpu-installer:v2.2.1.
Untuk melihat versi yang tersedia untuk setiap opsi tersebut, jalankan perintah untuk Mengidentifikasi versi driver GPU.
Meneruskan parameter ke modul kernel
Anda dapat meneruskan parameter tertentu ke modul kernel NVIDIA saat penginstalan menggunakan flag --module-arg. Flag ini berguna untuk mengaktifkan atau menonaktifkan fitur driver tertentu. Flag ini dapat digunakan beberapa kali untuk meneruskan beberapa argumen.
Misalnya, di VM COS, Anda dapat menggunakan perintah berikut untuk menginstal driver NVIDIA dan memuat modul kernel nvidia.ko dengan parameter NVreg_EnableGpuFirmware=0.
sudo cos-extensions install gpu -- --module-arg nvidia.NVreg_EnableGpuFirmware=0
Memuat driver
Anda dapat memuat driver GPU di instance Container-Optimized OS meskipun tidak ada perangkat GPU yang terpasang. Hal ini berguna untuk menyiapkan lingkungan atau menguji konfigurasi sebelum melampirkan hardware GPU fisik.
Untuk memuat driver GPU, jalankan perintah berikut:
sudo cos-extensions install gpu -- -no-verify -target-gpu=GPU_DEVICE
Perintah ini didukung mulai dari cos-gpu-installer:v2.3.0. Flag berikut berlaku:
-no-verify: Mendownload dan menyiapkan file driver, tetapi melewati pemuatan modul kernel dan verifikasi penginstalan.-target-gpu: Menentukan perangkat GPU untuk memastikan driver yang benar dimuat, sehingga mencegah masalah kompatibilitas saat perangkat GPU dilampirkan nanti. GantiGPU_DEVICEdengan model GPU tertentu (misalnya,NVIDIA_L4) yang tercantum di Ringkasan. Jika-target-gputidak ditentukan, driver GPU default akan dimuat.
Memverifikasi penginstalan
Anda dapat menjalankan perintah berikut di instance VM Container-Optimized OS untuk memverifikasi penginstalan driver GPU secara manual. Output dari perintah ini menampilkan informasi perangkat GPU, seperti status perangkat dan versi driver.
# Make the driver installation path executable by re-mounting it.
sudo mount --bind /var/lib/nvidia /var/lib/nvidia
sudo mount -o remount,exec /var/lib/nvidia
/var/lib/nvidia/bin/nvidia-smi
Mengonfigurasi container untuk menggunakan GPU
Setelah driver GPU diinstal, Anda dapat mengonfigurasi container untuk menggunakan GPU. Contoh berikut menunjukkan cara menjalankan aplikasi CUDA dalam container Docker yang menggunakan /dev/nvidia0:
docker run \
--volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \
--volume /var/lib/nvidia/bin:/usr/local/nvidia/bin \
--device /dev/nvidia0:/dev/nvidia0 \
--device /dev/nvidia-uvm:/dev/nvidia-uvm \
--device /dev/nvidiactl:/dev/nvidiactl \
registry.k8s.io/cuda-vector-add:v0.1
Anda dapat menjalankan container melalui cloud-init untuk menentukan dependensi antara penginstalan driver dan container Anda. Lihat bagian End-to-end: Menjalankan aplikasi GPU di Container-Optimized OS untuk mengetahui detail selengkapnya.
End-to-end: Menjalankan aplikasi GPU di Container-Optimized OS
Contoh end-to-end berikut menunjukkan cara menggunakan cloud-init untuk mengonfigurasi instance VM Container-Optimized OS yang menyediakan container aplikasi GPU myapp:latest setelah driver GPU diinstal:
#cloud-config
users:
- name: myuser
uid: 2000
write_files:
- path: /etc/systemd/system/install-gpu.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Install GPU drivers
Wants=gcr-online.target docker.socket
After=gcr-online.target docker.socket
[Service]
User=root
Type=oneshot
ExecStart=cos-extensions install gpu
StandardOutput=journal+console
StandardError=journal+console
- path: /etc/systemd/system/myapp.service
permissions: 0644
owner: root
content: |
[Unit]
Description=Run a myapp GPU application container
Requires=install-gpu.service
After=install-gpu.service
[Service]
User=root
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/docker run --rm -u 2000 --name=myapp --device /dev/nvidia0:/dev/nvidia0 myapp:latest
StandardOutput=journal+console
StandardError=journal+console
runcmd:
- systemctl daemon-reload
- systemctl start install-gpu.service
- systemctl start myapp.service
Tentang library NVIDIA CUDA-X
CUDA® adalah model pemrograman dan platform komputasi paralel NVIDIA's untuk GPU. Untuk menggunakan aplikasi CUDA, library harus ada dalam image yang Anda gunakan. Anda dapat melakukan salah satu hal berikut untuk menambahkan library NVIDIA CUDA-X:
Gunakan image dengan library NVIDIA CUDA-X yang telah diinstal sebelumnya. Misalnya, Anda dapat menggunakan Deep Learning Containers Google. Container ini menginstal lebih dulu framework data science kunci, library, dan alat NVIDIA CUDA-X. Atau, image CUDA NVIDIA hanya berisi library NVIDIA CUDA-X.
Buat dan gunakan image Anda sendiri. Dalam hal ini, sertakan
/usr/local/cuda-XX.X/lib64, yang berisi library NVIDIA CUDA-X, dan/usr/local/nvidia/lib64, yang berisi driver perangkat NVIDIA, dalam variabel lingkunganLD_LIBRARY_PATH. Untuk/usr/local/cuda-XX.X/lib64, nama direktori bergantung pada versi image yang Anda gunakan. Misalnya, library NVIDIA CUDA-X dan utilitas debug dalam container Docker dapat berada di/usr/local/cuda-11.0/lib64dan/usr/local/nvidia/bin, masing-masing.
Keamanan
Sama seperti modul kernel lainnya di Container-Optimized OS, driver GPU ditandatangani dan diverifikasi secara kriptografi oleh kunci yang dibuat ke dalam kernel Container-Optimized OS. Tidak seperti beberapa distro lainnya, Container-Optimized OS tidak mengizinkan pengguna untuk mendaftarkan Machine Owner Key (MOK) dan menggunakan kunci untuk menandatangani modul kernel kustom. Hal ini untuk memastikan integritas kernel Container-Optimized OS dan mengurangi potensi serangan.
Pembatasan
Pembatasan versi Container-Optimized OS
Hanya tonggak pencapaian rilis LTS Container-Optimized OS 85 dan yang lebih baru yang mendukung utilitas
cos-extensions yang disebutkan di bagian Menginstal driver perangkat GPU NVIDIA. Untuk tonggak pencapaian rilis Container-Optimized OS sebelumnya, gunakan
cos-gpu-installer
alat open source untuk menginstal driver GPU secara manual.
Pembatasan instance VM
Instance VM dengan GPU memiliki batasan tertentu yang membuatnya berperilaku berbeda dengan jenis instance lainnya. Untuk mengetahui informasi selengkapnya, lihat halaman Compute Engine batasan GPU.
Kuota dan ketersediaan
GPU tersedia di region dan zona tertentu. Saat Anda meminta kuota GPU, pertimbangkan region tempat Anda ingin menjalankan instance VM Container-Optimized OS.
Untuk mengetahui daftar lengkap region dan zona yang berlaku, lihat GPU di Compute Engine. Anda juga dapat melihat GPU yang tersedia di zona Anda menggunakan Google Cloud CLI.
gcloud compute accelerator-types list
Harga
Untuk mengetahui informasi harga GPU, lihat halaman harga Compute Engine.
Dukungan
Setiap versi rilis Container-Optimized OS memiliki setidaknya satu versi driver GPU NVIDIA yang didukung. Tim Container-Optimized OS memenuhi syarat driver GPU yang didukung terhadap versi Container-Optimized OS sebelum dirilis untuk memastikan driver tersebut kompatibel. Versi baru driver GPU NVIDIA dapat tersedia dari waktu ke waktu. Beberapa versi driver GPU tidak akan memenuhi syarat untuk Container-Optimized OS, dan linimasa kualifikasi tidak dijamin.
Saat tim Container-Optimized OS merilis versi baru pada tonggak pencapaian rilis kami mencoba mendukung versi driver GPU terbaru di cabang driver yang sesuai. Hal ini dilakukan untuk memperbaiki CVE yang ditemukan di driver GPU sesegera mungkin.
Jika pelanggan Container-Optimized OS mengidentifikasi masalah yang terkait dengan driver GPU NVIDIA, pelanggan harus bekerja langsung dengan NVIDIA untuk mendapatkan dukungan. Jika masalahnya tidak spesifik untuk driver, pengguna dapat membuka permintaan dengan Dukungan Pelanggan Cloud.
Langkah berikutnya
- Pelajari lebih lanjut tentang menjalankan container di instance VM Container-Optimized OS.
- Pelajari lebih lanjut GPU di Compute Engine.
- Pelajari lebih lanjut cara meminta kuota GPU.