Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Menjalankan Wadah Penulisan Docker Dengan Akses GPU

Posted on July 25, 2022

GPU di Docker memungkinkan Anda menampung beban kerja yang menuntut seperti aplikasi pembelajaran mesin. GPU tidak tersedia secara otomatis saat Anda memulai container baru tetapi dapat diaktifkan dengan flag –gpus untuk menjalankan docker atau dengan menambahkan bidang tambahan ke file docker-compose.yml.

Dalam artikel ini, kami akan menunjukkan cara aktifkan dukungan GPU di Docker Compose. Anda memerlukan Docker Compose versi v1.28 atau yang lebih baru untuk mengikuti panduan ini. GPU tidak didukung di Compose versi v1.18 dan yang lebih lama; rilis antara v1.19 dan v1.27 menggunakan struktur bidang lawas yang memberikan lebih sedikit kontrol.

Menyiapkan Sistem Anda

Host Docker Anda perlu disiapkan sebelum dapat mengekspos perangkat keras GPU Anda. Meskipun container berbagi kernel host Anda, mereka tidak dapat melihat paket sistem yang telah Anda instal. Wadah biasa akan kekurangan driver perangkat yang berinteraksi dengan GPU Anda.

Anda dapat mengaktifkan dukungan untuk GPU NVIDIA dengan menginstal Docker Container Toolkit NVIDIA:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) 
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - 
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker

 

Paket ini membungkus runtime container Docker dengan antarmuka ke driver NVIDIA host Anda. Memeriksa file /etc/docker/daemon.json Anda akan mengonfirmasi bahwa runtime container yang dikonfigurasi telah diubah. Toolkit NVIDIA akan menangani injeksi koneksi perangkat GPU saat container baru dimulai. Kemudian akan diserahkan ke runtime.

$ cat /etc/docker/daemon.json
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

 

Menyiapkan Image

GPU Anda akses di Docker juga bergantung pada image container Anda yang dikonfigurasi dengan benar. Biasanya paling sederhana untuk mendasarkan gambar Anda pada varian nvidia/cuda. Titik awal yang disediakan NVIDIA ini telah dikonfigurasi sebelumnya dengan dukungan CUDA. Instal bahasa pemrograman apa pun yang Anda butuhkan, lalu salin kode yang bergantung pada GPU:

FROM nvidia/cuda:11.4.0-base-ubuntu20.04
RUN apt update &&\ 
  apt-get install -y python3 python3-pip &&\
  pip install tensorflow-gpu

COPY tensor.py .
ENTRYPONT ["python3", "tensor.py"]

 

Anda harus menggunakan versi CUDA yang sama dengan yang Anda instal di host Anda. Anda dapat memeriksanya dengan menjalankan nvidia-smi:

$ nvidia-smi
Tue May 10 19:15:00 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
...

 

Sekarang Anda dapat menulis file Docker Compose untuk memulai container Anda dengan lampiran GPU.

Akses GPU di Docker Compose

GPU direferensikan dalam file docker-compose.yml melalui bidang deploy.resources.reservations.devices dalam layanan Anda yang membutuhkannya. Mekanisme ini memungkinkan Anda mengidentifikasi GPU yang ingin Anda lampirkan. Setiap perangkat yang dipilih akan diberikan ke container Anda.

Berikut adalah contoh sederhana yang memulai container menggunakan image nvidia/cuda. Ini akan memancarkan informasi tentang GPU Anda ketika wadah dimulai.

services: app: image: nvidia/cuda:11.4.0-base-ubuntu20.04 perintah: nvidia-smi deploy: resources: reservation: devices: – driver: nvidia kapabilitas : [gpu]

Bidang deploy.resources.reservations.devices menentukan perangkat yang dapat digunakan container Anda. Menyetel driver ke nvidia dan menambahkan kemampuan gpu akan menentukan perangkat GPU.

Run docker-compose up (atau docker compose up untuk Compose v2) untuk memulai container Anda:

services:
  app:
    image: nvidia/cuda:11.4.0-base-ubuntu20.04
    command: nvidia-smi
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: [gpu]

 

Wadah seharusnya berhasil mendapatkan akses ke GPU Anda. Versi driver dan CUDA akan cocok dengan yang diinstal pada host Anda.

Menggunakan Beberapa GPU

Kontainer Anda menerima akses ke semua GPU di sistem Anda kecuali jika konfigurasi lebih lanjut diberikan. Ada dua cara berbeda untuk mengakses subset perangkat GPU Anda.

Mengakses Perangkat dengan Jumlah Tetap

Bidang hitung mencadangkan sejumlah perangkat tertentu. Dalam contoh ini, sistem dengan dua GPU akan menyediakan salah satunya ke container. Itu sewenang-wenang mana yang akan dipilih.

$ docker compose up
Creating network "scratch_default" with the default driver
Creating scratch_app_1 ... done
Attaching to scratch_app_1
app_1  | Tue May 10 14:21:14 2022       
app_1  | +-----------------------------------------------------------------------------+
app_1  | | NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
app_1  | |-------------------------------+----------------------+----------------------+

 

Mengakses Perangkat Tertentu

Anda dapat mengidentifikasi perangkat individual di sistem Anda menggunakan bidang device_ids. Ini menerima larik ID perangkat yang diindeks 0 untuk diberikan ke penampung. Anda dapat menemukan ID ini dengan mencantumkan GPU Anda dengan nvidia-smi:

services:
  app:
    image: nvidia/cuda:11.4.0-base-ubuntu20.04
    command: nvidia-smi
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

 

