كيفية المرور عبر NVIDIA GPU إلى Proxmox VE 8 Containers لتسريع CUDA/AI وتحويل ترميز الوسائط

Kyfyt Almrwr Br Nvidia Gpu Aly Proxmox Ve 8 Containers Ltsry Cuda Ai Wthwyl Trmyz Alwsayt



إذا كان لديك وحدة معالجة الرسومات NVIDIA مثبتة على خادم Proxmox VE الخاص بك، فيمكنك تمريرها إلى حاوية Proxmox VE LXC واستخدامها في الحاوية لتسريع CUDA/AI (مثل TensorFlow وPyTorch). يمكنك أيضًا استخدام وحدة معالجة الرسومات NVIDIA لتحويل ترميز الوسائط وتدفق الفيديو وما إلى ذلك في حاوية Proxmox VE LXC مع Plex Media Server المثبت أو NextCloud (على سبيل المثال).

في هذه المقالة، سنوضح لك كيفية المرور عبر وحدة معالجة الرسومات NVIDIA إلى حاوية Proxmox VE 8 LXC بحيث يمكنك استخدامها لتسريع CUDA/AI، أو تحويل ترميز الوسائط، أو المهام الأخرى التي تتطلب وحدة معالجة الرسومات NVIDIA.







موضوع المحتويات:

تثبيت برامج تشغيل NVIDIA GPU على Proxmox VE 8

للعبور من NVIDIA GPU إلى حاوية Proxmox VE LXC، يجب أن يكون لديك برامج تشغيل NVIDIA GPU مثبتة على خادم Proxmox VE 8 الخاص بك. إذا كنت بحاجة إلى أي مساعدة في تثبيت أحدث إصدار من برامج تشغيل NVIDIA GPU الرسمية على خادم Proxmox VE 8 الخاص بك، اقرأ هذه المقالة .



التأكد من تحميل وحدات NVIDIA GPU Kernel في Proxmox VE 8 تلقائيًا

بمجرد تثبيت برامج تشغيل NVIDIA GPU على خادم Proxmox VE 8 الخاص بك، يجب عليك التأكد من تحميل وحدات NVIDIA GPU kernel تلقائيًا في وقت التمهيد.



أولاً، أنشئ ملفًا جديدًا مثل 'nvidia.conf' في الدليل '/etc/modules-load.d/' وافتحه باستخدام محرر النصوص nano.





$ نانو / إلخ / وحدات-load.d / nvidia.conf

أضف الأسطر التالية ثم اضغط <التحكم> + X تليها 'Y' و <أدخل> لحفظ الملف 'nvidia.conf':



نفيديا

nvidia_uvm

لكي تدخل التغييرات حيز التنفيذ، قم بتحديث ملف 'initramfs' باستخدام الأمر التالي:

$ update-initramfs -في

لسبب ما، لا يقوم Proxmox VE 8 بإنشاء ملفات جهاز NVIDIA GPU المطلوبة في الدليل '/dev/'. بدون ملفات الجهاز هذه، لن تتمكن حاويات Promox VE 8 LXC من استخدام وحدة معالجة الرسومات NVIDIA.

للتأكد من أن Proxmox VE 8 ينشئ ملفات جهاز NVIDIA GPU في الدليل '/dev/' في وقت التمهيد، قم بإنشاء ملف قواعد udev '70-nvidia.rules' في '/etc/udev/rules.d/' الدليل وافتحه باستخدام محرر النصوص nano كما يلي:

$ نانو / إلخ / udev / القواعد.د / 70 -nvidia.rules

اكتب الأسطر التالية في الملف '70-nvidia.rules' ثم اضغط <التحكم> + X تليها 'Y' و <أدخل> لحفظ الملف:

# قم بإنشاء ملفات جهاز NVIDIA الضرورية في /dev/*

نواة == 'نفيديا' ، تشغيل+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''

نواة == 'nvidia_uvm' ، تشغيل+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''

لكي تدخل التغييرات حيز التنفيذ، أعد تشغيل خادم Proxmox VE 8 كما يلي:

$ اعادة التشغيل

بمجرد تشغيل خادم Proxmox VE 8، يجب تحميل وحدات NVIDIA kernel تلقائيًا كما ترون في لقطة الشاشة التالية:

$ com.lsmod | سيطرة نفيديا

يجب أيضًا تعبئة ملفات جهاز NVIDIA المطلوبة في الدليل '/dev' لخادم Proxmox VE 8. لاحظ معرفات CGroup لملفات جهاز NVIDIA. يجب عليك السماح بمعرفات CGroup هذه على حاوية LXC حيث تريد المرور عبر وحدات معالجة الرسومات NVIDIA من خادم Proxmox VE 8. في حالتنا، معرفات CGroup هي 195 و237 و226.

$ ليرة سورية -lh / ديف / نفيديا *

$ ليرة سورية -lh / ديف / dri

إنشاء حاوية Proxmox VE 8 LXC لعبور NVIDIA GPU

