Kā pārsūtīt NVIDIA GPU uz Proxmox VE 8 konteineriem CUDA/AI paātrināšanai un multivides pārkodēšanai

Ka Parsutit Nvidia Gpu Uz Proxmox Ve 8 Konteineriem Cuda Ai Paatrinasanai Un Multivides Parkodesanai



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 + X kam seko “Y” un lai saglabātu failu “nvidia.conf”, veiciet tālāk norādītās darbības.



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 + X kam seko “Y” un lai saglabātu failu:

# izveidojiet nepieciešamos NVIDIA ierīces failus mapē /dev/*

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

lxc.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 + X kam seko “Y” un lai saglabātu LXC konteinera konfigurācijas failu.

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

Lai 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 . NVIDIA GPU draiveri ir jāinstalē LXC konteinerā.

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

Kā 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 ~ / kodu

Dodieties uz projekta direktoriju “~/code” šādi:

$ cd `/ kodu

Izveidojiet jaunu failu, piemēram, “hello.cu”, Proxmox VE 8 konteinera direktorijā “~/code” un atveriet to, izmantojot nano teksta redaktoru.

$ nano sveiks.cu

Ievadiet 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 + X kam seko “Y” un lai saglabātu failu “hello.cu”.

Lai kompilētu CUDA programmu “hello.cu” konteinerā Proxmox VE 8, palaidiet šādas komandas:

$ nvcc hello.cu -O Sveiki

Tagad varat palaist programmu “hello” CUDA Proxmox VE 8 konteinerā, kā norādīts tālāk.

$ . / Sveiki

Ja 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ā.

Atsauces: