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
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
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 : * rwmlxc.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
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.runNVIDIA 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
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 -- versioonNagu 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 ~ / koodLiikuge projekti kataloogi '~/code' järgmiselt:
$ cd `/ koodLooge Proxmox VE 8 konteineri kataloogis „~/code” uus fail, näiteks „hello.cu”, ja avage see nanotekstiredaktoriga.
$ nano tere.cuSisestage 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
Programmi „hello.cu” CUDA kompileerimiseks Proxmox VE 8 konteineris käivitage järgmised käsud.
$ nvcc hello.cu -O TereNüüd saate Proxmox VE 8 konteineris käivitada CUDA programmi „tere” järgmiselt.
$ . / TereKui 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.