Τρόπος διέλευσης NVIDIA GPU σε κοντέινερ Proxmox VE 8 για επιτάχυνση CUDA/AI και διακωδικοποίηση μέσων

Tropos Dieleuses Nvidia Gpu Se Konteiner Proxmox Ve 8 Gia Epitachynse Cuda Ai Kai Diakodikopoiese Meson



Εάν έχετε εγκαταστήσει μια GPU NVIDIA στον διακομιστή σας Proxmox VE, μπορείτε να τη μεταβιβάσετε σε ένα κοντέινερ Proxmox VE LXC και να τη χρησιμοποιήσετε στο κοντέινερ για επιτάχυνση CUDA/AI (δηλαδή TensorFlow, PyTorch). Μπορείτε επίσης να χρησιμοποιήσετε τη GPU NVIDIA για διακωδικοποίηση πολυμέσων, ροή βίντεο κ.λπ. σε κοντέινερ Proxmox VE LXC με τον εγκατεστημένο διακομιστή Plex Media Server ή NextCloud (για παράδειγμα).

Σε αυτό το άρθρο, θα σας δείξουμε πώς να περάσετε μια GPU NVIDIA σε ένα κοντέινερ Proxmox VE 8 LXC, ώστε να μπορείτε να το χρησιμοποιήσετε για επιτάχυνση CUDA/AI, διακωδικοποίηση πολυμέσων ή άλλες εργασίες που απαιτούν GPU NVIDIA.







Θέμα Περιεχομένων:

Εγκατάσταση των προγραμμάτων οδήγησης GPU NVIDIA στο Proxmox VE 8

Για να περάσετε από μια GPU NVIDIA σε ένα κοντέινερ Proxmox VE LXC, πρέπει να έχετε εγκατεστημένα τα προγράμματα οδήγησης GPU NVIDIA στον διακομιστή σας Proxmox VE 8. Εάν χρειάζεστε βοήθεια για την εγκατάσταση της πιο πρόσφατης έκδοσης των επίσημων προγραμμάτων οδήγησης GPU NVIDIA στον διακομιστή σας Proxmox VE 8, διαβάστε αυτό το άρθρο .



Βεβαιωθείτε ότι οι μονάδες πυρήνα GPU της NVIDIA φορτώνονται αυτόματα στο Proxmox VE 8

Αφού εγκαταστήσετε τα προγράμματα οδήγησης NVIDIA GPU στον διακομιστή σας Proxmox VE 8, πρέπει να βεβαιωθείτε ότι οι μονάδες πυρήνα GPU της NVIDIA φορτώνονται αυτόματα κατά την εκκίνηση.



Αρχικά, δημιουργήστε ένα νέο αρχείο όπως το 'nvidia.conf' στον κατάλογο «/etc/modules-load.d/» και ανοίξτε το με το πρόγραμμα επεξεργασίας κειμένου nano.





$ νανο / και τα λοιπά / modules-load.δ / nvidia.conf

Προσθέστε τις ακόλουθες γραμμές και πατήστε + Χ ακολουθούμενο από το 'Y' και <Εισαγωγή> για να αποθηκεύσετε το αρχείο 'nvidia.conf':



nvidia

nvidia_uvm

Για να τεθούν σε ισχύ οι αλλαγές, ενημερώστε το αρχείο 'initramfs' με την ακόλουθη εντολή:

$ ενημέρωση-initramfs -σε

Για κάποιο λόγο, το Proxmox VE 8 δεν δημιουργεί τα απαιτούμενα αρχεία συσκευής GPU NVIDIA στον κατάλογο '/dev/'. Χωρίς αυτά τα αρχεία συσκευής, τα κοντέινερ Promox VE 8 LXC δεν θα μπορούν να χρησιμοποιήσουν τη GPU NVIDIA.

Για να βεβαιωθείτε ότι το Proxmox VE 8 δημιουργεί τα αρχεία συσκευής GPU NVIDIA στον κατάλογο '/dev/' κατά την εκκίνηση, δημιουργήστε ένα αρχείο κανόνων udev '70-nvidia.rules' στο '/etc/udev/rules.d/' κατάλογο και ανοίξτε τον με τον επεξεργαστή κειμένου nano ως εξής:

