Halaman ini menjelaskan cara menggunakan akselerator hardware unit pemrosesan grafis (GPU) NVIDIA pada 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 yang terpasang. Anda hanya dapat menggunakan dua kelompok mesin saat menjalankan GPU di Compute Engine: dioptimalkan untuk akselerator dan N1 untuk tujuan umum.
Untuk jenis mesin yang dioptimalkan dengan akselerator, setiap jenis mesin memiliki model spesifik GPU NVIDIA yang terpasang.
- Untuk jenis mesin yang dioptimalkan dengan akselerator A3, GPU NVIDIA H100 80 GB disertakan.
- Untuk jenis mesin yang dioptimalkan dengan akselerator A2, GPU NVIDIA A100 disertakan. GPU ini tersedia dalam opsi A100 40GB dan A100 80GB.
- Untuk jenis mesin yang dioptimalkan dengan akselerator G2, GPU L4 NVIDIA telah disertakan.
Untuk jenis mesin tujuan umum N1, Anda dapat memasang GPU berikut:
GPU memberikan daya komputasi untuk mendorong tugas deep learning seperti pengenalan gambar dan natural language processing, serta tugas intensif komputasi lainnya seperti transcoding video dan pemrosesan gambar.
Google Cloud memberikan pengalaman yang lancar agar Anda dapat menjalankan workload GPU dalam container di instance VM OS yang Dioptimalkan untuk Container, sehingga Anda dapat memanfaatkan fitur OS yang Dioptimalkan untuk Container lainnya, seperti keamanan dan keandalan.
Untuk mempelajari lebih lanjut kasus penggunaan GPU, lihat Cloud GPU.
Untuk mempelajari cara menggunakan GPU di Google Kubernetes Engine (GKE), lihat Menjalankan GPU di GKE.
Persyaratan
Menjalankan GPU pada instance VM OS yang Dioptimalkan untuk Container memiliki persyaratan berikut:
Image Container-Optimized OS x86: hanya image Container-Optimized OS berbasis x86 yang mendukung berjalannya GPU. Image OS yang Dioptimalkan berdasarkan Arm-based tidak mendukung fitur ini.
Versi OS yang Dioptimalkan untuk Container: Untuk menjalankan GPU di instance VM OS yang Dioptimalkan untuk Container, tahap rilis OS yang Dioptimalkan untuk Container harus berupa milestone LTS dan nomor milestone harus 85 atau lebih tinggi.
Kuota GPU: Anda harus memiliki kuota GPU Compute Engine di zona yang Anda pilih sebelum dapat membuat instance VM OS yang Dioptimalkan untuk Container dengan GPU. Untuk memastikan Anda memiliki kuota GPU yang cukup di project, lihat Kuota di Konsol Google Cloud.
Jika memerlukan kuota GPU tambahan, Anda harus meminta kuota GPU di Konsol Google Cloud. Jika Anda sudah memiliki akun penagihan, 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 pada instance VM Container-Optimized OS.
Membuat VM
Bagian berikut menjelaskan cara menjalankan GPU pada VM OS yang Dioptimalkan untuk Container.
Pertama, Anda memerlukan instance VM OS yang Dioptimalkan untuk Container dengan GPU. Metode yang digunakan untuk membuat VM bergantung pada model GPU yang dipilih.
- Untuk membuat VM OS yang Dioptimalkan untuk Container yang telah memasang GPU NVIDIA H100, A100, atau L4, lihat Membuat VM yang dioptimalkan dengan akselerator.
- Untuk membuat VM OS yang Dioptimalkan untuk Container 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 yang Dioptimalkan untuk Container yang ada.
Saat Anda membuat VM, jangan lupa memilih gambar atau kelompok gambar dari project image cos-cloud
.
Untuk memeriksa semua GPU yang terpasang ke instance VM OS yang Dioptimalkan untuk Container 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 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 pada 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 menyetujui perjanjian lisensi NVIDIA.
Mengidentifikasi versi driver GPU
Setiap versi image OS yang Dioptimalkan untuk Container memiliki versi driver GPU NVIDIA yang didukung secara default. Lihat catatan rilis pencapaian versi utama LTS yang Dioptimalkan untuk Container untuk versi default yang didukung.
Anda juga dapat memeriksa semua versi driver GPU yang didukung dengan menjalankan perintah berikut pada instance VM Container-Optimized OS Anda:
sudo cos-extensions list
Kompatibilitas GPU K80
Driver NVIDIA R470 adalah keluarga driver terakhir yang mendukung GPU K80. Jika
versi yang lebih tinggi diinstal dalam instance dengan GPU K80,
cos-gpu-installer:v2
(mulai dari v2.0.26) yang dipanggil oleh cos-extensions
akan
otomatis kembali ke versi R470 yang tersedia.
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 untuk versi CUDA, lihat Versi Driver yang Kompatibel dan Toolkit CUDA. Pastikan versi Container-Optimized OS yang Anda gunakan memiliki versi driver GPU yang benar untuk versi CUDA yang Anda gunakan.
Instal driver
Anda dapat menginstal GPU dengan menggunakan perintah shell, skrip startup, atau
init cloud. Ketiga metode tersebut menggunakan perintah sudo cos-extensions install gpu
untuk menginstal driver GPU default untuk versi LTS yang Dioptimalkan untuk Container.
Shell
Setelah terhubung ke instance VM OS yang Dioptimalkan untuk Container, Anda dapat menjalankan perintah berikut secara manual untuk menginstal driver:
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 untuk menjalankan instance VM, lalu memulai ulang VM. Hal ini memungkinkan Anda menginstal {i>driver<i} tanpa terhubung ke VM. Alat 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
Penggunaan cloud-init memungkinkan Anda menentukan dependensi sehingga aplikasi GPU hanya akan berjalan setelah driver diinstal. Lihat bagian End-to-end: Menjalankan aplikasi GPU di Container-Optimized OS untuk detail selengkapnya.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan cloud-init pada instance VM OS yang Dioptimalkan untuk Container, lihat halaman membuat dan mengonfigurasi instance.
Dalam beberapa kasus, driver default tidak memenuhi persyaratan driver minimum
toolkit CUDA atau model GPU Anda. Untuk menginstal versi driver GPU tertentu, tambahkan tanda versi.
Ganti DRIVER_VERSION
dengan versi driver GPU minimum yang diperlukan untuk model GPU Anda dan didukung oleh Container-Optimized OS.
Container-Optimized OS hanya mendukung sekumpulan driver NVIDIA tertentu.
- Untuk mengetahui versi driver minimum bagi setiap model GPU, lihat Versi driver NVIDIA yang diperlukan.
- Untuk daftar versi driver yang didukung oleh Container-Optimized OS, lihat Mengidentifikasi versi driver GPU.
sudo cos-extensions install gpu -- -version=DRIVER_VERSION
Memverifikasi penginstalan
Anda dapat menjalankan perintah berikut di instance VM OS yang Dioptimalkan untuk Container untuk memverifikasi penginstalan driver GPU secara manual. Output dari perintah menunjukkan 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 di 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 \
gcr.io/google_containers/cuda-vector-add:v0.1
Anda dapat menjalankan container melalui cloud-init untuk menentukan dependensi antara penginstalan driver dan container. baca bagian End-to-end: Menjalankan aplikasi GPU pada Container-Optimized OS untuk mengetahui detail selengkapnya.
Menyeluruh: Menjalankan aplikasi GPU di Container-Optimized OS
Contoh menyeluruh berikut menunjukkan cara menggunakan cloud-init untuk mengonfigurasi instance VM OS yang Dioptimalkan untuk Container yang menyediakan penampung 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 untuk GPU. Untuk menggunakan aplikasi CUDA, library harus ada dalam image yang Anda gunakan. Anda dapat melakukan salah satu hal berikut untuk menambahkan library CUDA-X NVIDIA:
Gunakan image dengan library CUDA-X NVIDIA yang telah diinstal sebelumnya. Misalnya, Anda dapat menggunakan Deep Learning Containers Google. Container ini menginstal sebelumnya framework data science utama, library CUDA-X NVIDIA, dan alat. Atau, image CUDA NVIDIA hanya berisi library CUDA-X NVIDIA.
Build dan gunakan image Anda sendiri. Dalam hal ini, sertakan
/usr/local/cuda-XX.X/lib64
, yang berisi library CUDA-X NVIDIA, 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 CUDA-X NVIDIA dan utilitas debug di container Docker masing-masing dapat berada di/usr/local/cuda-11.0/lib64
dan/usr/local/nvidia/bin
.
Keamanan
Sama seperti modul kernel lainnya di OS yang Dioptimalkan untuk Container, driver GPU ditandatangani dan diverifikasi secara kriptografis oleh kunci yang dibangun ke dalam kernel OS yang Dioptimalkan untuk Container. Tidak seperti distro lainnya, Container-Optimized OS tidak mengizinkan pengguna untuk mendaftarkan Kunci Pemilik Mesin (MOK) mereka dan menggunakan kunci tersebut untuk menandatangani modul kernel kustom. Hal ini untuk memastikan integritas kernel OS yang Dioptimalkan untuk Container dan mengurangi permukaan serangan.
Pembatasan
Pembatasan versi OS yang Dioptimalkan untuk Container
Hanya milestone rilis LTS yang Dioptimalkan Container 85 dan yang lebih baru yang mendukung
utilitas cos-extensions
yang disebutkan di bagian
Menginstal driver perangkat GPU NVIDIA. Untuk pencapaian rilis Container-Optimized OS sebelumnya, gunakan alat open source cos-gpu-installer
untuk menginstal driver GPU secara manual.
Pembatasan instance VM
Instance VM dengan GPU memiliki batasan khusus yang membuatnya berperilaku berbeda dibandingkan jenis instance lainnya. Untuk informasi selengkapnya, lihat halaman Pembatasan GPU Compute Engine.
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.
Kemampuan dukungan
Setiap versi rilis Container-Optimized OS memiliki setidaknya satu versi driver GPU NVIDIA yang didukung. Tim OS yang Dioptimalkan Container menjadikan driver GPU yang didukung berdasarkan versi Container-Optimized OS sebelum rilis untuk memastikannya kompatibel. Versi baru driver GPU NVIDIA mungkin tersedia dari waktu ke waktu. Beberapa versi driver GPU tidak akan memenuhi syarat untuk OS yang Dioptimalkan untuk Container, dan linimasa kualifikasi tidak dijamin.
Saat tim Container-Optimized OS merilis versi baru pada milestone rilis, kami mencoba mendukung versi driver GPU terbaru di cabang driver yang sesuai. Langkah ini untuk memperbaiki CVE yang ditemukan di driver GPU sesegera mungkin.
Jika pelanggan Container-Optimized OS mengidentifikasi masalah yang terkait dengan driver GPU NVIDIA, pelanggan tersebut harus bekerja sama langsung dengan NVIDIA untuk mendapatkan dukungan. Jika masalah tidak spesifik untuk pengemudi, pengguna dapat membuka permintaan melalui Cloud Customer Care.
Langkah selanjutnya
- Pelajari lebih lanjut cara menjalankan container di instance VM OS yang Dioptimalkan untuk Container.
- Pelajari GPU di Compute Engine lebih lanjut.
- Pelajari lebih lanjut cara meminta kuota GPU.