Ako imate NVIDIA GPU instaliran na vašem Proxmox VE poslužitelju, možete ga proslijediti Proxmox VE LXC spremniku i koristiti u spremniku za CUDA/AI ubrzanje (tj. TensorFlow, PyTorch). Također možete koristiti NVIDIA GPU za transkodiranje medija, video streaming itd. u Proxmox VE LXC spremniku s instaliranim Plex Media Serverom ili NextCloudom (na primjer).
U ovom članku pokazat ćemo vam kako prenijeti NVIDIA GPU na Proxmox VE 8 LXC spremnik tako da ga možete koristiti za CUDA/AI ubrzanje, transkodiranje medija ili druge zadatke koji zahtijevaju NVIDIA GPU.
Tema sadržaja:
Instaliranje NVIDIA GPU upravljačkih programa na Proxmox VE 8
Za prijenos NVIDIA GPU-a na Proxmox VE LXC spremnik, morate imati NVIDIA GPU upravljačke programe instalirane na vašem Proxmox VE 8 poslužitelju. Ako trebate bilo kakvu pomoć pri instaliranju najnovije verzije službenih NVIDIA GPU drajvera na vaš Proxmox VE 8 poslužitelj, pročitajte ovaj članak .
Provjera jesu li NVIDIA GPU kernel moduli automatski učitani u Proxmox VE 8
Nakon što imate NVIDIA GPU upravljačke programe instalirane na vašem Proxmox VE 8 poslužitelju, morate osigurati da se moduli NVIDIA GPU kernela automatski učitavaju prilikom podizanja sustava.
Najprije izradite novu datoteku poput 'nvidia.conf' u direktoriju '/etc/modules-load.d/' i otvorite je pomoću nano uređivača teksta.
$ nano / itd / moduli-opterećenje.d / nvidia.conf
Dodajte sljedeće retke i pritisnite
nvidia
nvidia_uvm
Da bi promjene stupile na snagu, ažurirajte datoteku “initramfs” sljedećom naredbom:
$ ažuriranje-initramfs -u
Iz nekog razloga, Proxmox VE 8 ne stvara potrebne datoteke NVIDIA GPU uređaja u direktoriju '/dev/'. Bez tih datoteka uređaja, Promox VE 8 LXC spremnici neće moći koristiti NVIDIA GPU.
Kako biste bili sigurni da Proxmox VE 8 stvara datoteke NVIDIA GPU uređaja u direktoriju '/dev/' prilikom pokretanja, izradite datoteku udev pravila '70-nvidia.rules' u '/etc/udev/rules.d/' direktorij i otvorite ga s nano uređivačem teksta na sljedeći način:
$ nano / itd / udev / pravila.d / 70 -nvidia.pravila
Upišite sljedeće retke u datoteku “70-nvidia.rules” i pritisnite
ZRNO == 'nvidia' , TRČI+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''
ZRNO == 'nvidia_uvm' , TRČI+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''
Da bi promjene stupile na snagu, ponovno pokrenite svoj Proxmox VE 8 poslužitelj na sljedeći način:
$ ponovno podizanje sustava
Nakon što se vaš Proxmox VE 8 poslužitelj podigne, moduli NVIDIA kernela trebali bi se automatski učitati kao što možete vidjeti na sljedećoj snimci zaslona:
$ lsmod | zahvat nvidia
Potrebne datoteke NVIDIA uređaja također bi trebale biti popunjene u direktoriju '/dev' vašeg Proxmox VE 8 poslužitelja. Zabilježite CGroup ID datoteke NVIDIA uređaja. Morate dopustiti te CGroup ID-ove na LXC spremniku gdje želite proći kroz NVIDIA GPU-ove s vašeg Proxmox VE 8 poslužitelja. U našem slučaju, CGroup ID-ovi su 195, 237 i 226.
$ ls -lh / dev / nvidia *$ ls -lh / dev / dri
Stvaranje Proxmox VE 8 LXC spremnika za NVIDIA GPU Passthrough
Koristili smo spremnik Ubuntu 22.04 LTS Proxmox VE 8 LXC u ovom članku za demonstraciju budući da je biblioteke NVIDIA CUDA i NVIDIA cuDNN lako instalirati na Ubuntu 22.04 LTS iz repozitorija paketa Ubuntu i lakše je testirati radi li ubrzanje NVIDIA CUDA . Ako želite, možete koristiti i druge distribucije Linuxa. U tom će se slučaju instalacijske naredbe NVIDIA CUDA i NVIDIA cuDNN razlikovati. Obavezno slijedite upute za instalaciju NVIDIA CUDA i NVIDIA cuDNN za željenu distribuciju Linuxa.
Ako trebate bilo kakvu pomoć u izradi Proxmox VE 8 LXC spremnika, pročitajte ovaj članak .
Konfiguriranje LXC spremnika za NVIDIA GPU Passthrough na Promox VE 8
Da biste konfigurirali LXC spremnik (recimo, spremnik 102) za NVIDIA GPU prolaz, otvorite konfiguracijsku datoteku LXC spremnika iz Proxmox VE ljuske s uređivačem nano teksta na sljedeći način:
$ nano / itd / pve / lxc / 102 .konf
Upišite sljedeće retke na kraju konfiguracijske datoteke LXC spremnika:
lxc.cgroup.devices.allow: c 195 : * rwmlxc.cgroup.devices.allow: c 237 : * rwm
lxc.cgroup.devices.allow: c 226 : * rwm
lxc.mount.entry: / dev / nvidia0 dev / nvidia0 ništa vezati , izborno, stvoriti = datoteka
lxc.mount.entry: / dev / nvidiactl dev / nvidiactl ništa vezati , izborno, stvoriti = datoteka
lxc.mount.entry: / dev / nvidia-modeset dev / nvidia-modeset ništa vezati , izborno, stvoriti = datoteka
lxc.mount.entry: / dev / nvidia-uvm dev / nvidia-uvm ništa vezati , izborno, stvoriti = datoteka
lxc.mount.entry: / dev / nvidia-uvm-alati dev / nvidia-uvm-alati nijedan vezati , izborno, stvoriti = datoteka
lxc.mount.entry: / dev / dri dev / dri ništa vezati , izborno, stvoriti = vas
Obavezno zamijenite ID-ove CGroup u recima 'lxc.cgroup.devices.allow' konfiguracijske datoteke LXC spremnika. Kada završite, pritisnite
Sada pokrenite LXC spremnik s nadzorne ploče Proxmox VE 8.
Ako je NVIDIA GPU prolaz uspješan, LXC spremnik bi se trebao pokrenuti bez ikakve pogreške i trebali biste vidjeti datoteke NVIDIA uređaja u direktoriju '/dev' spremnika.
$ ls -lh / dev / nvidia *$ ls -lh / dev / dri
Instaliranje NVIDIA GPU upravljačkih programa na Proxmox VE 8 LXC kontejner
Za demonstraciju koristimo spremnik Ubuntu 22.04 LTS LXC na našem poslužitelju Proxmox VE 8. Ako koristite drugu distribuciju Linuxa na LXC spremniku, vaše naredbe malo će se razlikovati od naših. Stoga svakako prilagodite naredbe ovisno o distribuciji Linuxa koju koristite na spremniku.
Verziju NVIDIA GPU upravljačkih programa koju ste instalirali na svoj Proxmox VE 8 poslužitelj možete pronaći pomoću naredbe 'nvidia-smi'. Kao što vidite, imamo NVIDIA GPU upravljačke programe verzije 535.146.02 instalirane na našem Proxmox VE 8 poslužitelju. Dakle, moramo instalirati i NVIDIA GPU upravljačke programe verzije 535.146.02 na naš LXC spremnik.
$ nvidia-smi
Prvo instalirajte CURL na LXC spremnik na sljedeći način:
$ prikladno ažuriranje && prikladan instalirati kovrča -i
CURL treba instalirati na LXC kontejner.
Da biste instalirali NVIDIA GPU upravljačke programe verzije 535.146.02 (recimo), izvezite varijablu okruženja NVIDIA_VERSION i pokrenite naredbu CURL (na spremniku) za preuzimanje potrebne verzije datoteke za instalaciju NVIDIA GPU upravljačkih programa.
$ izvoz NVIDIA_VERSION = '535.146.02'$ kovrča -O 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} .trčanje'
Ispravnu verziju datoteke za instaliranje NVIDIA GPU upravljačkih programa treba preuzeti na LXC spremnik kao što možete vidjeti na sljedećoj snimci zaslona:
Sada dodajte izvršnu dozvolu instalacijskoj datoteci NVIDIA GPU upravljačkih programa na spremniku na sljedeći način:
$ chmod +x NVIDIA-Linux-x86_64-535.146.02.runDa biste instalirali NVIDIA GPU upravljačke programe na spremnik, pokrenite datoteku za instalaciju NVIDIA GPU upravljačkih programa s '–no-kernel-module' opcija kako slijedi:
$ . / NVIDIA-Linux-x86_64-535.146.02.run --no-kernel-module Kada vidite ovu opciju, odaberite “OK” i pritisnite
Odaberite “OK” i pritisnite
Odaberite “Da” i pritisnite
Odaberite “OK” i pritisnite
NVIDIA GPU drajveri se instaliraju na LXC spremnik. Za dovršetak je potrebno nekoliko sekundi.
Kada vidite ovaj upit, odaberite 'Da' i pritisnite
Odaberite “OK” i pritisnite
Da biste potvrdili jesu li NVIDIA GPU upravljački programi instalirani i rade, pokrenite naredbu 'nvidia-smi' na LXC spremniku. Kao što vidite, NVIDIA GPU drajver verzija 535.146.02 (ista verzija koja je instalirana na poslužitelju Proxmox VE 8) instalirana je na LXC spremniku i ispravno je detektirao naš NVIDIA RTX 4070 GPU.
$ nvidia-smi
Instaliranje NVIDIA CUDA i cuDNN na Proxmox VE 8 LXC kontejner
Za demonstraciju koristimo spremnik Ubuntu 22.04 LTS LXC na našem poslužitelju Proxmox VE 8. Ako koristite drugu distribuciju Linuxa na LXC spremniku, vaše naredbe malo će se razlikovati od naših. Stoga svakako prilagodite naredbe ovisno o distribuciji Linuxa koju koristite na spremniku.
Da biste instalirali NVIDIA CUDA i cuDNN na spremnik Ubuntu 22.04 LTS Proxmox VE 8, pokrenite sljedeću naredbu na spremniku:
$ prikladan instalirati build-essential nvidia-cuda-toolkit nvidia-cudnn Za potvrdu instalacije pritisnite “Y” i zatim pritisnite
Potrebni paketi se preuzimaju i instaliraju. Potrebno je neko vrijeme da se završi.
Kada vidite ovaj prozor, odaberite “OK” i pritisnite
Odaberite “Slažem se” i pritisnite
Instalacija bi se trebala nastaviti.
Instalacijski program preuzima arhivu NVIDIA cuDNN biblioteke s NVIDIA-e. To je velika datoteka, pa je potrebno puno vremena da se dovrši.
Nakon preuzimanja arhive NVIDIA cuDNN knjižnice, instalacija bi se trebala nastaviti kao i obično.
U ovom trenutku, NVIDIA CUDA i cuDNN bi trebali biti instalirani na spremnik Ubuntu 22.04 LTS Proxmox VE 8 LXC.
Provjera radi li NVIDIA CUDA ubrzanje na Proxmox VE 8 LXC spremniku
Da biste provjerili je li NVIDIA CUDA ispravno instalirana, provjerite je li naredba 'nvcc' dostupna na spremniku Proxmox VE 8 na sljedeći način:
$ nvcc --verzijaKao što vidite, imamo NVIDIA CUDA 11.5 instaliranu na našem Proxmox VE 8 spremniku.
Sada napišimo, prevedimo i pokrenimo jednostavan CUDA C program i vidimo radi li sve kako se očekuje.
Najprije izradite direktorij projekta '~/code' na spremniku Proxmox VE 8 kako biste organizirali datoteke.
$ mkdir ~ / kodiratiDođite do direktorija projekta “~/code” na sljedeći način:
$ CD `/ kodiratiIzradite novu datoteku poput 'hello.cu' u direktoriju '~/code' proxmox VE 8 spremnika i otvorite je pomoću uređivača nano teksta:
$ nano pozdrav.cuUnesite sljedeće retke koda u datoteku 'hello.cu':
#include__global__ void reciHello ( ) {
printf ( 'Zdravo svijete iz GPU-a! \n ' ) ;
}
int glavni ( ) {
printf ( 'Pozdrav svijete iz CPU-a! \n ' ) ;
reci zdravo << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;
povratak 0 ;
}
Kada završite, pritisnite
Za kompajliranje CUDA programa “hello.cu” na Proxmox VE 8 spremniku pokrenite sljedeće naredbe:
$ nvcc pozdrav.cu -O zdravoSada možete pokrenuti 'hello' CUDA program na Proxmox VE 8 spremniku na sljedeći način:
$ . / zdravoAko spremnik Proxmox VE 8 može koristiti NVIDIA GPU za NVIDIA CUDA ubrzanje, program će ispisati dva retka kao što je prikazano na sljedećoj snimci zaslona.
Ako NVIDIA GPU nije dostupan iz Proxmox VE 8 spremnika, program će ispisati samo prvi redak koji je 'Hello world from the CPU!', a ne drugi redak.
Zaključak
U ovom smo vam članku pokazali kako prenijeti NVIDIA GPU s Proxmox VE 8 hosta na Proxmox VE 8 LXC spremnik. Također smo vam pokazali kako instalirati istu verziju NVIDIA GPU drajvera na Proxmox VE 8 kontejner kao Proxmox VE host. Konačno, pokazali smo vam kako instalirati NVIDIA CUDA i NVIDIA cuDNN na Ubuntu 22.04 LTS Proxmox VE 8 spremnik te prevesti i pokrenuti jednostavan NVIDIA CUDA program na Proxmox VE 8 spremniku.