$ νανο / και τα λοιπά / udev / κανόνες.δ / 70 -nvidia.rules

Πληκτρολογήστε τις ακόλουθες γραμμές στο αρχείο '70-nvidia.rules' και πατήστε + Χ ακολουθούμενο από το 'Y' και <Εισαγωγή> για να αποθηκεύσετε το αρχείο:

# δημιουργήστε τα απαραίτητα αρχεία συσκευής NVIDIA στο /dev/*

ΠΥΡΗΝΑΣ == 'nvidia' , RUN+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''

ΠΥΡΗΝΑΣ == 'nvidia_uvm' , RUN+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''

Για να τεθούν σε ισχύ οι αλλαγές, επανεκκινήστε τον διακομιστή Proxmox VE 8 ως εξής:

$ επανεκκίνηση

Μόλις εκκινηθεί ο διακομιστής σας Proxmox VE 8, οι μονάδες πυρήνα NVIDIA θα πρέπει να φορτωθούν αυτόματα, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης:

$ lsmod | λαβή nvidia

Τα απαιτούμενα αρχεία συσκευής NVIDIA θα πρέπει επίσης να συμπληρωθούν στον κατάλογο '/dev' του διακομιστή σας Proxmox VE 8. Σημειώστε τα αναγνωριστικά CGroup των αρχείων της συσκευής NVIDIA. Πρέπει να επιτρέψετε αυτά τα αναγνωριστικά CGroup στο κοντέινερ LXC όπου θέλετε να περάσουν οι GPU της NVIDIA από τον διακομιστή σας Proxmox VE 8. Στην περίπτωσή μας, τα αναγνωριστικά CGroup είναι 195, 237 και 226.

$ ls -λχ / dev / nvidia *

$ ls -λχ / dev / dri

Δημιουργία κοντέινερ Proxmox VE 8 LXC για NVIDIA GPU Passthrough

Χρησιμοποιήσαμε ένα κοντέινερ Ubuntu 22.04 LTS Proxmox VE 8 LXC σε αυτό το άρθρο για την επίδειξη, καθώς οι βιβλιοθήκες NVIDIA CUDA και NVIDIA cuDNN είναι εύκολο να εγκατασταθούν στο Ubuntu 22.04 LTS από τα αποθετήρια πακέτων του Ubuntu και είναι πιο εύκολο να ελέγξετε εάν ο acceler λειτουργεί CUDA . Εάν θέλετε, μπορείτε να χρησιμοποιήσετε και άλλες διανομές Linux. Σε αυτήν την περίπτωση, οι εντολές εγκατάστασης NVIDIA CUDA και NVIDIA cuDNN θα διαφέρουν. Βεβαιωθείτε ότι ακολουθείτε τις οδηγίες εγκατάστασης NVIDIA CUDA και NVIDIA cuDNN για τη διανομή Linux που επιθυμείτε.

Εάν χρειάζεστε οποιαδήποτε βοήθεια για τη δημιουργία ενός δοχείου Proxmox VE 8 LXC, διαβάστε αυτό το άρθρο .

Διαμόρφωση κοντέινερ LXC για NVIDIA GPU Passthrough στο Promox VE 8

Για να διαμορφώσετε ένα κοντέινερ LXC (κοντέινερ 102, ας πούμε) για διέλευση GPU NVIDIA, ανοίξτε το αρχείο διαμόρφωσης κοντέινερ LXC από το κέλυφος Proxmox VE με το πρόγραμμα επεξεργασίας κειμένου nano ως εξής:

$ νανο / και τα λοιπά / πβε / lxc / 102 .conf

Πληκτρολογήστε τις ακόλουθες γραμμές στο τέλος του αρχείου διαμόρφωσης κοντέινερ LXC:

lxc.cgroup.devices.allow: γ 195 : * rwm

lxc.cgroup.devices.allow: γ 237 : * rwm

lxc.cgroup.devices.allow: γ 226 : * rwm

lxc.mount.entry: / dev / nvidia0          dev / nvidia0          κανένα δένω ,προαιρετικός, δημιουργώ = αρχείο

lxc.mount.entry: / dev / nvidiactl        dev / nvidiactl        κανένα δένω ,προαιρετικός, δημιουργώ = αρχείο

lxc.mount.entry: / dev / nvidia-modeset   dev / nvidia-modeset   κανένα δένω ,προαιρετικός, δημιουργώ = αρχείο

lxc.mount.entry: / dev / nvidia-uvm       dev / nvidia-uvm       κανένα δένω ,προαιρετικός, δημιουργώ = αρχείο

lxc.mount.entry: / dev / nvidia-uvm-tools dev / nvidia-uvm-tools κανένα δένω ,προαιρετικός, δημιουργώ = αρχείο

lxc.mount.entry: / dev / dri              dev / dri              κανένα δένω ,προαιρετικός, δημιουργώ = εσείς

Βεβαιωθείτε ότι έχετε αντικαταστήσει τα αναγνωριστικά CGroup στις γραμμές 'lxc.cgroup.devices.allow' του αρχείου διαμόρφωσης κοντέινερ LXC. Μόλις τελειώσετε, πατήστε + Χ ακολουθούμενο από το 'Y' και <Εισαγωγή> για να αποθηκεύσετε το αρχείο διαμόρφωσης κοντέινερ LXC.

Τώρα, ξεκινήστε το κοντέινερ LXC από τον πίνακα εργαλείων Proxmox VE 8.

Εάν η διέλευση GPU NVIDIA είναι επιτυχής, το κοντέινερ LXC θα πρέπει να ξεκινήσει χωρίς κανένα σφάλμα και θα πρέπει να δείτε τα αρχεία της συσκευής NVIDIA στον κατάλογο '/dev' του κοντέινερ.

$ ls -λχ / dev / nvidia *

$ ls -λχ / dev / dri

Εγκατάσταση των προγραμμάτων οδήγησης GPU NVIDIA στο κοντέινερ Proxmox VE 8 LXC

Χρησιμοποιούμε ένα κοντέινερ Ubuntu 22.04 LTS LXC στον διακομιστή μας Proxmox VE 8 για επίδειξη. Εάν χρησιμοποιείτε άλλη διανομή Linux στο κοντέινερ LXC, οι εντολές σας θα διαφέρουν ελαφρώς από τις δικές μας. Επομένως, φροντίστε να προσαρμόσετε τις εντολές ανάλογα με τη διανομή Linux που χρησιμοποιείτε στο κοντέινερ.

Μπορείτε να βρείτε την έκδοση των προγραμμάτων οδήγησης NVIDIA GPU που εγκαταστήσατε στον διακομιστή σας Proxmox VE 8 με την εντολή 'nvidia-smi'. Όπως μπορείτε να δείτε, έχουμε εγκαταστήσει τα προγράμματα οδήγησης GPU NVIDIA έκδοση 535.146.02 στον διακομιστή μας Proxmox VE 8. Επομένως, πρέπει να εγκαταστήσουμε τα προγράμματα οδήγησης GPU NVIDIA έκδοση 535.146.02 στο κοντέινερ LXC επίσης.

$ nvidia-smi

Αρχικά, εγκαταστήστε το CURL στο κοντέινερ LXC ως εξής:

$ εύστοχη ενημέρωση && κατάλληλος εγκαθιστώ μπούκλα -και

Το CURL θα πρέπει να εγκατασταθεί στο δοχείο LXC.

Για να εγκαταστήσετε τα προγράμματα οδήγησης NVIDIA GPU έκδοση 535.146.02 (ας πούμε), εξάγετε τη μεταβλητή περιβάλλοντος NVIDIA_VERSION και εκτελέστε την εντολή CURL (στο κοντέινερ) για να πραγματοποιήσετε λήψη της απαιτούμενης έκδοσης του αρχείου εγκατάστασης προγραμμάτων οδήγησης NVIDIA GPU.

$ εξαγωγή NVIDIA_VERSION = '535.146.02'

$ μπούκλα 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} .τρέξιμο'

Η σωστή έκδοση του αρχείου εγκατάστασης προγραμμάτων οδήγησης NVIDIA GPU θα πρέπει να ληφθεί στο κοντέινερ LXC, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης:

