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

  • Inilah Alasan Kenapa Beli Follower IG itu TIDAK AMAN!
  • EPIK! Kisah Mesin Bor Tercanggih Takluk di Proyek Terowongan Zojila Himalaya
  • Bingung Cari Lokasi Seseorang? Cek Cara Melacak Pemilik Nomor HP Tanpa Bayar Ini, Dijamin Akurat!
  • Apa itu Logis? Kenapa Logika Bisa Berbeda-beda?
  • Ini Alasan Kenapa Fitur Bing AI Sedang Trending dan Dicari Banyak Orang
  • Sejarah Kerajaan Champa: Bangsa Yang Hilang Tanpa Perang Besar, Kok Bisa?
  • Gini Caranya Dapat Weekly Diamond Pass Gratis di Event M7 Pesta, Ternyata Nggak Pake Modal!
  • Inilah Trik Rahasia Panen Token dan Skin Gratis di Event Pesta Cuan M7 Mobile Legends!
  • Apakah Apk Pinjaman Cepat Galaxy Pinjol Penipu?
  • Cara Tarik Saldo APK Game Clear Blast
  • Apakah APK Game Clear Blast Penipu? Ini Reviewnya
  • Inilah Perbedaan SEO dan GEO + Tips Konten Disukai Google dan AI!
  • Inilah Cara Download Video TikTok 2026 Tanpa Watermark
  • Belum Tahu? Ini Trik Nonton Doods Pro Bebas Iklan dan Cara Downloadnya
  • Misteri DNA Spanyol Terungkap: Jauh Lebih Tua dari Romawi dan Moor!
  • Kenapa Belut Listrik itu Sangat Mematikan
  • Apa itu Tesso Nilo dan Kronologi Konflik Taman Nasional
  • Inilah 4 Keunikan Sulawesi Tengah: Kota Emas Gaib, Situs Purba dll
  • Kepulauan Heard dan McDonald: Pulau Paling Terpencil Milik Australia
  • Ghost Farm Janjikan Rp 3 Juta Cuma-Cuma, Beneran Membayar atau Scam? Ini Buktinya!
  • Apakah UIPinjam Pinjol Penipu? Cek Reviewnya Dulu Disini
  • Pengajuan Samir Sering Ditolak? Ternyata Ini Penyebab Tersembunyi dan Trik Supaya Langsung ACC
  • Lagi Viral! Ini Cara WD Fortes Cue ke DANA, Benaran Membayar atau Cuma Angin Lalu?
  • Bingung Pilih Paket? Inilah Perbedaan Telkomsel Data dan Telkomsel Data Flash yang Wajib Kalian Tahu!
  • Ini Alasan Pohon adalah Mahluk Hidup Terbesar di Dunia
  • Sempat Panas! Kronologi Perseteruan Cak Ji vs Madas di Surabaya, Gini Endingnya
  • Gila! Norwegia Bikin Terowongan Melayang di Bawah Laut
  • Cuma Terpisah 20 Mil, Kenapa Hewan di Bali dan Lombok Beda Total? Ternyata Ini Alasannya
  • Heboh Video Umari Viral 7 Menit 11 Detik dari Pakistan, Isinya Beneran Ada atau Cuma Jebakan Link? Cek Faktanya!
  • Tertipu Online atau HP Hilang? Ini Cara Melacak Nomor HP yang Nggak Tipu-Tipu!
  • Tailwind’s Revenue Down 80%: Is AI Killing Open Source?
  • Building Open Cloud with Apache CloudStack
  • TOP 1% AI Coding: 5 Practical Techniques to Code Like a Pro
  • Why Your Self-Hosted n8n Instance Might Be a Ticking Time Bomb
  • CES 2026: Real Botics Wants to Be Your Best Friend, but at $95k, Are They Worth the Hype?
  • Begini Cara Menggabungkan LLM, RAG, dan AI Agent untuk Membuat Sistem Cerdas
  • Cara Buat Sistem Moderasi Konten Cerdas dengan GPT-OSS-Safeguard
  • Inilah Cara Membuat Aplikasi Web Full-Stack Tanpa Coding dengan Manus 1.5
  • Inilah Cara Melatih AI Agent Agar Bisa Belajar Sendiri Menggunakan Microsoft Agent Lightning
  • Tutorial Optimasi LangGraph dengan Node-Level Caching untuk Performa Lebih Cepat
  • Apa itu Grubhub Crypto Scam? Ini Pengertian dan Kronologi Penipuan yang Catut Nama Grubhub
  • Apa Itu CVE-2025-59374? Mengenal Celah Keamanan ASUS Live Update yang Viral Lagi
  • Apa itu RansomHouse Mario? Ini Pengertian dan Mengenal Versi Baru ‘Mario’ yang Makin Bahaya
  • Inilah Risiko Fatal yang Mengintai Kreator OnlyFans, Dari Doxxing sampai Penipuan!
  • Apa itu Kerentanan FortiCloud SSO? Ini Pengertian dan Bahayanya
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

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