Kako prenijeti NVIDIA GPU na Proxmox VE 8 kontejnere za CUDA/AI ubrzanje i transkodiranje medija

Kako Prenijeti Nvidia Gpu Na Proxmox Ve 8 Kontejnere Za Cuda Ai Ubrzanje I Transkodiranje Medija



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 + x nakon čega slijedi 'Y' i da biste spremili datoteku 'nvidia.conf':



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 + x nakon čega slijedi 'Y' i za spremanje datoteke:

# kreirajte potrebne datoteke NVIDIA uređaja u /dev/*

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 : * rwm

lxc.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 + x nakon čega slijedi 'Y' i za spremanje konfiguracijske datoteke LXC spremnika.

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.run

Da 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 . NVIDIA GPU upravljački programi trebaju biti instalirani na LXC spremniku.

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 --verzija

Kao š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 ~ / kodirati

Dođite do direktorija projekta “~/code” na sljedeći način:

$ CD `/ kodirati

Izradite novu datoteku poput 'hello.cu' u direktoriju '~/code' proxmox VE 8 spremnika i otvorite je pomoću uređivača nano teksta:

$ nano pozdrav.cu

Unesite 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 + x nakon čega slijedi 'Y' i da biste spremili datoteku 'hello.cu'.

Za kompajliranje CUDA programa “hello.cu” na Proxmox VE 8 spremniku pokrenite sljedeće naredbe:

$ nvcc pozdrav.cu -O zdravo

Sada možete pokrenuti 'hello' CUDA program na Proxmox VE 8 spremniku na sljedeći način:

$ . / zdravo

Ako 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.

Reference: