Kuidas edastada NVIDIA GPU Proxmox VE 8 konteineritesse CUDA/AI kiirendamiseks ja meedia ümberkodeerimiseks

Kuidas Edastada Nvidia Gpu Proxmox Ve 8 Konteineritesse Cuda Ai Kiirendamiseks Ja Meedia Umberkodeerimiseks



Kui teie Proxmox VE serverisse on installitud NVIDIA GPU, saate selle edastada Proxmox VE LXC konteinerisse ja kasutada seda konteineris CUDA/AI kiirendamiseks (st TensorFlow, PyTorch). NVIDIA GPU-d saate kasutada ka meediumite ümberkodeerimiseks, video voogedastuseks jne Proxmox VE LXC konteineris koos installitud Plex Media Serveri või NextCloudiga (näiteks).

Selles artiklis näitame teile, kuidas edastada NVIDIA GPU Proxmox VE 8 LXC konteinerisse, et saaksite seda kasutada CUDA/AI kiirendamiseks, meedia ümberkodeerimiseks või muudeks NVIDIA GPU-d nõudvateks toiminguteks.







Sisu teema:

NVIDIA GPU draiverite installimine seadmesse Proxmox VE 8

NVIDIA GPU edastamiseks Proxmox VE LXC konteinerisse peavad teil olema Proxmox VE 8 serverisse installitud NVIDIA GPU draiverid. Kui vajate abi ametlike NVIDIA GPU draiverite uusima versiooni installimisel oma Proxmox VE 8 serverisse, lugege seda artiklit .



Veenduge, et NVIDIA GPU tuumamoodulid laaditakse Proxmox VE 8 automaatselt

Kui olete oma Proxmox VE 8 serverisse installinud NVIDIA GPU draiverid, peate tagama, et NVIDIA GPU kerneli moodulid laaditakse alglaadimisel automaatselt.



Esmalt looge kataloogis '/etc/modules-load.d/' uus fail (nt nvidia.conf) ja avage see nanotekstiredaktoriga.





$ nano / jne / modules-load.d / nvidia.conf

Lisage järgmised read ja vajutage + X millele järgneb 'Y' ja faili „nvidia.conf” salvestamiseks toimige järgmiselt.



nvidia

nvidia_uvm

Muudatuste jõustumiseks värskendage faili 'initramfs' järgmise käsuga:

$ update-initramfs -sisse

Mingil põhjusel ei loo Proxmox VE 8 vajalikke NVIDIA GPU seadme faile kataloogis „/dev/”. Ilma nende seadmefailideta ei saa Promox VE 8 LXC konteinerid NVIDIA GPU-d kasutada.

Veendumaks, et Proxmox VE 8 loob alglaadimise ajal NVIDIA GPU-seadme failid kataloogi „/dev/”, looge kaustas „/etc/udev/rules.d/” udevi reeglite fail „70-nvidia.rules”. kataloogi ja avage see nano tekstiredaktoriga järgmiselt:

$ nano / jne / udev / reeglid.d / 70 -nvidia.rules

Sisestage faili '70-nvidia.rules' järgmised read ja vajutage + X millele järgneb 'Y' ja faili salvestamiseks:

# looge vajalikud NVIDIA seadme failid kaustas /dev/*

TUUM == 'nvidia' , RUN+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''

TUUM == 'nvidia_uvm' , RUN+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''

Muudatuste jõustumiseks taaskäivitage oma Proxmox VE 8 server järgmiselt.

$ taaskäivitage

Kui teie Proxmox VE 8 server käivitub, tuleks NVIDIA kerneli moodulid automaatselt laadida, nagu näete järgmisel ekraanipildil:

$ lsmod | haare nvidia

Nõutavad NVIDIA-seadme failid tuleks sisestada ka teie Proxmox VE 8 serveri kataloogi „/dev”. Pange tähele NVIDIA seadmefailide CGroup ID-sid. Peate lubama need CGroupi ID-d LXC konteineris, kus soovite oma Proxmox VE 8 serverist NVIDIA GPU-sid edastada. Meie puhul on CGroupi ID-d 195, 237 ja 226.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dr

Proxmox VE 8 LXC konteineri loomine NVIDIA GPU läbipääsu jaoks

Me kasutasime selles artiklis demonstreerimiseks Ubuntu 22.04 LTS Proxmox VE 8 LXC konteinerit, kuna NVIDIA CUDA ja NVIDIA cuDNN teeke on lihtne Ubuntu pakettide hoidlatest Ubuntu 22.04 LTS-ile installida ja lihtsam on testida, kas NVIDIA CUDA töötab acceleration. . Soovi korral saate kasutada ka teisi Linuxi distributsioone. Sel juhul on NVIDIA CUDA ja NVIDIA cuDNN installikäsud erinevad. Järgige soovitud Linuxi distributsiooni jaoks kindlasti NVIDIA CUDA ja NVIDIA cuDNN installijuhiseid.

