Menambahkan Dukungan GPU NVIDIA ke Docker Model Runner

Aktifkan percepatan GPU untuk Docker Model Runner dengan dukungan NVIDIA CUDA

Docker Model Runner adalah alat resmi Docker untuk menjalankan model AI secara lokal, tetapi mengaktifkan percepatan GPU NVidia di Docker Model Runner memerlukan konfigurasi khusus.

Berbeda dengan perintah docker run standar, docker model run tidak mendukung flag --gpus atau -e, sehingga dukungan GPU harus dikonfigurasi pada tingkat daemon Docker dan saat instalasi runner.

Jika Anda mencari solusi hosting LLM alternatif dengan konfigurasi GPU yang lebih mudah, pertimbangkan Ollama, yang memiliki dukungan GPU bawaan dan pengaturan yang lebih sederhana. Namun, Docker Model Runner menawarkan integrasi yang lebih baik dengan ekosistem Docker dan distribusi artefak OCI.

Docker Model Runner dengan dukungan NVIDIA GPU Gambar yang menarik ini dihasilkan oleh AI model Flux 1 dev.

Prasyarat

Sebelum mengonfigurasi dukungan GPU, pastikan Anda memiliki:

Verifikasi bahwa GPU Anda dapat diakses:

nvidia-smi

Uji akses GPU Docker:

docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi

Untuk lebih banyak perintah Docker dan opsi konfigurasi, lihat Docker Cheatsheet.

Langkah 1: Konfigurasi Daemon Docker untuk Runtime NVIDIA

Docker Model Runner memerlukan runtime NVIDIA sebagai runtime default dalam konfigurasi daemon Docker.

Cari Jalur Runtime Container NVIDIA

Pertama, temukan di mana nvidia-container-runtime terinstal:

which nvidia-container-runtime

Biasanya menghasilkan /usr/bin/nvidia-container-runtime. Catat jalur ini untuk langkah berikutnya.

Konfigurasi Daemon Docker

Buat atau perbarui /etc/docker/daemon.json untuk mengatur NVIDIA sebagai runtime default:

sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
  "default-runtime": "nvidia",
  "runtimes": {
    "nvidia": {
      "path": "/usr/bin/nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}
EOF

Penting: Jika which nvidia-container-runtime mengembalikan jalur yang berbeda, perbarui nilai "path" dalam konfigurasi JSON sesuai.

Restart Layanan Docker

Terapkan konfigurasi dengan merestart Docker:

sudo systemctl restart docker

Verifikasi Konfigurasi

Konfirmasi bahwa runtime NVIDIA telah dikonfigurasi:

docker info | grep -i runtime

Anda harus melihat Default Runtime: nvidia dalam output.

Langkah 2: Instal Docker Model Runner dengan Dukungan GPU

Docker Model Runner harus diinstal atau diinstal ulang dengan dukungan GPU yang eksplisit. Kontainer runner itu sendiri harus berupa versi CUDA-enabled.

Berhenti Runner Saat Ini (jika berjalan)

Jika Docker Model Runner sudah terinstal, berhentikan terlebih dahulu:

docker model stop-runner

Instal/Ulang dengan Dukungan CUDA

Instal atau instal ulang Docker Model Runner dengan dukungan GPU CUDA:

docker model reinstall-runner --gpu cuda

Perintah ini:

  • Menarik versi CUDA-enabled (docker/model-runner:latest-cuda) alih-alih versi hanya CPU
  • Mengkonfigurasi kontainer runner untuk menggunakan runtime NVIDIA
  • Mengaktifkan percepatan GPU untuk semua model

Catatan: Jika Anda sudah menginstal Docker Model Runner tanpa dukungan GPU, Anda harus menginstal ulang dengan flag --gpu cuda. Hanya mengkonfigurasi daemon Docker tidak cukup — kontainer runner itu sendiri harus berupa versi CUDA-enabled.

Backend GPU yang Tersedia

Docker Model Runner mendukung beberapa backend GPU:

  • cuda - NVIDIA CUDA (paling umum untuk GPU NVIDIA)
  • rocm - AMD ROCm (untuk GPU AMD)
  • musa - Moore Threads MUSA
  • cann - Huawei CANN
  • auto - Deteksi otomatis (default, mungkin tidak bekerja dengan benar)
  • none - Hanya CPU

Untuk GPU NVIDIA, selalu gunakan --gpu cuda secara eksplisit.

Langkah 3: Verifikasi Akses GPU

Setelah instalasi, verifikasi bahwa Docker Model Runner dapat mengakses GPU Anda.

Periksa Akses GPU dalam Kontainer Runner

Uji akses GPU dari dalam kontainer Docker Model Runner:

docker exec docker-model-runner nvidia-smi

Ini harus menampilkan informasi GPU Anda, mengonfirmasi bahwa kontainer memiliki akses GPU.

Periksa Status Runner

Verifikasi bahwa Docker Model Runner sedang berjalan:

docker model status

Anda harus melihat runner aktif dengan dukungan llama.cpp.

Langkah 4: Uji Model dengan GPU

Jalankan model dan verifikasi bahwa model menggunakan GPU.

Jalankan Model

Mulai inferensi model:

docker model run ai/qwen3:14B-Q6_K "who are you?"

Verifikasi Penggunaan GPU dalam Log

Periksa log Docker Model Runner untuk konfirmasi GPU:

docker model logs | grep -i cuda

Anda harus melihat pesan yang menunjukkan penggunaan GPU:

  • using device CUDA0 (NVIDIA GeForce RTX 4080) - Perangkat GPU terdeteksi
  • offloaded 41/41 layers to GPU - Lapisan model dimuat ke GPU
  • CUDA0 model buffer size = 10946.13 MiB - Alokasi memori GPU
  • CUDA0 KV buffer size = 640.00 MiB - Cache key-value di GPU
  • CUDA0 compute buffer size = 306.75 MiB - Buffer komputasi di GPU

Pantau Penggunaan GPU

Dalam terminal lain, pantau penggunaan GPU secara real-time:

nvidia-smi -l 1

Anda harus melihat peningkatan penggunaan memori dan utilitas GPU saat model berjalan.

Untuk opsi pemantauan GPU yang lebih lanjut dan alat-alatnya, lihat panduan kami tentang Aplikasi pemantauan GPU di Linux / Ubuntu.

Penyelesaian Masalah

Model Masih Menggunakan CPU

Jika model masih berjalan di CPU:

  1. Verifikasi konfigurasi daemon Docker:

    docker info | grep -i runtime
    

    Harus menampilkan Default Runtime: nvidia

  2. Periksa runtime kontainer runner:

    docker inspect docker-model-runner | grep -A 2 '"Runtime"'
    

    Harus menampilkan "Runtime": "nvidia"

  3. Instal ulang runner dengan dukungan GPU:

    docker model reinstall-runner --gpu cuda
    
  4. Periksa log untuk kesalahan:

    docker model logs | tail -50
    

GPU Tidak Terdeteksi

Jika GPU tidak terdeteksi:

  1. Verifikasi NVIDIA Container Toolkit terinstal:

    dpkg -l | grep nvidia-container-toolkit
    
  2. Uji akses GPU dengan Docker standar:

    docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
    

    Untuk menyelesaikan masalah Docker, lihat Docker Cheatsheet.

  3. Periksa driver NVIDIA:

    nvidia-smi
    

Masalah Kinerja

Jika kinerja GPU buruk:

  1. Periksa utilitas GPU:

    nvidia-smi
    

    Cari persentase utilitas GPU yang tinggi

  2. Verifikasi lapisan model berada di GPU:

    docker model logs | grep "offloaded.*layers to GPU"
    

    Semua lapisan harus dialihkan ke GPU

  3. Periksa masalah memori:

    nvidia-smi
    

    Pastikan memori GPU tidak habis

Praktik Terbaik

  1. Selalu tentukan backend GPU secara eksplisit: Gunakan --gpu cuda alih-alih --gpu auto untuk GPU NVIDIA untuk memastikan konfigurasi yang benar.

  2. Verifikasi konfigurasi setelah perubahan: Selalu periksa docker info | grep -i runtime setelah mengubah pengaturan daemon Docker.

  3. Pantau penggunaan GPU: Gunakan nvidia-smi untuk memantau penggunaan memori dan utilitas GPU selama inferensi model. Untuk alat pemantauan yang lebih lanjut, lihat panduan kami tentang Aplikasi pemantauan GPU di Linux / Ubuntu.

  4. Periksa log secara berkala: Tinjau docker model logs untuk memastikan model menggunakan percepatan GPU.

  5. Gunakan ukuran model yang sesuai: Pastikan GPU Anda memiliki memori yang cukup untuk model. Gunakan model yang dikuantisasi (Q4, Q5, Q6, Q8) untuk efisiensi memori GPU yang lebih baik. Untuk bantuan memilih GPU yang tepat untuk beban kerja AI Anda, lihat panduan kami tentang Membandingkan spesifikasi GPU NVidia yang cocok untuk AI.

Tautan yang Berguna