Τώρα, προσθέστε ένα εκτελέσιμο δικαίωμα στο αρχείο εγκατάστασης προγραμμάτων οδήγησης NVIDIA GPU στο κοντέινερ ως εξής:

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

Για να εγκαταστήσετε τα προγράμματα οδήγησης NVIDIA GPU στο κοντέινερ, εκτελέστε το αρχείο εγκατάστασης προγραμμάτων οδήγησης NVIDIA GPU με το '–no-kernel-module' επιλογή ως εξής:

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

Μόλις δείτε αυτήν την επιλογή, επιλέξτε 'OK' και πατήστε <Εισαγωγή> .

Επιλέξτε 'OK' και πατήστε <Εισαγωγή> .

Επιλέξτε «Ναι» και πατήστε <Εισαγωγή> .

Επιλέξτε 'OK' και πατήστε <Εισαγωγή> .

Τα προγράμματα οδήγησης GPU NVIDIA εγκαθίστανται στο κοντέινερ LXC. Χρειάζονται μερικά δευτερόλεπτα για να ολοκληρωθεί.

Μόλις δείτε αυτό το μήνυμα, επιλέξτε «Ναι» και πατήστε <Εισαγωγή> .

Επιλέξτε 'OK' και πατήστε <Εισαγωγή> . Τα προγράμματα οδήγησης GPU της NVIDIA θα πρέπει να είναι εγκατεστημένα στο κοντέινερ LXC.

Για να επιβεβαιώσετε εάν τα προγράμματα οδήγησης GPU της NVIDIA είναι εγκατεστημένα και λειτουργούν, εκτελέστε την εντολή 'nvidia-smi' στο κοντέινερ LXC. Όπως μπορείτε να δείτε, το πρόγραμμα οδήγησης NVIDIA GPU έκδοση 535.146.02 (η ίδια έκδοση με αυτή που είναι εγκατεστημένη στον διακομιστή Proxmox VE 8) είναι εγκατεστημένο στο κοντέινερ LXC και εντόπισε σωστά τη GPU NVIDIA RTX 4070.

$ nvidia-smi

Εγκατάσταση NVIDIA CUDA και cuDNN στο κοντέινερ Proxmox VE 8 LXC

Χρησιμοποιούμε ένα κοντέινερ Ubuntu 22.04 LTS LXC στον διακομιστή μας Proxmox VE 8 για επίδειξη. Εάν χρησιμοποιείτε άλλη διανομή Linux στο κοντέινερ LXC, οι εντολές σας θα διαφέρουν ελαφρώς από τις δικές μας. Επομένως, φροντίστε να προσαρμόσετε τις εντολές ανάλογα με τη διανομή Linux που χρησιμοποιείτε στο κοντέινερ.

Για να εγκαταστήσετε το NVIDIA CUDA και το cuDNN στο κοντέινερ Ubuntu 22.04 LTS Proxmox VE 8, εκτελέστε την ακόλουθη εντολή στο κοντέινερ:

$ κατάλληλος εγκαθιστώ build-essential nvidia-cuda-toolkit nvidia-cudnn

Για να επιβεβαιώσετε την εγκατάσταση, πατήστε 'Y' και στη συνέχεια πατήστε <Εισαγωγή> .

Γίνεται λήψη και εγκατάσταση των απαιτούμενων πακέτων. Χρειάζεται λίγος χρόνος για να ολοκληρωθεί.

Μόλις δείτε αυτό το παράθυρο, επιλέξτε 'OK' και πατήστε <Εισαγωγή> .

Επιλέξτε «Συμφωνώ» και πατήστε <Εισαγωγή> .

Η εγκατάσταση πρέπει να συνεχιστεί.

Το πρόγραμμα εγκατάστασης πραγματοποιεί λήψη του αρχείου βιβλιοθήκης NVIDIA cuDNN από τη NVIDIA. Είναι ένα μεγάλο αρχείο, οπότε χρειάζεται πολύς χρόνος για να ολοκληρωθεί.

Μόλις γίνει λήψη του αρχείου της βιβλιοθήκης NVIDIA cuDNN, η εγκατάσταση θα πρέπει να συνεχιστεί ως συνήθως.

Σε αυτό το σημείο, το NVIDIA CUDA και το cuDNN θα πρέπει να εγκατασταθούν στο κοντέινερ Ubuntu 22.04 LTS Proxmox VE 8 LXC.

Έλεγχος εάν το NVIDIA CUDA Acceleration λειτουργεί στο κοντέινερ Proxmox VE 8 LXC

Για να επαληθεύσετε εάν το NVIDIA CUDA έχει εγκατασταθεί σωστά, ελέγξτε εάν η εντολή 'nvcc' είναι διαθέσιμη στο κοντέινερ Proxmox VE 8 ως εξής:

$ nvcc --εκδοχή

Όπως μπορείτε να δείτε, έχουμε εγκαταστήσει το NVIDIA CUDA 11.5 στο κοντέινερ Proxmox VE 8.

Τώρα, ας γράψουμε, ας μεταγλωττίσουμε και εκτελέσουμε ένα απλό πρόγραμμα CUDA C και ας δούμε αν όλα λειτουργούν όπως αναμένεται.

Αρχικά, δημιουργήστε έναν κατάλογο έργου '~/code' στο κοντέινερ Proxmox VE 8 για να διατηρήσετε τα αρχεία οργανωμένα.

$ mkdir ~ / κώδικας

Μεταβείτε στον κατάλογο του έργου '~/code' ως εξής:

$ CD `/ κώδικας

Δημιουργήστε ένα νέο αρχείο όπως το 'hello.cu' στον κατάλογο '~/code' του κοντέινερ Proxmox VE 8 και ανοίξτε το με το πρόγραμμα επεξεργασίας κειμένου nano:

$ νανο γεια σου.cu

Πληκτρολογήστε τις ακόλουθες γραμμές κώδικα στο αρχείο 'hello.cu':

#include

__global__ void sayHello ( ) {
printf ( «Γεια σου κόσμο από την GPU! \n ' ) ;
}

int main ( ) {
printf ( «Γεια σου κόσμο από την CPU! \n ' ) ;

πες γεια << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}

Μόλις τελειώσετε, πατήστε + Χ ακολουθούμενο από το 'Y' και <Εισαγωγή> για να αποθηκεύσετε το αρχείο 'hello.cu'.

Για να μεταγλωττίσετε το πρόγραμμα 'hello.cu' CUDA στο κοντέινερ Proxmox VE 8, εκτελέστε τις ακόλουθες εντολές:

$ nvcc γεια σου.cu Γειά σου

Τώρα, μπορείτε να εκτελέσετε το πρόγραμμα 'hello' CUDA στο κοντέινερ Proxmox VE 8 ως εξής:

$ . / Γειά σου

Εάν το κοντέινερ Proxmox VE 8 μπορεί να χρησιμοποιήσει τη GPU NVIDIA για επιτάχυνση NVIDIA CUDA, το πρόγραμμα θα εκτυπώσει δύο γραμμές όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Εάν η GPU της NVIDIA δεν είναι προσβάσιμη από το κοντέινερ Proxmox VE 8, το πρόγραμμα θα εκτυπώσει μόνο την πρώτη γραμμή που είναι 'Hello world from the CPU!', όχι τη δεύτερη γραμμή.

συμπέρασμα

Σε αυτό το άρθρο, σας δείξαμε πώς να περάσετε μια GPU NVIDIA από τον κεντρικό υπολογιστή Proxmox VE 8 σε ένα κοντέινερ Proxmox VE 8 LXC. Σας δείξαμε επίσης πώς να εγκαταστήσετε την ίδια έκδοση των προγραμμάτων οδήγησης GPU NVIDIA στο κοντέινερ Proxmox VE 8 με τον κεντρικό υπολογιστή Proxmox VE. Τέλος, σας δείξαμε πώς να εγκαταστήσετε το NVIDIA CUDA και το NVIDIA cuDNN σε ένα κοντέινερ Ubuntu 22.04 LTS Proxmox VE 8 και να μεταγλωττίσετε και να εκτελέσετε ένα απλό πρόγραμμα NVIDIA CUDA στο κοντέινερ Proxmox VE 8.

Βιβλιογραφικές αναφορές: