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
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
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 : * rwmlxc.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
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.runUntuk 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
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 --versiSeperti 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 ~ / kodNavigasi ke direktori projek '~/code' seperti berikut:
$ cd `/ kodBuat fail baharu seperti “hello.cu” dalam direktori “~/code” pada bekas Proxmox VE 8 dan bukanya dengan editor teks nano:
$ nano hello.cuTaip 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
Untuk menyusun program “hello.cu” CUDA pada bekas Proxmox VE 8, jalankan arahan berikut:
$ nvcc hello.cu -O helloKini, anda boleh menjalankan program CUDA “hello” pada bekas Proxmox VE 8 seperti berikut:
$ . / helloJika 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.