Untuk mengakses dua perangkat terakhir dalam daftar dengan andal, sertakan ID perangkat mereka dalam konfigurasi layanan Anda:

$ nvidia-smi --list-gpus
GPU 0: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-5ba4538b-234f-2c18-6a7a-458d0a7fb348)
GPU 1: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-d5ce9af3-710c-4222-95f8-271db933d438)
GPU 2: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-50d4eb4f-7b08-4f8f-8d20-27d797fb7f19)
GPU 3: NVIDIA GeForce GTX 1080 Ti (UUID: GPU-bed2d40a-c6e7-4547-8d7d-a1576c5247b2)

 

Anda dapat menggunakan countordevice_ids di setiap definisi layanan Anda. Anda akan mendapatkan error saat menjalankan docker-compose up jika Anda mencoba menggabungkan keduanya, menentukan ID perangkat yang tidak valid, atau menggunakan nilai count yang lebih tinggi dari jumlah GPU di sistem Anda.

Rilis Docker Compose modern mendukung akses GPU melalui fitur reservasi perangkat deploy.resources. Anda tetap bertanggung jawab untuk menyiapkan lingkungan host dan menggunakan image container yang mendukung GPU. Setelah itu diurus, menjalankan docker-compose up -d lebih sederhana daripada mengingat untuk menyertakan –gpus all flag setiap kali Anda menggunakan docker run.

Anda dapat memasukkan file docker-compose.yml Anda ke dalam kontrol sumber sehingga semua orang mendapatkan GPU otomatis mengakses. Anda harus memastikan bahwa Anda melakukan standarisasi pada versi driver NVIDIA yang konsisten, karena rilis yang digunakan oleh gambar Anda harus cocok dengan yang diinstal pada host Anda. Di masa depan, dukungan GPU Docker dapat bekerja dengan perangkat Intel dan AMD juga, tetapi mencoba menggunakannya hari ini akan menghasilkan kesalahan. NVIDIA adalah satu-satunya vendor GPU yang saat ini didukung oleh project Moby.

Itulah berita seputar Cara Menjalankan Wadah Penulisan Docker Dengan Akses GPU, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Apa Itu GetContact Premium? Ini Pengertian dan Cara Daftarnya
  • Android Maze Figure: Koleksi Baru Google yang Bikin Penggemar Bergairah!
  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Masih Pusing Hitung Gaji Manual? Waktunya Pakai Aplikasi HR
  • Apa Itu Dustruco? Ini Pengertian dan Cara Pasangnya di HP Kalian
  • Apa Itu Aplikasi Dooie Live? Ini Pengertian dan Cara Pakai Aplikasinya untuk Cari Jodoh
  • Apa Itu Battle Emote Jefri Nichol dan Om Telolet Om di MLBB? Ini Penjelasannya
  • Apa itu Game Luna Mobile dan Bagaimana Cara Menangnya?
  • Apa Itu Kompensasi Sistem Trail Mobile Legends? Ini Penjelasan dan Cara Klaim Hadiahnya
  • Apa Itu Update Google Pixel 2 Desember 2025? Ini Penjelasannya!
  • Ini Cara Reset Desil di Aplikasi Cek Bansos Biar Valid (Update Januari 2026)
  • Apa Itu EZNET Wireless dan Fiber Optic? Ini Perbedaan dan Pengertian Lengkapnya
  • Pengertian Rework Magic Wheel dan Rank Mythic Eternal: Apa itu Perubahan Sistem Baru Mobile Legends?
  • Apa Itu Diamond Combo? Pengertian Game Puzzle Viral yang Katanya Bisa Hasilkan Cuan
  • Apa Itu Showbox? Pengertian, Fungsi, dan Cara Menggunakannya di Android
  • Cara Mengatasi Fitur Monet Facebook Pro Tiba-tiba Hilang
  • Google Bikin Kejutan! Pixel 10 Diskon Gila-gilaan di YouTube Premium
  • Apa Itu Google CC? Ini Pengertian Agen Produktivitas AI Eksperimental Terbaru
  • Apa Itu Ultras Seblak di eSport? Pengertian dan Fenomena Baru Suporter eSport
  • Android 16: Animasi Folder Baru yang Mengubah Cara Kita Berinteraksi!
  • Android 16: Notifikasi Lokasi ‘Blue Dot’ – Fitur Baru yang Perlu Kalian Ketahui!
  • Apa Itu Risiko Auto Click di Event Spongebob Mobile Legends? Ini Penjelasannya
  • Apa Itu Fitur Eksperimental Windows? Ini Pengertian dan Cara Menonaktifkannya
  • Apa Itu Android 16 Beta 1? Ini Pengertian dan Fitur Terbarunya
  • Belum Tahu? Ini Trik Supaya Bisa Dapat Skin Patrick Mobile Legends dengan Harga Murah
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Apa Itu Elestio VibeCoder? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Loading Model AI Lama? Coba Fitur Cached Models RunPod Ini, Hemat Waktu & Biaya!
  • Gila! 574 Penjahat Siber Diciduk Interpol di Afrika, Kok Bisa Jaringannya Segede Ini?
  • Apa Itu Regulasi Drone Asing FAA? Ini Pengertian dan Implikasinya
  • Apa Itu Insiden Data Breach Nissan? Ini Kronologi dan Penjelasannya
  • Apa Itu Skandal Instacart? Pengertian Dark Pattern dan Refund 940 Miliar
  • Apa Itu Kerentanan UEFI? Pengertian Celah Keamanan DMA pada Booting Awal
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV

©2025 emka.web.id | Design: Newspaperly WordPress Theme