Kui vajate Proxmox VE 8 LXC konteineri loomisel abi, lugege seda artiklit .

LXC konteineri konfigureerimine NVIDIA GPU läbipääsu jaoks Promox VE 8-s

LXC konteineri (oletame, et konteiner 102) konfigureerimiseks NVIDIA GPU läbipääsu jaoks avage LXC konteineri konfiguratsioonifail Proxmox VE kestast nano tekstiredaktoriga järgmiselt.

$ nano / jne / pve / lxc / 102 .conf

Sisestage LXC konteineri konfiguratsioonifaili lõppu järgmised read:

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          puudub siduda ,valikuline, luua = faili

lxc.mount.entry: / dev / nvidiactl      dev / nvidiactl     puudub siduda ,valikuline, luua = faili

lxc.mount.entry: / dev / nvidia-modeset   dev / nvidia-modeset   puudub siduda ,valikuline, luua = faili

lxc.mount.entry: / dev / nvidia-uvm       dev / nvidia-uvm       puudub siduda ,valikuline, luua = faili

lxc.mount.entry: / dev / nvidia-uvm-tools dev / nvidia-uvm-tools puudub siduda ,valikuline, luua = faili

lxc.mount.entry: / dev / dri              dev / dri              mitte ühtegi siduda ,valikuline, luua = sina

Asendage kindlasti LXC konteineri konfiguratsioonifaili ridadel „lxc.cgroup.devices.allow” olevad CGroupi ID-d. Kui olete lõpetanud, vajutage + X millele järgneb 'Y' ja LXC konteineri konfiguratsioonifaili salvestamiseks.

Nüüd käivitage LXC konteiner Proxmox VE 8 armatuurlaualt.

Kui NVIDIA GPU läbimine on edukas, peaks LXC konteiner käivituma tõrgeteta ja te peaksite nägema konteineri kataloogis „/dev” NVIDIA seadmefaile.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dr

NVIDIA GPU draiverite installimine Proxmox VE 8 LXC konteinerisse

Me kasutame oma Proxmox VE 8 serveris demonstreerimiseks Ubuntu 22.04 LTS LXC konteinerit. Kui kasutate LXC konteineris mõnda muud Linuxi distributsiooni, erinevad teie käsud meie omadest pisut. Seega kohandage käske kindlasti olenevalt Linuxi distributsioonist, mida konteineris kasutate.

Leiate NVIDIA GPU draiverite versiooni, mille installisite oma Proxmox VE 8 serverisse käsuga nvidia-smi. Nagu näete, on meie Proxmox VE 8 serverisse installitud NVIDIA GPU draiverite versioon 535.146.02. Seega peame oma LXC konteinerisse installima ka NVIDIA GPU draiverite versiooni 535.146.02.

$ nvidia-smi

Esmalt installige CURL LXC konteinerisse järgmiselt:

$ sobiv värskendus && asjakohane installida lokk -ja

CURL tuleks installida LXC konteinerisse.

NVIDIA GPU draiverite versiooni 535.146.02 installimiseks (oletame, et) eksportige keskkonnamuutuja NVIDIA_VERSION ja käivitage käsk CURL (konteineris), et laadida alla NVIDIA GPU draiverite installifaili nõutav versioon.

$ eksportida NVIDIA_VERSION = '535.146.02'

$ curl -O 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} .run'

NVIDIA GPU draiverite installifaili õige versioon tuleks LXC konteinerisse alla laadida, nagu näete järgmisel ekraanipildil:

Nüüd lisage konteineris olevale NVIDIA GPU draiverite installifailile käivitamisluba järgmiselt.

$ chmod +x NVIDIA-Linux-x86_64-535.146.02.run

NVIDIA GPU draiverite konteinerisse installimiseks käivitage NVIDIA GPU draiverite installifail koos mooduliga „–no-kernel-module” valik järgmiselt:

$ . / NVIDIA-Linux-x86_64-535.146.02.run --no-kernel-module

Kui näete seda valikut, valige 'OK' ja vajutage .

Valige 'OK' ja vajutage .

Valige 'Jah' ja vajutage .

Valige 'OK' ja vajutage .

NVIDIA GPU draiverid installitakse LXC konteinerisse. Selle täitmiseks kulub mõni sekund.

Kui näete seda viipa, valige 'Jah' ja vajutage .

Valige 'OK' ja vajutage . NVIDIA GPU draiverid tuleks installida LXC konteinerisse.

