אם אתם צריכים מכונה וירטואלית לשימוש כללי עם אפשרות להוסיף GPU להאצה מתונה, אתם יכולים ליצור מכונות מחשוב עם מעבדי GPU מצורפים במכונות N1 לשימוש כללי שלGoogle Cloud Compute Engine. חיבור של יחידות GPU מדורות קודמים (כמו T4, V100 ו-P4) למכונות וירטואליות מסוג N1 מספק גמישות משתלמת למשימות AI בקנה מידה קטן יותר או פחות קריטיות לביצועים, לתחנות עבודה וירטואליות מרוחקות ולהמרת קידוד של וידאו. רוב סוגי המכונות מסדרת N1 תומכים בחיבור של GPUs, חוץ ממכונות עם ליבת מעבד משותפת מסדרת N1.
אם עומס העבודה העיקרי שלכם דורש שימוש אינטנסיבי ב-GPU ויכול להפיק תועלת מהארכיטקטורות העדכניות של GPU ומאופטימיזציות של פלטפורמות, כדאי לבחור מכונות מסדרת A או מסדרת G שעברו אופטימיזציה למאיצים.
לפני שמתחילים
- כדי לבדוק את השלבים הנוספים שצריך לבצע, כמו בחירת קובץ אימג' של מערכת ההפעלה ובדיקת המכסה של ה-GPU, עיינו במסמך סקירה כללית.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת מכונות וירטואליות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת מכונות וירטואליות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מכונות וירטואליות, צריך את ההרשאות הבאות:
-
compute.instances.createבפרויקט -
כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM):
compute.images.useReadOnlyבקובץ אימג' -
כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית:
compute.snapshots.useReadOnlyבקובץ snapshot -
כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית:
compute.instanceTemplates.useReadOnlyבתבנית של הגדרות המכונה -
כדי לציין רשת משנה למכונה הווירטואלית:
compute.subnetworks.useבפרויקט או ברשת המשנה שנבחרה -
כדי לציין כתובת IP סטטית למכונה הווירטואלית:
compute.addresses.useבפרויקט -
כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC:
compute.subnetworks.useExternalIpבפרויקט או ברשת המשנה שנבחרה -
כדי להקצות רשת מדור קודם למכונה הווירטואלית:
compute.networks.useבפרויקט -
כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם:
compute.networks.useExternalIpבפרויקט -
כדי להגדיר מטא-נתונים של המכונה הווירטואלית:
compute.instances.setMetadataבפרויקט -
כדי להגדיר תגים למכונה הווירטואלית:
compute.instances.setTagsבמכונה הווירטואלית -
כדי להגדיר תוויות למכונה הווירטואלית:
compute.instances.setLabelsבמכונה הווירטואלית -
כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית:
compute.instances.setServiceAccountבמכונה הווירטואלית -
כדי ליצור דיסק חדש למכונה הווירטואלית:
compute.disks.createבפרויקט -
כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה:
compute.disks.useבדיסק -
כדי לצרף דיסק קיים במצב קריאה-בלבד:
compute.disks.useReadOnlyבדיסק
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
סקירה כללית
אפשר לצרף את המודלים הבאים של GPU למכונות וירטואליות שמשתמשות בסדרות מכונות N1.
מעבדי GPU של NVIDIA:- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA V100:
nvidia-tesla-v100
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vwsעבור תחנות עבודה וירטואליות כאלה, רישיון NVIDIA RTX Virtual Workstation (vWS) נוסף באופן אוטומטי למופע שלכם.
יצירת מכונה וירטואלית עם GPUs מצורפים
אפשר ליצור מכונת N1 וירטואלית עם כרטיסי GPU מצורפים באמצעות מסוףGoogle Cloud , Google Cloud CLI או REST.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מציינים שם למכונה הווירטואלית. מוסכמות למתן שמות למשאבים
בוחרים אזור ותחום שבהם יש יחידות GPU. כאן מפורטת רשימת האזורים שבהם אפשר להשתמש ב-GPU.
בקטע Machine configuration, בוחרים את משפחת המכונות GPUs ומבצעים את הפעולות הבאות:
- ברשימה GPU type בוחרים באחד ממודלי ה-GPU שנתמכים במכונות N1.
- ברשימה Number of GPUs (מספר יחידות ה-GPU), בוחרים את מספר יחידות ה-GPU.
אם מודל ה-GPU שלכם תומך בתחנות עבודה וירטואליות (vWS) של NVIDIA RTX לעומסי עבודה של גרפיקה, ואתם מתכננים להריץ עומסי עבודה עתירי גרפיקה במכונה הווירטואלית הזו, צריך לבחור באפשרות הפעלת תחנת עבודה וירטואלית (NVIDIA GRID).
ברשימה Machine type, בוחרים אחד מסוגי המכונות N1 שהוגדרו מראש. לחלופין, אפשר גם לציין הגדרות של סוג מכונה בהתאמה אישית.
בקטע דיסק אתחול לוחצים על Change. ייפתח הדף Boot disk configuration (הגדרת דיסק האתחול).
בדף תצורת דיסק אתחול, מבצעים את הפעולות הבאות:
- בכרטיסייה תמונות ציבוריות, בוחרים תמונה נתמכת של Compute Engine או תמונות של מכונות וירטואליות ללמידה עמוקה.
- מציינים גודל של דיסק האתחול של 40GB לפחות.
- כדי לאשר את האפשרויות של דיסק האתחול, לוחצים על Select.
אופציונלי: ברשימה VM provisioning model בוחרים מודל הקצאת משאבים.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.
gcloud
כדי ליצור ולהפעיל מכונה וירטואלית, משתמשים בפקודה gcloud compute instances create עם הדגלים הבאים.
אם עומס העבודה שלכם סובל תקלות או יכול להתחיל בכל זמן, כדאי לשקול שימוש במודל הקצאה שונה כדי להקטין את העלויות. כדי לשנות את מודל ההקצאה, מוסיפים את הדגל --provisioning-model=PROVISIONING_MODEL לפקודה.
מידע נוסף על המודלים הזמינים מופיע במאמר בנושא מודלים של הקצאת מכונות וירטואליות ב-Compute Engine.
gcloud compute instances create VM_NAME \
--machine-type MACHINE_TYPE \
--zone ZONE \
--boot-disk-size DISK_SIZE \
--accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
[--image IMAGE | --image-family IMAGE_FAMILY] \
--image-project IMAGE_PROJECT \
--maintenance-policy TERMINATE \
[--provisioning-model=PROVISIONING_MODEL]
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה הווירטואלית החדשה. -
MACHINE_TYPE: סוג המכונה שבחרתם למכונה הווירטואלית. -
ZONE: האזור של המכונה הווירטואלית. האזור הזה חייב לתמוך בסוג ה-GPU. -
DISK_SIZE: הגודל של דיסק האתחול בגיגה-בייט. מציינים גודל של דיסק האתחול של 40GB לפחות.
IMAGEאוIMAGE_FAMILYעם תמיכה במעבדי GPU. מציינים אחת מהאפשרויות הבאות:-
IMAGE: הגרסה הנדרשת של תמונה ציבורית. לדוגמה,--image debian-10-buster-v20200309. -
IMAGE_FAMILY: משפחת תמונות. כך נוצרת מכונה וירטואלית מקובץ אימג' של מערכת ההפעלה העדכני ביותר שלא הוצא משימוש. לדוגמה, אם מציינים--image-family debian-10, Compute Engine יוצר מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות Debian 10.
אפשר גם לציין קובץ אימג' בהתאמה אישית או קובצי אימג' של Deep Learning VM.
-
IMAGE_PROJECT: פרויקט האימג' ב-Compute Engine שאליו שייכת משפחת האימג'ים. אם אתם משתמשים בתמונה בהתאמה אישית או בתמונות VM של למידה עמוקה (Deep Learning), ציינו את הפרויקט שאליו התמונות האלה שייכות.
PROVISIONING_MODEL: מודל ההקצאה של המכונה הווירטואלית. צריך לצייןSPOTאוFLEX_START. אם לא מציינים מודל הקצאת הרשאות, המערכת משתמשת במודל הרגיל. הדגל הזה הוא אופציונלי.
ACCELERATOR_COUNT: מספר ה-GPU שרוצים להוסיף למכונה הווירטואלית. במאמר GPUs on Compute Engine מפורטות מגבלות ה-GPU לפי סוג המכונה של המכונה הווירטואלית.
ACCELERATOR_TYPE: מודל ה-GPU שבו רוצים להשתמש. אם אתם מתכננים להריץ עומסי עבודה עתירי גרפיקה במכונה הווירטואלית הזו, כדאי להשתמש באחד מהמודלים של תחנות עבודה וירטואליות.בוחרים אחד מהערכים הבאים:
מעבדי GPU של NVIDIA:
- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vwsעבור תחנות עבודה וירטואליות כאלה, רישיון NVIDIA RTX Virtual Workstation (vWS) מתווסף באופן אוטומטי למופע שלכם.
- NVIDIA T4 Virtual Workstation:
דוגמה
לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי להפעיל מכונה וירטואלית של Ubuntu 22.04 עם מעבד GPU אחד של NVIDIA T4 ו-2 מעבדי vCPU באזור us-east1-d.
gcloud compute instances create gpu-instance-1 \
--machine-type n1-standard-2 \
--zone us-east1-d \
--boot-disk-size 40GB \
--accelerator type=nvidia-tesla-t4,count=1 \
--image-family ubuntu-2204-lts \
--image-project ubuntu-os-cloud \
--maintenance-policy TERMINATE
REST
מזהים את סוג ה-GPU שרוצים להוסיף למכונה הווירטואלית. שולחים בקשת GET כדי להציג את סוגי ה-GPU שזמינים לפרויקט באזור מסוים.
כדי ליצור מכונות וירטואליות במחיר מוזל, אפשר לציין מודל הקצאה שונה על ידי הוספת השדה "provisioningModel":
"PROVISIONING_MODEL" לאובייקט scheduling בבקשה. מידע נוסף על המודלים הזמינים זמין במאמר מודלים להקצאת מכונות וירטואליות ב-Compute Engine.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ZONE: zone שרוצים להציג ממנה את סוגי ה-GPU הזמינים.
שולחים בקשת POST אל ה-method instances.insert.
כוללים את הפרמטר acceleratorType כדי לציין באיזה סוג GPU רוצים להשתמש, ואת הפרמטר acceleratorCount כדי לציין כמה יחידות GPU רוצים להוסיף. צריך גם להגדיר את הפרמטר onHostMaintenance לערך TERMINATE.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"disks":
[
{
"type": "PERSISTENT",
"initializeParams":
{
"diskSizeGb": "DISK_SIZE",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"boot": true
}
],
"name": "VM_NAME",
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/NETWORK"
}
],
"guestAccelerators":
[
{
"acceleratorCount": ACCELERATOR_COUNT,
"acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
}
],
"scheduling":
{
["automaticRestart": true],
"onHostMaintenance": "TERMINATE",
"provisioningModel": "PROVISIONING_MODEL"
},
}
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה הווירטואלית. PROJECT_ID: מזהה הפרויקט.-
ZONE: האזור של המכונה הווירטואלית. באזור הזה צריכה להיות תמיכה בסוג ה-GPU. -
MACHINE_TYPE: סוג המכונה שבחרתם למכונה הווירטואלית. במאמר GPUs on Compute Engine אפשר לראות אילו סוגי מכונות זמינים בהתאם למספר ה-GPU שבחרתם.
IMAGEאוIMAGE_FAMILY: מציינים אחת מהאפשרויות הבאות:-
IMAGE: הגרסה הנדרשת של תמונה ציבורית. לדוגמה,"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309" -
IMAGE_FAMILY: משפחת תמונות. כך המכונה הווירטואלית נוצרת מהתמונה העדכנית ביותר של מערכת ההפעלה, שלא הוצאה משימוש. לדוגמה, אם מציינים"sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine יוצר מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות Debian 10.
אפשר גם לציין תמונה מותאמת אישית או תמונות של מכונות וירטואליות ללמידה עמוקה.
-
IMAGE_PROJECT: פרויקט קובצי האימג' ב-Compute Engine שמשפחת קובצי האימג' שייכת אליו. אם משתמשים בתמונה בהתאמה אישית או בתמונות של מכונות וירטואליות של Deep Learning, צריך לציין את הפרויקט שאליו התמונות האלה שייכות.
DISK_SIZE: הגודל של דיסק האתחול בגיגה-בייט. מציינים גודל של דיסק האתחול של 40GB לפחות.
NETWORK: רשת ה-VPC שבה רוצים להשתמש עבור המכונה הווירטואלית. אפשר לצייןdefaultכדי להשתמש ברשת ברירת המחדל.
ACCELERATOR_COUNT: מספר יחידות ה-GPU שרוצים להוסיף למכונה הווירטואלית. במאמר GPUs on Compute Engine מפורטות המגבלות על GPUs בהתאם לסוג המכונה הווירטואלית.
ACCELERATOR_TYPE: מודל ה-GPU שבו רוצים להשתמש. אם אתם מתכננים להריץ עומסי עבודה עתירי גרפיקה במכונה הווירטואלית הזו, כדאי להשתמש באחד מהמודלים של תחנות עבודה וירטואליות.בוחרים אחד מהערכים הבאים:
מעבדי GPU של NVIDIA:
- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vwsבסביבות העבודה הווירטואליות האלה, רישיון NVIDIA RTX Virtual Workstation (vWS) מתווסף באופן אוטומטי למכונה.
- NVIDIA T4 Virtual Workstation:
PROVISIONING_MODEL: מודל ההקצאה של המכונה הווירטואלית. צריך לצייןSPOTאוFLEX_START. אם לא מציינים מודל הקצאת הרשאות, המערכת משתמשת במודל הרגיל. המאפיין הזה הוא אופציונלי. מידע נוסף על מודלים של הקצאת משאבים זמין במאמר בנושא הקצאת משאבים של מכונות וירטואליות ב-Compute Engine.
התקנת מנהלי התקנים
כדי להתקין את מנהלי ההתקנים, בוחרים באחת מהאפשרויות הבאות:
- אם אתם מתכננים להריץ עומסי עבודה שדורשים הרבה משאבים גרפיים, כמו עומסי עבודה של משחקים וויזואליזציה, תצטרכו להתקין דרייברים עבור תחנת העבודה הווירטואלית NVIDIA RTX.
- ברוב עומסי העבודה, מתקינים את מנהלי ההתקנים של ה-GPU.
מה השלב הבא?
- מידע נוסף על פלטפורמות GPU
- הוספת כונני SSD מקומיים למופעים מכשירי SSD מקומיים מתאימים במיוחד לשימוש עם יחידות GPU כשהאפליקציות שלכם דורשות אחסון עם ביצועים גבוהים.
- התקנת הדרייברים של ה-GPU. אם הפעלתם תחנת עבודה וירטואלית של NVIDIA RTX, צריך להתקין דרייבר לתחנת העבודה הווירטואלית.
- במאמר טיפול באירועי תחזוקה של מארח GPU מוסבר איך מטפלים בתחזוקה של מארח GPU.