Proxmox VE sunucunuzda kurulu bir NVIDIA GPU'nuz varsa bunu bir Proxmox VE LXC konteynerine aktarabilir ve CUDA/AI hızlandırması için konteynerde kullanabilirsiniz (ör. TensorFlow, PyTorch). NVIDIA GPU'yu, yüklü Plex Media Server veya NextCloud (örneğin) ile bir Proxmox VE LXC kapsayıcısında medya kod dönüştürme, video akışı vb. için de kullanabilirsiniz.
Bu makalede, CUDA/AI hızlandırma, medya kod dönüştürme veya NVIDIA GPU gerektiren diğer görevler için kullanabilmeniz için bir NVIDIA GPU'yu Proxmox VE 8 LXC konteynerine nasıl aktaracağınızı göstereceğiz.
İçeriğin Konusu:
NVIDIA GPU Sürücülerini Proxmox VE 8'e Yükleme
Bir NVIDIA GPU'yu Proxmox VE LXC konteynerine geçirmek için Proxmox VE 8 sunucunuzda NVIDIA GPU sürücülerinin kurulu olması gerekir. Resmi NVIDIA GPU sürücülerinin en son sürümünü Proxmox VE 8 sunucunuza yükleme konusunda yardıma ihtiyacınız olursa, bu makaleyi oku .
NVIDIA GPU Çekirdek Modüllerinin Proxmox VE 8'e Otomatik Olarak Yüklendiğinden Emin Olma
Proxmox VE 8 sunucunuza NVIDIA GPU sürücülerini yükledikten sonra, NVIDIA GPU çekirdek modüllerinin önyükleme sırasında otomatik olarak yüklendiğinden emin olmalısınız.
Öncelikle '/etc/modules-load.d/' dizininde 'nvidia.conf' gibi yeni bir dosya oluşturun ve onu nano metin düzenleyiciyle açın.
$ nano / vesaire / modül yükü.d / nvidia.conf
Aşağıdaki satırları ekleyin ve tuşuna basın
nvidia
nvidia_uvm
Değişikliklerin etkili olması için “initramfs” dosyasını aşağıdaki komutla güncelleyin:
$ güncelleme-initramfs -içinde
Bazı nedenlerden dolayı Proxmox VE 8, gerekli NVIDIA GPU cihaz dosyalarını '/dev/' dizininde oluşturmaz. Bu cihaz dosyaları olmadan Promox VE 8 LXC konteynerleri NVIDIA GPU'yu kullanamayacaktır.
Proxmox VE 8'in önyükleme sırasında '/dev/' dizininde NVIDIA GPU cihaz dosyalarını oluşturduğundan emin olmak için '/etc/udev/rules.d/' içinde '70-nvidia.rules' adlı bir udev kuralları dosyası oluşturun. dizini seçin ve nano metin düzenleyiciyle aşağıdaki gibi açın:
$ nano / vesaire / udev / kurallar.d / 70 -nvidia.rules
“70-nvidia.rules” dosyasına aşağıdaki satırları yazın ve tuşuna basın
ÇEKİRDEK == 'Nvidia' , ÇALIŞTIR+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''
ÇEKİRDEK == 'nvidia_uvm' , ÇALIŞTIR+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''
Değişikliklerin etkili olması için Proxmox VE 8 sunucunuzu aşağıdaki şekilde yeniden başlatın:
$ yeniden başlat
Proxmox VE 8 sunucunuz önyüklendiğinde, aşağıdaki ekran görüntüsünde görebileceğiniz gibi NVIDIA çekirdek modülleri otomatik olarak yüklenmelidir:
$ lsmod | kavramak nvidia
Gerekli NVIDIA cihaz dosyalarının Proxmox VE 8 sunucunuzun '/dev' dizinine de doldurulması gerekir. NVIDIA aygıt dosyalarının CGrup kimliklerini not edin. Proxmox VE 8 sunucunuzdan NVIDIA GPU'ları geçirmek istediğiniz LXC kapsayıcısında bu CGroup kimliklerine izin vermelisiniz. Bizim durumumuzda CGrup ID'leri 195, 237 ve 226'dır.
$ ls -h / geliştirici / nvidia *$ ls -h / geliştirici / kuru
NVIDIA GPU Geçişi için Proxmox VE 8 LXC Kapsayıcı Oluşturma
NVIDIA CUDA ve NVIDIA cuDNN kitaplıklarının Ubuntu paket depolarından Ubuntu 22.04 LTS'ye kurulumu kolay olduğundan ve NVIDIA CUDA hızlandırmasının çalışıp çalışmadığını test etmek daha kolay olduğundan, bu makalede gösteri için bir Ubuntu 22.04 LTS Proxmox VE 8 LXC kapsayıcısı kullandık. . İsterseniz diğer Linux dağıtımlarını da kullanabilirsiniz. Bu durumda NVIDIA CUDA ve NVIDIA cuDNN kurulum komutları farklılık gösterecektir. İstediğiniz Linux dağıtımı için NVIDIA CUDA ve NVIDIA cuDNN kurulum talimatlarını takip ettiğinizden emin olun.
Proxmox VE 8 LXC konteyneri oluşturma konusunda yardıma ihtiyacınız olursa bu makaleyi oku .
Promox VE 8'de NVIDIA GPU Geçişi için LXC Kapsayıcısını Yapılandırma
NVIDIA GPU geçişi için bir LXC kapsayıcısını (örneğin kapsayıcı 102) yapılandırmak için, Proxmox VE kabuğundan LXC kapsayıcı yapılandırma dosyasını nano metin düzenleyiciyle aşağıdaki gibi açın:
$ nano / vesaire / pve / lxc / 102 .conf
LXC konteyner yapılandırma dosyasının sonuna aşağıdaki satırları yazın:
lxc.cgroup.devices.allow: c 195 : * rwmlxc.cgroup.devices.allow: c 237 : * rwm
lxc.cgroup.devices.allow: c 226 : * rwm
lxc.mount.entry: / geliştirici / nvidia0 dev / nvidia0 yok bağlamak ,isteğe bağlı, yaratmak = dosya
lxc.mount.entry: / geliştirici / nvidiactl dev / nvidiactl yok bağlamak ,isteğe bağlı, yaratmak = dosya
lxc.mount.entry: / geliştirici / nvidia-modeset dev / nvidia-modeset yok bağlamak ,isteğe bağlı, yaratmak = dosya
lxc.mount.entry: / geliştirici / nvidia-uvm dev / nvidia-uvm yok bağlamak ,isteğe bağlı, yaratmak = dosya
lxc.mount.entry: / geliştirici / nvidia-uvm-tools geliştirici / nvidia-uvm-tools hiçbiri bağlamak ,isteğe bağlı, yaratmak = dosya
lxc.mount.entry: / geliştirici / dri dev / dri hiçbiri bağlamak ,isteğe bağlı, yaratmak = Sen
LXC kapsayıcı yapılandırma dosyasının 'lxc.cgroup.devices.allow' satırlarındaki CGrup kimliklerini değiştirdiğinizden emin olun. İşiniz bittiğinde tuşuna basın
Şimdi LXC konteynerini Proxmox VE 8 kontrol panelinden başlatın.
NVIDIA GPU geçişi başarılı olursa LXC kapsayıcısı hatasız başlamalı ve kapsayıcının '/dev' dizininde NVIDIA cihaz dosyalarını görmelisiniz.
$ ls -h / geliştirici / nvidia *$ ls -h / geliştirici / kuru
NVIDIA GPU Sürücülerini Proxmox VE 8 LXC Kabına Yükleme
Gösterim amacıyla Proxmox VE 8 sunucumuzda Ubuntu 22.04 LTS LXC konteyneri kullanıyoruz. LXC kapsayıcısında başka bir Linux dağıtımı kullanıyorsanız komutlarınız bizimkinden biraz farklı olacaktır. Bu nedenle, kapta kullandığınız Linux dağıtımına bağlı olarak komutları ayarladığınızdan emin olun.
Proxmox VE 8 sunucunuza yüklediğiniz NVIDIA GPU sürücülerinin sürümünü “nvidia-smi” komutuyla bulabilirsiniz. Gördüğünüz gibi Proxmox VE 8 sunucumuzda NVIDIA GPU sürücülerinin 535.146.02 sürümü yüklü. Bu nedenle, NVIDIA GPU sürücülerinin 535.146.02 sürümünü LXC konteynerimize de yüklememiz gerekiyor.
$ nvidia-smi
İlk olarak, LXC konteynerine CURL'yi aşağıdaki gibi kurun:
$ uygun güncelleme && uygun düzenlemek kıvırmak -Ve
CURL, LXC konteynerine kurulmalıdır.
NVIDIA GPU sürücülerinin 535.146.02 sürümünü (diyelim ki) yüklemek için, NVIDIA_VERSION ortam değişkenini dışa aktarın ve NVIDIA GPU sürücüleri yükleyici dosyasının gerekli sürümünü indirmek için CURL komutunu (kapsayıcıda) çalıştırın.
$ ihracat NVIDIA_VERSION = '535.146.02'$ kıvırmak -Ö 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} .koşmak'
Aşağıdaki ekran görüntüsünde görebileceğiniz gibi, NVIDIA GPU sürücüleri yükleyici dosyasının doğru sürümü LXC kapsayıcısına indirilmelidir:
Şimdi, kapsayıcıdaki NVIDIA GPU sürücüleri yükleyici dosyasına aşağıdaki gibi yürütülebilir bir izin ekleyin:
$ mod +x NVIDIA-Linux-x86_64-535.146.02.runNVIDIA GPU sürücülerini konteynere yüklemek için, NVIDIA GPU sürücüleri yükleyici dosyasını “–no-kernel-module” ile çalıştırın seçeneği şu şekilde:
$ . / NVIDIA-Linux-x86_64-535.146.02.run --çekirdek modülü yok Bu seçeneği gördüğünüzde “Tamam”ı seçin ve tuşuna basın.
“Tamam”ı seçin ve tuşuna basın
“Evet”i seçin ve tuşuna basın
“Tamam”ı seçin ve tuşuna basın
NVIDIA GPU sürücüleri LXC konteynerine kuruluyor. Tamamlanması birkaç saniye sürer.
Bu istemi gördüğünüzde “Evet”i seçin ve tuşuna basın.
“Tamam”ı seçin ve tuşuna basın
NVIDIA GPU sürücülerinin yüklü ve çalışır durumda olup olmadığını doğrulamak için LXC kapsayıcısında 'nvidia-smi' komutunu çalıştırın. Gördüğünüz gibi, NVIDIA GPU sürücüsü sürümü 535.146.02 (Proxmox VE 8 sunucusunda yüklü olanla aynı sürüm) LXC kapsayıcısına kuruludur ve NVIDIA RTX 4070 GPU'muzu doğru şekilde algılamıştır.
$ nvidia-smi
NVIDIA CUDA ve cuDNN'yi Proxmox VE 8 LXC Kabına Yükleme
Gösterim amacıyla Proxmox VE 8 sunucumuzda Ubuntu 22.04 LTS LXC konteyneri kullanıyoruz. LXC kapsayıcısında başka bir Linux dağıtımı kullanıyorsanız komutlarınız bizimkinden biraz farklı olacaktır. Bu nedenle, kapta kullandığınız Linux dağıtımına bağlı olarak komutları ayarladığınızdan emin olun.
Ubuntu 22.04 LTS Proxmox VE 8 konteynerine NVIDIA CUDA ve cuDNN yüklemek için konteynerde aşağıdaki komutu çalıştırın:
$ uygun düzenlemek build-essential nvidia-cuda-araç seti nvidia-cudnn Kurulumu onaylamak için “Y” tuşuna basın ve ardından tuşuna basın.
Gerekli paketler indirilip kuruluyor. Tamamlanması biraz zaman alır.
Bu pencereyi gördüğünüzde “Tamam”ı seçin ve tuşuna basın.
“Kabul Ediyorum”u seçin ve tuşuna basın
Kurulum devam etmelidir.
Yükleyici, NVIDIA cuDNN kütüphane arşivini NVIDIA'dan indiriyor. Büyük bir dosya olduğundan tamamlanması uzun zaman alıyor.
NVIDIA cuDNN kütüphane arşivi indirildikten sonra kurulum her zamanki gibi devam etmelidir.
Bu noktada Ubuntu 22.04 LTS Proxmox VE 8 LXC konteynerine NVIDIA CUDA ve cuDNN kurulmalıdır.
NVIDIA CUDA Hızlandırmasının Proxmox VE 8 LXC Kabında Çalışıp Çalışmadığını Kontrol Etme
NVIDIA CUDA'nın doğru şekilde kurulup kurulmadığını doğrulamak için Proxmox VE 8 kapsayıcısında 'nvcc' komutunun mevcut olup olmadığını aşağıdaki şekilde kontrol edin:
$ nvcc --versiyonGördüğünüz gibi Proxmox VE 8 konteynerimizde NVIDIA CUDA 11.5 kurulu.
Şimdi basit bir CUDA C programı yazalım, derleyelim, çalıştıralım ve her şeyin beklendiği gibi çalışıp çalışmadığını görelim.
Öncelikle dosyaları düzenli tutmak için Proxmox VE 8 kapsayıcısında bir '~/code' proje dizini oluşturun.
$ mkdir ~ / kod“~/code” proje dizinine aşağıdaki gibi gidin:
$ CD `/ kodProxmox VE 8 kapsayıcısının '~/code' dizininde 'hello.cu' gibi yeni bir dosya oluşturun ve bunu nano metin düzenleyiciyle açın:
$ nano merhaba.cu'Hello.cu' dosyasına aşağıdaki kod satırlarını yazın:
#include__global__ geçersiz sayMerhaba ( ) {
baskı ( 'GPU'dan merhaba dünya! \N ' ) ;
}
int ana ( ) {
baskı ( 'CPU'dan merhaba dünya! \N ' ) ;
Merhaba de << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;
geri dönmek 0 ;
}
İşiniz bittiğinde tuşuna basın
'Hello.cu' CUDA programını Proxmox VE 8 kapsayıcısında derlemek için aşağıdaki komutları çalıştırın:
$ nvcc merhaba.cu -Ö MerhabaArtık Proxmox VE 8 kapsayıcısında 'merhaba' CUDA programını şu şekilde çalıştırabilirsiniz:
$ . / MerhabaProxmox VE 8 konteyneri NVIDIA CUDA hızlandırması için NVIDIA GPU'yu kullanabiliyorsa program aşağıdaki ekran görüntüsünde gösterildiği gibi iki satır yazdıracaktır.
NVIDIA GPU'ya Proxmox VE 8 konteynerinden erişilemiyorsa program ikinci satırı değil yalnızca 'CPU'dan merhaba dünya!' olan ilk satırı yazdıracaktır.
Çözüm
Bu makalede, bir NVIDIA GPU'yu Proxmox VE 8 ana bilgisayarından Proxmox VE 8 LXC konteynerine nasıl geçireceğinizi gösterdik. Ayrıca NVIDIA GPU sürücülerinin aynı sürümünü Proxmox VE 8 konteynerine Proxmox VE ana bilgisayarıyla nasıl kuracağınızı da gösterdik. Son olarak Ubuntu 22.04 LTS Proxmox VE 8 konteynerine NVIDIA CUDA ve NVIDIA cuDNN kurulumunun nasıl yapılacağını ve Proxmox VE 8 konteyneri üzerinde basit bir NVIDIA CUDA programının nasıl derlenip çalıştırılacağını gösterdik.