Kontrollimaks, kas NVIDIA GPU draiverid on installitud ja töötavad, käivitage LXC konteineris käsk „nvidia-smi”. Nagu näete, on LXC konteinerisse installitud NVIDIA GPU draiveri versioon 535.146.02 (sama versioon, mis installiti Proxmox VE 8 serverisse) ja see tuvastas meie NVIDIA RTX 4070 GPU õigesti.

$ nvidia-smi

NVIDIA CUDA ja cuDNN installimine Proxmox VE 8 LXC konteinerisse

Me kasutame oma Proxmox VE 8 serveris demonstreerimiseks Ubuntu 22.04 LTS LXC konteinerit. Kui kasutate LXC konteineris mõnda muud Linuxi distributsiooni, erinevad teie käsud meie omadest pisut. Seega kohandage käske kindlasti olenevalt Linuxi distributsioonist, mida konteineris kasutate.

NVIDIA CUDA ja cuDNN-i installimiseks Ubuntu 22.04 LTS Proxmox VE 8 konteinerisse käivitage konteineris järgmine käsk:

$ asjakohane installida build-essential nvidia-cuda-toolkit nvidia-cudnn

Installimise kinnitamiseks vajutage 'Y' ja seejärel vajutage .

Vajalikud paketid laaditakse alla ja installitakse. Selle valmimine võtab natuke aega.

Kui näete seda akent, valige 'OK' ja vajutage .

Valige 'Nõustun' ja vajutage .

Installimine peaks jätkuma.

Installer laadib NVIDIAst alla NVIDIA cuDNN teegi arhiivi. See on suur fail, nii et selle täitmine võtab kaua aega.

Kui NVIDIA cuDNN teegi arhiiv on alla laaditud, peaks installimine jätkuma nagu tavaliselt.

Sel hetkel tuleks Ubuntu 22.04 LTS Proxmox VE 8 LXC konteinerisse installida NVIDIA CUDA ja cuDNN.

Kontrollimine, kas NVIDIA CUDA kiirendus töötab Proxmox VE 8 LXC konteineris

Kontrollimaks, kas NVIDIA CUDA on õigesti installitud, kontrollige järgmiselt, kas käsk „nvcc” on Proxmox VE 8 konteineris saadaval.

$ nvcc -- versioon

Nagu näete, on meie Proxmox VE 8 konteinerisse installitud NVIDIA CUDA 11.5.

Nüüd kirjutame, kompileerime ja käivitame lihtsa CUDA C programmi ning vaatame, kas kõik töötab ootuspäraselt.

Esmalt looge Proxmox VE 8 konteineris projektikataloog „~/code”, et faile korrastada.

$ mkdir ~ / kood

Liikuge projekti kataloogi '~/code' järgmiselt:

$ cd `/ kood

Looge Proxmox VE 8 konteineri kataloogis „~/code” uus fail, näiteks „hello.cu”, ja avage see nanotekstiredaktoriga.

$ nano tere.cu

Sisestage faili „hello.cu” järgmised koodiread:

#include

__globaalne__ tühine ütle Tere ( ) {
printf ( 'Tere maailm GPU poolt! \n ' ) ;
}

int main ( ) {
printf ( 'Tere maailm protsessori poolt! \n ' ) ;

ütle Tere << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

tagasi 0 ;
}

Kui olete lõpetanud, vajutage + X millele järgneb 'Y' ja faili „hello.cu” salvestamiseks.

Programmi „hello.cu” CUDA kompileerimiseks Proxmox VE 8 konteineris käivitage järgmised käsud.

$ nvcc hello.cu -O Tere

Nüüd saate Proxmox VE 8 konteineris käivitada CUDA programmi „tere” järgmiselt.

$ . / Tere

Kui Proxmox VE 8 konteiner saab NVIDIA CUDA kiirendamiseks kasutada NVIDIA GPU-d, prindib programm kaks rida, nagu on näidatud järgmisel ekraanipildil.

Kui NVIDIA GPU-le ei pääse Proxmox VE 8 konteinerist juurde, prindib programm ainult esimese rea, mis on 'Tere maailm protsessorilt!', mitte teise rea.

Järeldus

Selles artiklis näitasime teile, kuidas edastada NVIDIA GPU Proxmox VE 8 hostist Proxmox VE 8 LXC konteinerisse. Samuti näitasime teile, kuidas installida Proxmox VE 8 konteinerisse sama versioon NVIDIA GPU draiveritest kui Proxmox VE hosti. Lõpuks näitasime teile, kuidas installida NVIDIA CUDA ja NVIDIA cuDNN Ubuntu 22.04 LTS Proxmox VE 8 konteinerisse ning kompileerida ja käivitada lihtne NVIDIA CUDA programm Proxmox VE 8 konteineris.

Viited: