Ja jūsu Proxmox VE serverī ir instalēts NVIDIA GPU, varat to nodot Proxmox VE LXC konteineram un izmantot konteinerā CUDA/AI paātrināšanai (t.i., TensorFlow, PyTorch). Varat arī izmantot NVIDIA GPU multivides pārkodēšanai, video straumēšanai utt. Proxmox VE LXC konteinerā ar instalētu Plex Media Server vai NextCloud (piemēram,).
Šajā rakstā mēs parādīsim, kā pārsūtīt NVIDIA GPU uz Proxmox VE 8 LXC konteineru, lai to varētu izmantot CUDA/AI paātrināšanai, multivides pārkodēšanai vai citiem uzdevumiem, kuriem nepieciešams NVIDIA GPU.
Satura tēma:
NVIDIA GPU draiveru instalēšana uz Proxmox VE 8
Lai pārsūtītu NVIDIA GPU uz Proxmox VE LXC konteineru, jūsu Proxmox VE 8 serverī ir jābūt instalētiem NVIDIA GPU draiveriem. Ja jums nepieciešama palīdzība, instalējot jaunāko oficiālo NVIDIA GPU draiveru versiju savā Proxmox VE 8 serverī, izlasi šo rakstu .
Pārliecinoties, ka NVIDIA GPU kodola moduļi tiek automātiski ielādēti Proxmox VE 8
Kad Proxmox VE 8 serverī ir instalēti NVIDIA GPU draiveri, jums ir jāpārliecinās, vai NVIDIA GPU kodola moduļi sāknēšanas laikā tiek ielādēti automātiski.
Vispirms izveidojiet jaunu failu, piemēram, “nvidia.conf” direktorijā “/etc/modules-load.d/” un atveriet to, izmantojot nano teksta redaktoru.
$ nano / utt / moduļi-slodze.d / nvidia.conf
Pievienojiet šādas rindas un nospiediet
nvidia
nvidia_uvm
Lai izmaiņas stātos spēkā, atjauniniet failu “initramfs” ar šādu komandu:
$ update-initramfs -in
Kādu iemeslu dēļ Proxmox VE 8 neizveido nepieciešamos NVIDIA GPU ierīces failus direktorijā “/dev/”. Bez šiem ierīces failiem Promox VE 8 LXC konteineri nevarēs izmantot NVIDIA GPU.
Lai nodrošinātu, ka Proxmox VE 8 sāknēšanas laikā izveido NVIDIA GPU ierīces failus direktorijā “/dev/”, izveidojiet udev noteikumu failu “70-nvidia.rules” mapē “/etc/udev/rules.d/”. direktoriju un atveriet to ar nano teksta redaktoru šādi:
$ nano / utt / udev / noteikumi.d / 70 -nvidia.rules
Ierakstiet šādas rindiņas failā “70-nvidia.rules” un nospiediet
KODOLS == 'nvidia' , RUN+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''
KODOLS == 'nvidia_uvm' , RUN+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''
Lai izmaiņas stātos spēkā, restartējiet Proxmox VE 8 serveri šādi:
$ pārstartēt
Tiklīdz jūsu Proxmox VE 8 serveris ir sāknēts, NVIDIA kodola moduļi ir jāielādē automātiski, kā redzams šajā ekrānuzņēmumā:
$ lsmod | saķere nvidia
Nepieciešamie NVIDIA ierīces faili ir jāievada arī jūsu Proxmox VE 8 servera direktorijā “/dev”. Ņemiet vērā NVIDIA ierīču failu CGroup ID. Jums ir jāatļauj tie CGroup ID LXC konteinerā, kurā vēlaties pārsūtīt NVIDIA GPU no sava Proxmox VE 8 servera. Mūsu gadījumā CGroup ID ir 195, 237 un 226.
$ ls -lh / izstrādātājs / nvidia *$ ls -lh / izstrādātājs / dri
Proxmox VE 8 LXC konteinera izveide NVIDIA GPU caurlaidei
Šajā rakstā mēs izmantojām Ubuntu 22.04 LTS Proxmox VE 8 LXC konteineru demonstrācijai, jo NVIDIA CUDA un NVIDIA cuDNN bibliotēkas ir viegli instalēt Ubuntu 22.04 LTS no Ubuntu pakotņu krātuvēm, un ir vieglāk pārbaudīt, vai NVIDIA CUDA darbojas acceleration. . Ja vēlaties, varat izmantot arī citus Linux izplatījumus. Tādā gadījumā NVIDIA CUDA un NVIDIA cuDNN instalēšanas komandas atšķirsies. Noteikti ievērojiet NVIDIA CUDA un NVIDIA cuDNN instalēšanas norādījumus vēlamajam Linux izplatīšanai.
Ja jums nepieciešama palīdzība Proxmox VE 8 LXC konteinera izveidē, izlasi šo rakstu .
LXC konteinera konfigurēšana NVIDIA GPU caurlaidei ierīcē Promox VE 8
Lai konfigurētu LXC konteineru (teiksim, 102. konteineru) NVIDIA GPU caurlaidei, atveriet LXC konteinera konfigurācijas failu no Proxmox VE apvalka, izmantojot nano teksta redaktoru, kā norādīts tālāk.
$ nano / utt / pve / lxc / 102 .conf
LXC konteinera konfigurācijas faila beigās ierakstiet šādas rindiņas:
lxc.cgroup.devices.allow: c 195 : * rwmlxc.cgroup.devices.allow: c 237 : * rwm
lxc.cgroup.devices.allow: c 226 : * rwm
lxc.mount.entry: / izstrādātājs / nvidia0 dev / nvidia0 nav saistīt ,neobligāti, izveidot = failu
lxc.mount.entry: / izstrādātājs / nvidiactl dev / nvidiactl nav saistīt ,neobligāti, izveidot = failu
lxc.mount.entry: / izstrādātājs / nvidia-modeset dev / nvidia-modeset nav saistīt ,neobligāti, izveidot = failu
lxc.mount.entry: / izstrādātājs / nvidia-uvm dev / nvidia-uvm nav saistīt ,neobligāti, izveidot = failu
lxc.mount.entry: / izstrādātājs / nvidia-uvm-tools dev / nvidia-uvm-tools nav saistīt ,neobligāti, izveidot = failu
lxc.mount.entry: / izstrādātājs / dri dev / dri neviena saistīt ,neobligāti, izveidot = tu
Noteikti nomainiet CGroup ID LXC konteinera konfigurācijas faila rindās “lxc.cgroup.devices.allow”. Kad esat pabeidzis, nospiediet
Tagad palaidiet LXC konteineru no Proxmox VE 8 informācijas paneļa.
Ja NVIDIA GPU caurlaide ir veiksmīga, LXC konteineram vajadzētu startēt bez kļūdām un konteinera direktorijā “/dev” vajadzētu redzēt NVIDIA ierīces failus.
$ ls -lh / izstrādātājs / nvidia *$ ls -lh / izstrādātājs / dri
NVIDIA GPU draiveru instalēšana Proxmox VE 8 LXC konteinerā
Demonstrēšanai mēs izmantojam Ubuntu 22.04 LTS LXC konteineru savā Proxmox VE 8 serverī. Ja LXC konteinerā izmantojat citu Linux izplatīšanu, jūsu komandas nedaudz atšķirsies no mūsu komandām. Tāpēc noteikti pielāgojiet komandas atkarībā no Linux izplatīšanas, ko izmantojat konteinerā.
Varat atrast NVIDIA GPU draiveru versiju, ko instalējāt savā Proxmox VE 8 serverī, izmantojot komandu “nvidia-smi”. Kā redzat, mūsu Proxmox VE 8 serverī ir instalēta NVIDIA GPU draivera versija 535.146.02. Tāpēc mums LXC konteinerā ir jāinstalē arī NVIDIA GPU draiveru versija 535.146.02.
$ nvidia-smi
Vispirms instalējiet CURL LXC konteinerā šādi:
$ piemērots atjauninājums && apt uzstādīt čokurošanās -un
CURL ir jāinstalē LXC konteinerā.
Lai instalētu NVIDIA GPU draiveru versiju 535.146.02 (pieņemsim, ka), eksportējiet NVIDIA_VERSION vides mainīgo un palaidiet komandu CURL (konteinerā), lai lejupielādētu nepieciešamo NVIDIA GPU draiveru instalēšanas faila versiju.
$ eksportēt NVIDIA_VERSION = '535.146.02'$ čokurošanās -O 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} .run'
Pareizā NVIDIA GPU draiveru instalēšanas faila versija ir jālejupielādē LXC konteinerā, kā redzams šajā ekrānuzņēmumā:
Tagad pievienojiet izpildāmo atļauju NVIDIA GPU draiveru instalēšanas failam konteinerā šādi:
$ chmod +x NVIDIA-Linux-x86_64-535.146.02.runLai konteinerā instalētu NVIDIA GPU draiverus, palaidiet NVIDIA GPU draiveru instalēšanas failu ar “–no-kernel-module” šāda iespēja:
$ . / NVIDIA-Linux-x86_64-535.146.02.run --no-kernel-module Kad redzat šo opciju, atlasiet “OK” un nospiediet
Izvēlieties 'OK' un nospiediet
Izvēlieties 'Jā' un nospiediet
Izvēlieties 'OK' un nospiediet
NVIDIA GPU draiveri tiek instalēti LXC konteinerā. Tas aizņem dažas sekundes, lai pabeigtu.
Kad redzat šo uzvedni, atlasiet “Jā” un nospiediet
Izvēlieties 'OK' un nospiediet
Lai pārbaudītu, vai NVIDIA GPU draiveri ir instalēti un darbojas, palaidiet komandu “nvidia-smi” LXC konteinerā. Kā redzat, NVIDIA GPU draivera versija 535.146.02 (tā pati versija, kas instalēta Proxmox VE 8 serverī) ir instalēta LXC konteinerā, un tā pareizi atklāja mūsu NVIDIA RTX 4070 GPU.
$ nvidia-smi
NVIDIA CUDA un cuDNN instalēšana Proxmox VE 8 LXC konteinerā
Demonstrēšanai mēs izmantojam Ubuntu 22.04 LTS LXC konteineru savā Proxmox VE 8 serverī. Ja LXC konteinerā izmantojat citu Linux izplatīšanu, jūsu komandas nedaudz atšķirsies no mūsu komandām. Tāpēc noteikti pielāgojiet komandas atkarībā no Linux izplatīšanas, ko izmantojat konteinerā.
Lai instalētu NVIDIA CUDA un cuDNN Ubuntu 22.04 LTS Proxmox VE 8 konteinerā, konteinerā palaidiet šādu komandu:
$ apt uzstādīt build-essential nvidia-cuda-toolkit nvidia-cudnn Lai apstiprinātu instalēšanu, nospiediet “Y” un pēc tam nospiediet
Nepieciešamās pakotnes tiek lejupielādētas un instalētas. Tas aizņem kādu laiku, lai pabeigtu.
Kad redzat šo logu, atlasiet “OK” un nospiediet
Izvēlieties 'Es piekrītu' un nospiediet
Instalēšana jāturpina.
Instalēšanas programma lejupielādē NVIDIA cuDNN bibliotēkas arhīvu no NVIDIA. Tas ir liels fails, tāpēc tā aizpildīšana prasa ilgu laiku.
Kad NVIDIA cuDNN bibliotēkas arhīvs ir lejupielādēts, instalēšana jāturpina kā parasti.
Šajā brīdī Ubuntu 22.04 LTS Proxmox VE 8 LXC konteinerā ir jāinstalē NVIDIA CUDA un cuDNN.
Pārbaude, vai NVIDIA CUDA paātrinājums darbojas Proxmox VE 8 LXC konteinerā
Lai pārbaudītu, vai NVIDIA CUDA ir instalēts pareizi, pārbaudiet, vai Proxmox VE 8 konteinerā ir pieejama komanda “nvcc”, kā norādīts tālāk.
$ nvcc -- versijaKā redzat, mūsu Proxmox VE 8 konteinerā ir instalēta NVIDIA CUDA 11.5.
Tagad rakstīsim, apkoposim un palaidīsim vienkāršu CUDA C programmu un pārbaudīsim, vai viss darbojas, kā paredzēts.
Vispirms Proxmox VE 8 konteinerā izveidojiet projekta direktoriju “~/code”, lai faili būtu sakārtoti.
$ mkdir ~ / koduDodieties uz projekta direktoriju “~/code” šādi:
$ cd `/ koduIzveidojiet jaunu failu, piemēram, “hello.cu”, Proxmox VE 8 konteinera direktorijā “~/code” un atveriet to, izmantojot nano teksta redaktoru.
$ nano sveiks.cuIevadiet tālāk norādītās koda rindiņas failā “hello.cu”.
#include__globāls__ spēkā neesošs sakiet Sveiki ( ) {
printf ( 'Sveika pasaule no GPU! \n ' ) ;
}
int galvenais ( ) {
printf ( 'Sveika pasaule no centrālā procesora! \n ' ) ;
pasaki Sveiki << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;
atgriezties 0 ;
}
Kad esat pabeidzis, nospiediet
Lai kompilētu CUDA programmu “hello.cu” konteinerā Proxmox VE 8, palaidiet šādas komandas:
$ nvcc hello.cu -O SveikiTagad varat palaist programmu “hello” CUDA Proxmox VE 8 konteinerā, kā norādīts tālāk.
$ . / SveikiJa Proxmox VE 8 konteiners var izmantot NVIDIA GPU NVIDIA CUDA paātrināšanai, programma izdrukās divas rindiņas, kā parādīts nākamajā ekrānuzņēmumā.
Ja NVIDIA GPU nav pieejams no Proxmox VE 8 konteinera, programma drukā tikai pirmo rindiņu, kas ir “Hello world from the CPU!”, nevis otro rindiņu.
Secinājums
Šajā rakstā mēs jums parādījām, kā pārsūtīt NVIDIA GPU no Proxmox VE 8 resursdatora uz Proxmox VE 8 LXC konteineru. Mēs arī parādījām, kā Proxmox VE 8 konteinerā instalēt to pašu NVIDIA GPU draiveru versiju kā Proxmox VE resursdatorā. Visbeidzot, mēs parādījām, kā instalēt NVIDIA CUDA un NVIDIA cuDNN Ubuntu 22.04 LTS Proxmox VE 8 konteinerā un kompilēt un palaist vienkāršu NVIDIA CUDA programmu Proxmox VE 8 konteinerā.