אם יש לך 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
הוסף את השורות הבאות ולחץ
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' ולחץ
גַרעִין == '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 : * rwmlxc.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. לאחר שתסיים, הקש
כעת, הפעל את מיכל ה-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 מותקנים ופועלים, הפעל את הפקודה '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 ;
}
לאחר שתסיים, הקש
כדי להרכיב את תוכנית '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.