استخدمنا حاوية Ubuntu 22.04 LTS Proxmox VE 8 LXC في هذه المقالة للتوضيح نظرًا لأن مكتبات NVIDIA CUDA وNVIDIA cuDNN سهلة التثبيت على Ubuntu 22.04 LTS من مستودعات حزم Ubuntu ومن الأسهل اختبار ما إذا كان تسريع NVIDIA CUDA يعمل أم لا . إذا أردت، يمكنك استخدام توزيعات Linux الأخرى أيضًا. في هذه الحالة، ستختلف أوامر التثبيت NVIDIA CUDA وNVIDIA cuDNN. تأكد من اتباع تعليمات تثبيت NVIDIA CUDA وNVIDIA cuDNN لتوزيع Linux المطلوب.

إذا كنت بحاجة إلى أي مساعدة في إنشاء حاوية Proxmox VE 8 LXC، اقرأ هذه المقالة .

تكوين حاوية LXC لـ NVIDIA GPU Passthrough على Promox VE 8

لتكوين حاوية LXC (على سبيل المثال، الحاوية 102) لعبور NVIDIA GPU، افتح ملف تكوين حاوية LXC من غلاف Proxmox VE باستخدام محرر النصوص النانوي كما يلي:

$ نانو / إلخ / ص / 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: / ديف / nvidia0          dev / nvidia0          لا شيء ربط ،خياري، يخلق = ملف

lxc.mount.entry: / ديف / nvidiactl        dev / nvidiactl        لا شيء ربط ،خياري، يخلق = ملف

lxc.mount.entry: / ديف / nvidia-modeset   dev / nvidia-modeset   لا شيء ربط ،خياري، يخلق = ملف

lxc.mount.entry: / ديف / nvidia-uvm       dev / نفيديا-uvm       لا شيء ربط ،خياري، يخلق = ملف

lxc.mount.entry: / ديف / تطوير أدوات nvidia-uvm / أدوات nvidia-uvm لا شيء ربط ،خياري، يخلق = ملف

lxc.mount.entry: / ديف / dri              dev / دري              لا شيء ربط ،خياري، يخلق = أنت

تأكد من استبدال معرفات CGroup في أسطر 'lxc.cgroup.devices.allow' في ملف تكوين حاوية LXC. بمجرد الانتهاء، اضغط <التحكم> + X متبوعًا بـ 'Y' و <أدخل> لحفظ ملف تكوين حاوية LXC.

الآن، قم بتشغيل حاوية LXC من لوحة معلومات Proxmox VE 8.

إذا نجح عبور NVIDIA GPU، فيجب أن تبدأ حاوية LXC دون أي خطأ ويجب أن تشاهد ملفات جهاز NVIDIA في الدليل '/dev' الخاص بالحاوية.

$ ليرة سورية -lh / ديف / نفيديا *

$ ليرة سورية -lh / ديف / dri

تثبيت برامج تشغيل NVIDIA GPU على حاوية Proxmox VE 8 LXC

نحن نستخدم حاوية Ubuntu 22.04 LTS LXC على خادم Proxmox VE 8 الخاص بنا للعرض التوضيحي. إذا كنت تستخدم توزيعة Linux أخرى في حاوية LXC، فستختلف أوامرك قليلًا عن أوامرنا. لذا، تأكد من ضبط الأوامر وفقًا لتوزيع Linux الذي تستخدمه في الحاوية.

يمكنك العثور على إصدار برامج تشغيل NVIDIA GPU الذي قمت بتثبيته على خادم Proxmox VE 8 باستخدام الأمر 'nvidia-smi'. كما ترون، لدينا إصدار برامج تشغيل NVIDIA GPU رقم 535.146.02 مثبتًا على خادم Proxmox VE 8. لذلك، يجب علينا تثبيت إصدار برامج تشغيل NVIDIA GPU رقم 535.146.02 على حاوية LXC الخاصة بنا أيضًا.

$ نفيديا-smi

أولاً، قم بتثبيت CURL على حاوية LXC كما يلي:

$ تحديث مناسب && ملائم ثَبَّتَ لفة

يجب تثبيت CURL على حاوية LXC.

لتثبيت إصدار برامج تشغيل NVIDIA GPU رقم 535.146.02 (على سبيل المثال)، قم بتصدير متغير البيئة NVIDIA_VERSION وتشغيل أمر CURL (على الحاوية) لتنزيل الإصدار المطلوب من ملف تثبيت برامج تشغيل NVIDIA GPU.

$ يصدّر NVIDIA_VERSION = '535.146.02'

$ حليقة -O 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /نفيديا-لينكس-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' الخيار على النحو التالي:

$ . / نفيديا-لينكس-x86_64-535.146.02.run --no-kernel-module

بمجرد رؤية هذا الخيار، حدد 'موافق' ثم اضغط <أدخل> .

حدد 'موافق' ثم اضغط <أدخل> .

حدد 'نعم' ثم اضغط <أدخل> .

حدد 'موافق' ثم اضغط <أدخل> .

يتم تثبيت برامج تشغيل NVIDIA GPU على حاوية LXC. يستغرق بضع ثوان لإكمال.

بمجرد رؤية هذه المطالبة، حدد 'نعم' واضغط <أدخل> .

حدد 'موافق' ثم اضغط <أدخل> . يجب تثبيت برامج تشغيل NVIDIA GPU على حاوية LXC.

للتأكد من تثبيت برامج تشغيل NVIDIA GPU وتشغيلها، قم بتشغيل الأمر 'nvidia-smi' في حاوية LXC. كما ترون، تم تثبيت إصدار برنامج تشغيل NVIDIA GPU رقم 535.146.02 (نفس الإصدار المثبت على خادم Proxmox VE 8) على حاوية LXC واكتشف NVIDIA RTX 4070 GPU الخاص بنا بشكل صحيح.

$ نفيديا-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، قم بتشغيل الأمر التالي على الحاوية:

$ ملائم ثَبَّتَ مجموعة أدوات nvidia-cuda الأساسية للإنشاء nvidia-cudnn

لتأكيد التثبيت، اضغط على 'Y' ثم اضغط <أدخل> .

يتم الآن تنزيل الحزم المطلوبة وتثبيتها. يستغرق بعض الوقت لإكمال.

بمجرد ظهور هذه النافذة، حدد 'موافق' ثم اضغط <أدخل> .

حدد 'أوافق' ثم اضغط <أدخل> .

يجب أن يستمر التثبيت.

يقوم المثبت بتنزيل أرشيف مكتبة NVIDIA cuDNN من NVIDIA. إنه ملف كبير، لذا يستغرق إكماله وقتًا طويلاً.

بمجرد تنزيل أرشيف مكتبة NVIDIA cuDNN، يجب أن يستمر التثبيت كالمعتاد.

في هذه المرحلة، يجب تثبيت NVIDIA CUDA وcuDNN على حاوية Ubuntu 22.04 LTS Proxmox VE 8 LXC.

التحقق مما إذا كان تسريع NVIDIA CUDA يعمل على حاوية Proxmox VE 8 LXC

للتحقق من تثبيت NVIDIA CUDA بشكل صحيح، تحقق مما إذا كان الأمر 'nvcc' متاحًا في حاوية Proxmox VE 8 كما يلي:

$ com.nvcc --إصدار

كما ترون، لدينا NVIDIA CUDA 11.5 مثبتًا على حاوية Proxmox VE 8 الخاصة بنا.

الآن، دعونا نكتب ونجمع ونشغل برنامج CUDA C البسيط ونرى ما إذا كان كل شيء يعمل كما هو متوقع.

أولاً، أنشئ دليل مشروع '~/code' على حاوية Proxmox VE 8 للحفاظ على تنظيم الملفات.

$ mkdir ~ / شفرة

انتقل إلى دليل المشروع '~/code' كما يلي:

$ قرص مضغوط `/ شفرة

أنشئ ملفًا جديدًا مثل 'hello.cu' في الدليل '~/code' لحاوية Proxmox VE 8 وافتحه باستخدام محرر النصوص النانوي:

$ نانو hello.cu

اكتب سطور التعليمات البرمجية التالية في الملف 'hello.cu':

#تشمل

__global__ باطل قل مرحباً ( ) {
printf ( 'مرحبًا بالعالم من وحدة معالجة الرسومات! ' ) ;
}

انت مين ( ) {
printf ( 'مرحبا بالعالم من وحدة المعالجة المركزية! ' ) ;

قل مرحبا << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

يعود 0 ;
}

بمجرد الانتهاء، اضغط <التحكم> + X تليها 'Y' و <أدخل> لحفظ الملف 'hello.cu'.

لتجميع برنامج CUDA 'hello.cu' على حاوية Proxmox VE 8، قم بتشغيل الأوامر التالية:

$ nvcc hello.cu -O مرحبًا

يمكنك الآن تشغيل برنامج CUDA 'hello' على حاوية Proxmox VE 8 كما يلي:

$ . / مرحبًا

إذا كان بإمكان حاوية Proxmox VE 8 استخدام NVIDIA GPU لتسريع NVIDIA CUDA، فسيقوم البرنامج بطباعة سطرين كما هو موضح في لقطة الشاشة التالية.

إذا لم يكن من الممكن الوصول إلى وحدة معالجة الرسومات NVIDIA من حاوية Proxmox VE 8، فسيقوم البرنامج بطباعة السطر الأول فقط وهو 'Hello World from the CPU!'، وليس السطر الثاني.

خاتمة

في هذه المقالة، أظهرنا لك كيفية المرور عبر وحدة معالجة الرسومات NVIDIA من مضيف Proxmox VE 8 إلى حاوية Proxmox VE 8 LXC. لقد أظهرنا لك أيضًا كيفية تثبيت نفس الإصدار من برامج تشغيل NVIDIA GPU على حاوية Proxmox VE 8 كمضيف Proxmox VE. أخيرًا، أوضحنا لك كيفية تثبيت NVIDIA CUDA وNVIDIA cuDNN على حاوية Ubuntu 22.04 LTS Proxmox VE 8 وتجميع وتشغيل برنامج NVIDIA CUDA البسيط على حاوية Proxmox VE 8.

مراجع: