כיצד להעביר את ה-NVIDIA GPU למכולות Proxmox VE 8 עבור האצת CUDA/AI והמרת מדיה

Kyzd Lh Byr T H Nvidia Gpu Lmkwlwt Proxmox Ve 8 Bwr H Zt Cuda Ai Whmrt Mdyh



אם יש לך NVIDIA GPU מותקן על שרת Proxmox VE שלך, אתה יכול להעביר אותו למיכל Proxmox VE LXC ולהשתמש בו במיכל להאצת CUDA/AI (כלומר TensorFlow, PyTorch). אתה יכול גם להשתמש ב-NVIDIA GPU עבור המרת מדיה, הזרמת וידאו וכו' במיכל Proxmox VE LXC עם Plex Media Server או NextCloud המותקן (לדוגמה).

במאמר זה נראה לך כיצד להעביר GPU של NVIDIA למיכל Proxmox VE 8 LXC כך שתוכל להשתמש בו עבור האצת CUDA/AI, המרת מדיה או משימות אחרות הדורשות NVIDIA GPU.







נושא התוכן:

התקנת מנהלי ההתקן של NVIDIA GPU ב-Proxmox VE 8

כדי להעביר NVIDIA GPU למיכל Proxmox VE LXC, עליך להתקין את מנהלי ההתקן של NVIDIA GPU בשרת Proxmox VE 8 שלך. אם אתה זקוק לסיוע כלשהו בהתקנת הגרסה העדכנית ביותר של מנהלי ההתקן הרשמיים של NVIDIA GPU בשרת Proxmox VE 8 שלך, לקרוא את המאמר הזה .



לוודא שמודולי ליבת ה-NVIDIA GPU נטענים ב-Proxmox VE 8 באופן אוטומטי

לאחר שהתקנת את מנהלי ההתקן של NVIDIA GPU בשרת ה-Proxmox VE 8 שלך, עליך לוודא שמודולי ליבת ה-NVIDIA GPU נטענים אוטומטית בזמן האתחול.



ראשית, צור קובץ חדש כמו 'nvidia.conf' בספריית '/etc/modules-load.d/' ופתח אותו עם עורך הטקסט הננו.





$ ננו / וכו / modules-load.d / nvidia.conf

הוסף את השורות הבאות ולחץ + איקס ואחריו 'Y' ו כדי לשמור את הקובץ 'nvidia.conf':



nvidia

nvidia_uvm

כדי שהשינויים ייכנסו לתוקף, עדכן את קובץ 'initramfs' בפקודה הבאה:

$ update-initramfs

מסיבה כלשהי, Proxmox VE 8 אינו יוצר את קבצי התקן ה-NVIDIA GPU הנדרשים בספריית '/dev/'. ללא קבצי המכשירים הללו, מיכלי Promox VE 8 LXC לא יוכלו להשתמש ב-NVIDIA GPU.

כדי לוודא ש-Proxmox VE 8 יוצר את קבצי מכשירי ה-NVIDIA GPU בספריית '/dev/' בזמן האתחול, צור קובץ udev חוקים '70-nvidia.rules' בקובץ '/etc/udev/rules.d/' ספרייה ופתח אותה עם עורך הטקסט הננו באופן הבא:

$ ננו / וכו / 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 שלך. שימו לב למזהי CGgroup של קבצי מכשירי NVIDIA. עליך לאפשר את מזהי ה-Cgroup האלה במיכל ה-LXC שבו ברצונך להעביר את ה-NVIDIA GPUs משרת ה-Proxmox VE 8 שלך. במקרה שלנו, מזהי ה-Cgroup הם 195, 237 ו-226.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dri

יצירת מיכל Proxmox VE 8 LXC עבור מעבר של NVIDIA GPU

השתמשנו במיכל של אובונטו 22.04 LTS Proxmox VE 8 LXC במאמר זה עבור ההדגמה מכיוון שקל להתקין את ספריות NVIDIA CUDA ו-NVIDIA cuDNN על אובונטו 22.04 LTS ממאגרי החבילות של אובונטו וקל יותר לבדוק אם האצת NVIDIA CUDA עובדת . אם תרצה, תוכל להשתמש גם בהפצות לינוקס אחרות. במקרה זה, פקודות ההתקנה של NVIDIA CUDA ו-NVIDIA cuDNN ישתנו. הקפד לעקוב אחר הוראות ההתקנה של NVIDIA CUDA ו-NVIDIA cuDNN עבור הפצת הלינוקס הרצויה.

אם אתה זקוק לסיוע כלשהו ביצירת מיכל Proxmox VE 8 LXC, לקרוא את המאמר הזה .

הגדרת מיכל LXC עבור מעבר GPU של NVIDIA ב-Promox VE 8

כדי להגדיר קונטיינר LXC (מכל 102, נניח) עבור מעבר של NVIDIA GPU, פתח את קובץ התצורה של מיכל LXC מהמעטפת של Proxmox VE עם עורך הטקסט הננו באופן הבא:

$ ננו / וכו / pve / 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          מפתחים / 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.

אם המעבר של ה-NVIDIA GPU מצליח, ה-LXC המכיל אמור להתחיל ללא כל שגיאה, ואתה אמור לראות את קבצי מכשיר ה-NVIDIA בספריית '/dev' של המכולה.

$ ls -lh / dev / nvidia *

$ ls -lh / dev / dri

התקנת מנהלי ההתקן של NVIDIA GPU במיכל ה-Proxmox VE 8 LXC

אנו משתמשים במיכל של Ubuntu 22.04 LTS LXC בשרת Proxmox VE 8 שלנו להדגמה. אם אתה משתמש בהפצה אחרת של לינוקס במיכל ה-LXC, הפקודות שלך ישתנו מעט משלנו. לכן, הקפד להתאים את הפקודות בהתאם להפצת לינוקס שבה אתה משתמש במיכל.

אתה יכול למצוא את גרסת מנהלי ההתקן של NVIDIA GPU שהתקנת בשרת Proxmox VE 8 שלך עם הפקודה 'nvidia-smi'. כפי שאתה יכול לראות, יש לנו את מנהלי ההתקן של NVIDIA GPU גרסה 535.146.02 המותקנת בשרת Proxmox VE 8 שלנו. לכן, עלינו להתקין את מנהלי ההתקן של NVIDIA GPU גרסה 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 --ללא-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 שלנו בצורה נכונה.

$ nvidia-smi

התקנת NVIDIA CUDA ו-cuDNN על ה-Proxmox VE 8 LXC Container

אנו משתמשים במיכל של Ubuntu 22.04 LTS LXC בשרת Proxmox VE 8 שלנו להדגמה. אם אתה משתמש בהפצה אחרת של לינוקס במיכל ה-LXC, הפקודות שלך ישתנו מעט משלנו. לכן, הקפד להתאים את הפקודות בהתאם להפצת לינוקס שבה אתה משתמש במיכל.

כדי להתקין את 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 באופן הבא:

$ nvcc --גִרְסָה

כפי שאתה יכול לראות, מותקן לנו NVIDIA CUDA 11.5 על מיכל ה-Proxmox VE 8 שלנו.

כעת, בוא נכתוב, נרכיב ונפעיל תוכנית CUDA C פשוטה ונראה אם ​​הכל עובד כמצופה.

ראשית, צור ספריית פרויקט '~/code' במכולה של Proxmox VE 8 כדי לשמור על סדר הקבצים.

$ mkdir ~ / קוד

נווט אל ספריית הפרויקט '~/code' באופן הבא:

$ CD `/ קוד

צור קובץ חדש כמו 'hello.cu' בספריית '~/code' של המכולה של Proxmox VE 8 ופתח אותו עם עורך הטקסט הננו:

$ ננו hello.cu

הקלד את שורות הקוד הבאות בקובץ 'hello.cu':

#include

__גלובלי__ void תגיד שלום ( ) {
printf ( 'שלום עולם מה-GPU! \n ' ) ;
}

int main ( ) {
printf ( 'שלום עולם מהמעבד! \n ' ) ;

תגיד שלום << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

לַחֲזוֹר 0 ;
}

לאחר שתסיים, הקש + איקס ואחריו 'Y' ו כדי לשמור את הקובץ 'hello.cu'.

כדי להרכיב את תוכנית 'hello.cu' CUDA במיכל Proxmox VE 8, הפעל את הפקודות הבאות:

$ nvcc hello.cu -או שלום

כעת, אתה יכול להפעיל את תוכנית 'שלום' CUDA במיכל Proxmox VE 8 באופן הבא:

$ . / שלום

אם מיכל Proxmox VE 8 יכול להשתמש ב-NVIDIA GPU עבור האצת NVIDIA CUDA, התוכנית תדפיס שתי שורות כפי שמוצג בצילום המסך הבא.

אם ה-NVIDIA GPU אינו נגיש מהמכולה של Proxmox VE 8, התוכנית תדפיס רק את השורה הראשונה שהיא 'Hello world from CPU!', ולא את השורה השנייה.

סיכום

במאמר זה, הראינו לך כיצד להעביר GPU 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.

הפניות: