Cara Melepasi GPU NVIDIA ke Kontena Proxmox VE 8 untuk Pecutan CUDA/AI dan Transcoding Media

Cara Melepasi Gpu Nvidia Ke Kontena Proxmox Ve 8 Untuk Pecutan Cuda Ai Dan Transcoding Media



Jika anda mempunyai GPU NVIDIA dipasang pada pelayan Proxmox VE anda, anda boleh menghantarnya ke bekas Proxmox VE LXC dan menggunakannya dalam bekas untuk pecutan CUDA/AI (iaitu TensorFlow, PyTorch). Anda juga boleh menggunakan GPU NVIDIA untuk transkod media, penstriman video, dsb. dalam bekas Proxmox VE LXC dengan Pelayan Media Plex atau NextCloud yang dipasang (sebagai contoh).

Dalam artikel ini, kami akan menunjukkan kepada anda cara untuk melepasi GPU NVIDIA ke bekas Proxmox VE 8 LXC supaya anda boleh menggunakannya untuk pecutan CUDA/AI, transkod media atau tugas lain yang memerlukan GPU NVIDIA.







Topik Kandungan:

Memasang Pemacu GPU NVIDIA pada Proxmox VE 8

Untuk melepasi GPU NVIDIA ke bekas Proxmox VE LXC, anda mesti memasang pemacu GPU NVIDIA pada pelayan Proxmox VE 8 anda. Jika anda memerlukan sebarang bantuan dalam memasang versi terkini pemacu GPU NVIDIA rasmi pada pelayan Proxmox VE 8 anda, baca artikel ini .



Memastikan Modul Kernel GPU NVIDIA Dimuatkan dalam Proxmox VE 8 Secara Automatik

Sebaik sahaja anda memasang pemacu GPU NVIDIA pada pelayan Proxmox VE 8 anda, anda mesti memastikan bahawa modul kernel GPU NVIDIA dimuatkan secara automatik pada masa but.



Mula-mula, buat fail baharu seperti “nvidia.conf” dalam direktori “/etc/modules-load.d/” dan buka dengan editor teks nano.





$ nano / dan lain-lain / modul-beban.d / nvidia.conf

Tambahkan baris berikut dan tekan + X diikuti dengan 'Y' dan untuk menyimpan fail 'nvidia.conf':



nvidia

nvidia_uvm

Untuk perubahan berkuat kuasa, kemas kini fail 'initramfs' dengan arahan berikut:

$ kemas kini-initramfs -dalam

Atas sebab tertentu, Proxmox VE 8 tidak membuat fail peranti GPU NVIDIA yang diperlukan dalam direktori “/dev/”. Tanpa fail peranti tersebut, bekas Promox VE 8 LXC tidak akan dapat menggunakan GPU NVIDIA.

Untuk memastikan Proxmox VE 8 mencipta fail peranti GPU NVIDIA dalam direktori “/dev/” pada masa but, buat fail peraturan udev “70-nvidia.rules” dalam “/etc/udev/rules.d/” direktori dan bukanya dengan penyunting teks nano seperti berikut:

$ nano / dan lain-lain / udev / peraturan.d / 70 -nvidia.rules

Taipkan baris berikut dalam fail '70-nvidia.rules' dan tekan + X diikuti dengan 'Y' dan untuk menyimpan fail:

# buat fail peranti NVIDIA yang diperlukan dalam /dev/*

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

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

Untuk perubahan berkuat kuasa, but semula pelayan Proxmox VE 8 anda seperti berikut:

$ but semula

Setelah pelayan Proxmox VE 8 anda but, modul kernel NVIDIA harus dimuatkan secara automatik seperti yang anda boleh lihat dalam tangkapan skrin berikut:

$ lsmod | cengkaman nvidia

Fail peranti NVIDIA yang diperlukan juga harus diisi dalam direktori “/dev” pelayan Proxmox VE 8 anda. Perhatikan ID CGroup bagi fail peranti NVIDIA. Anda mesti membenarkan ID CGroup tersebut pada bekas LXC yang anda mahu melalui GPU NVIDIA daripada pelayan Proxmox VE 8 anda. Dalam kes kami, ID CGroup ialah 195, 237 dan 226.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dri

Mencipta Kontena Proxmox VE 8 LXC untuk Laluan GPU NVIDIA

Kami menggunakan bekas Ubuntu 22.04 LTS Proxmox VE 8 LXC dalam artikel ini untuk demonstrasi kerana perpustakaan NVIDIA CUDA dan NVIDIA cuDNN mudah dipasang pada Ubuntu 22.04 LTS daripada repositori pakej Ubuntu dan lebih mudah untuk menguji jika pecutan NVIDIA CUDA berfungsi . Jika anda mahu, anda boleh menggunakan pengedaran Linux lain juga. Dalam kes itu, arahan pemasangan NVIDIA CUDA dan NVIDIA cuDNN akan berbeza-beza. Pastikan anda mengikuti arahan pemasangan NVIDIA CUDA dan NVIDIA cuDNN untuk pengedaran Linux yang anda inginkan.

Jika anda memerlukan sebarang bantuan dalam mencipta bekas Proxmox VE 8 LXC, baca artikel ini .

Mengkonfigurasi Bekas LXC untuk Laluan GPU NVIDIA pada Promox VE 8

Untuk mengkonfigurasi bekas LXC (bekas 102, katakan) untuk laluan lalu GPU NVIDIA, buka fail konfigurasi bekas LXC daripada cangkerang Proxmox VE dengan penyunting teks nano seperti berikut:

$ nano / dan lain-lain / pve / lxc / 102 .conf

Taipkan baris berikut pada penghujung fail konfigurasi kontena LXC:

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          tiada mengikat ,pilihan, cipta = fail

lxc.mount.entry: / dev / nvidiactl        dev / nvidiactl        tiada mengikat ,pilihan, cipta = fail

lxc.mount.entry: / dev / nvidia-modeset   dev / nvidia-modeset   tiada mengikat ,pilihan, cipta = fail

lxc.mount.entry: / dev / nvidia-uvm       dev / nvidia-uvm       tiada mengikat ,pilihan, cipta = fail

lxc.mount.entry: / dev / nvidia-uvm-tools dev / nvidia-uvm-tools tiada mengikat ,pilihan, cipta = fail

lxc.mount.entry: / dev / dri              dev / dri              tiada mengikat ,pilihan, cipta = awak

Pastikan anda menggantikan ID CGroup dalam baris 'lxc.cgroup.devices.allow' pada fail konfigurasi bekas LXC. Setelah anda selesai, tekan + X diikuti dengan “Y” dan untuk menyimpan fail konfigurasi kontena LXC.

Sekarang, mulakan bekas LXC dari papan pemuka Proxmox VE 8.

Jika laluan lalu GPU NVIDIA berjaya, bekas LXC harus bermula tanpa sebarang ralat dan anda akan melihat fail peranti NVIDIA dalam direktori '/dev' bekas.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dri

Memasang Pemacu GPU NVIDIA pada Kontena Proxmox VE 8 LXC

Kami menggunakan bekas Ubuntu 22.04 LTS LXC pada pelayan Proxmox VE 8 kami untuk demonstrasi. Jika anda menggunakan pengedaran Linux lain pada bekas LXC, arahan anda akan berbeza sedikit daripada arahan kami. Jadi, pastikan anda melaraskan arahan bergantung pada pengedaran Linux yang anda gunakan pada bekas.

Anda boleh menemui versi pemacu GPU NVIDIA yang anda pasang pada pelayan Proxmox VE 8 anda dengan arahan “nvidia-smi”. Seperti yang anda lihat, kami mempunyai pemacu GPU NVIDIA versi 535.146.02 dipasang pada pelayan Proxmox VE 8 kami. Jadi, kami mesti memasang pemacu GPU NVIDIA versi 535.146.02 pada bekas LXC kami juga.

$ nvidia-smi

Mula-mula, pasang CURL pada bekas LXC seperti berikut:

$ kemas kini yang sesuai && apt pasang keriting -dan

CURL hendaklah dipasang pada bekas LXC.

Untuk memasang pemacu GPU NVIDIA versi 535.146.02 (katakan), eksport pembolehubah persekitaran NVIDIA_VERSION dan jalankan arahan CURL (pada bekas) untuk memuat turun versi yang diperlukan bagi fail pemasang pemacu NVIDIA GPU.

$ eksport NVIDIA_VERSION = '535.146.02'

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

Versi fail pemasang pemacu GPU NVIDIA yang betul harus dimuat turun pada bekas LXC seperti yang anda boleh lihat dalam tangkapan skrin berikut:

Sekarang, tambahkan kebenaran boleh laku pada fail pemasang pemacu GPU NVIDIA pada bekas seperti berikut:

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

Untuk memasang pemacu GPU NVIDIA pada bekas, jalankan fail pemasang pemacu NVIDIA GPU dengan '–no-kernel-module' pilihan seperti berikut:

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

Sebaik sahaja anda melihat pilihan ini, pilih 'OK' dan tekan .

Pilih 'OK' dan tekan .

Pilih 'Ya' dan tekan .

Pilih 'OK' dan tekan .

Pemacu GPU NVIDIA sedang dipasang pada bekas LXC. Ia mengambil masa beberapa saat untuk diselesaikan.

Sebaik sahaja anda melihat gesaan ini, pilih 'Ya' dan tekan .

Pilih 'OK' dan tekan . Pemacu GPU NVIDIA hendaklah dipasang pada bekas LXC.

Untuk mengesahkan sama ada pemacu GPU NVIDIA dipasang dan berfungsi, jalankan arahan 'nvidia-smi' pada bekas LXC. Seperti yang anda lihat, pemacu GPU NVIDIA versi 535.146.02 (versi yang sama seperti yang dipasang pada pelayan Proxmox VE 8) dipasang pada bekas LXC dan ia mengesan GPU NVIDIA RTX 4070 kami dengan betul.

$ nvidia-smi

Memasang NVIDIA CUDA dan cuDNN pada Kontena Proxmox VE 8 LXC

Kami menggunakan bekas Ubuntu 22.04 LTS LXC pada pelayan Proxmox VE 8 kami untuk demonstrasi. Jika anda menggunakan pengedaran Linux lain pada bekas LXC, arahan anda akan berbeza sedikit daripada arahan kami. Jadi, pastikan anda melaraskan arahan bergantung pada pengedaran Linux yang anda gunakan pada bekas.

Untuk memasang NVIDIA CUDA dan cuDNN pada bekas Ubuntu 22.04 LTS Proxmox VE 8, jalankan arahan berikut pada bekas:

$ apt pasang bina-penting nvidia-cuda-toolkit nvidia-cudnn

Untuk mengesahkan pemasangan, tekan 'Y' dan kemudian tekan .

Pakej yang diperlukan sedang dimuat turun dan dipasang. Ia mengambil sedikit masa untuk disiapkan.

Sebaik sahaja anda melihat tetingkap ini, pilih 'OK' dan tekan .

Pilih 'Saya Setuju' dan tekan .

Pemasangan harus diteruskan.

Pemasang sedang memuat turun arkib perpustakaan NVIDIA cuDNN daripada NVIDIA. Ia adalah fail yang besar, jadi ia mengambil masa yang lama untuk disiapkan.

Setelah arkib perpustakaan NVIDIA cuDNN dimuat turun, pemasangan harus diteruskan seperti biasa.

Pada ketika ini, NVIDIA CUDA dan cuDNN harus dipasang pada bekas Ubuntu 22.04 LTS Proxmox VE 8 LXC.

Menyemak Jika NVIDIA CUDA Acceleration Berfungsi pada Kontena Proxmox VE 8 LXC

Untuk mengesahkan sama ada NVIDIA CUDA dipasang dengan betul, semak sama ada arahan “nvcc” tersedia pada bekas Proxmox VE 8 seperti berikut:

$ nvcc --versi

Seperti yang anda lihat, kami telah memasang NVIDIA CUDA 11.5 pada bekas Proxmox VE 8 kami.

Sekarang, mari tulis, susun dan jalankan program CUDA C yang mudah dan lihat sama ada semuanya berfungsi seperti yang diharapkan.

Mula-mula, buat direktori projek “~/code” pada bekas Proxmox VE 8 untuk memastikan fail teratur.

$ mkdir ~ / kod

Navigasi ke direktori projek '~/code' seperti berikut:

$ cd `/ kod

Buat fail baharu seperti “hello.cu” dalam direktori “~/code” pada bekas Proxmox VE 8 dan bukanya dengan editor teks nano:

$ nano hello.cu

Taip baris kod berikut dalam fail “hello.cu” :

#include

__global__ tidak sayHello ( ) {
printf ( 'Hello dunia daripada GPU! \n ' ) ;
}

int utama ( ) {
printf ( 'Hello dunia dari CPU! \n ' ) ;

katakan hai << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

kembali 0 ;
}

Setelah anda selesai, tekan + X diikuti dengan 'Y' dan untuk menyimpan fail 'hello.cu'.

Untuk menyusun program “hello.cu” CUDA pada bekas Proxmox VE 8, jalankan arahan berikut:

$ nvcc hello.cu -O hello

Kini, anda boleh menjalankan program CUDA “hello” pada bekas Proxmox VE 8 seperti berikut:

$ . / hello

Jika bekas Proxmox VE 8 boleh menggunakan GPU NVIDIA untuk pecutan NVIDIA CUDA, program akan mencetak dua baris seperti yang ditunjukkan dalam tangkapan skrin berikut.

Jika GPU NVIDIA tidak boleh diakses daripada bekas Proxmox VE 8, program akan mencetak hanya baris pertama iaitu “Hello world from the CPU!”, bukan baris kedua.

Kesimpulan

Dalam artikel ini, kami menunjukkan kepada anda cara untuk melepasi GPU NVIDIA daripada hos Proxmox VE 8 kepada bekas Proxmox VE 8 LXC. Kami juga menunjukkan kepada anda cara memasang versi pemacu GPU NVIDIA yang sama pada bekas Proxmox VE 8 sebagai hos Proxmox VE. Akhir sekali, kami menunjukkan kepada anda cara memasang NVIDIA CUDA dan NVIDIA cuDNN pada bekas Ubuntu 22.04 LTS Proxmox VE 8 dan menyusun serta menjalankan program NVIDIA CUDA yang ringkas pada bekas Proxmox VE 8.

Rujukan: