כשצריך מכונה וירטואלית לשימוש כללי עם אפשרות להוסיף GPU להאצה מתונה, אפשר ליצור מכונות לחישוב עם יחידות GPU מצורפות בGoogle Cloud מכונות לשימוש כללי מסוג N1 של Compute Engine. צירוף של כרטיסי GPU מהדור הקודם (כמו T4, V100, P100 ו-P4) למכונות וירטואליות מסוג N1 מספק גמישות חסכונית למשימות AI בקנה מידה קטן יותר או פחות קריטיות לביצועים, לתחנות עבודה וירטואליות מרוחקות ולהמרת וידאו. רוב סוגי המכונות N1 תומכים ב-GPU מצורף, למעט מכונות N1 עם ליבת מעבד משותפת.
אם עומס העבודה העיקרי שלכם דורש שימוש אינטנסיבי ב-GPU ויכול להפיק תועלת מארכיטקטורות ה-GPU העדכניות ומאופטימיזציות של הפלטפורמה, כדאי לבחור מכונות מסדרות A או G שעברו אופטימיזציה להאצה.
לפני שמתחילים
- כדי לעיין בשלבים נוספים של דרישות מוקדמות, כמו בחירת תמונת מערכת הפעלה ובדיקת מכסת ה-GPU, אפשר לעיין במסמך הסקירה הכללית.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
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 P100:
nvidia-tesla-p100 - NVIDIA V100:
nvidia-tesla-v100
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws - תחנת עבודה וירטואלית NVIDIA P4:
nvidia-tesla-p4-vws תחנת עבודה וירטואלית NVIDIA P100:
nvidia-tesla-p100-vwsלכל תחנות העבודה הווירטואליות האלה, רישיון של תחנת עבודה וירטואלית (vWS) של NVIDIA RTX מתווסף אוטומטית למופע.
יצירת מכונה וירטואלית עם יחידות GPU מצורפות
אפשר ליצור מכונת N1 וירטואלית עם כרטיסי GPU מצורפים באמצעות מסוףGoogle Cloud , Google Cloud CLI או REST.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מציינים שם למכונה הווירטואלית. מוסכמות למתן שמות למשאבים
בוחרים אזור ותחום שבהם יש יחידות GPU זמינות. כאן מפורטת רשימת האזורים שבהם אפשר להשתמש ב-GPU.
בקטע Machine configuration, בוחרים את משפחת המכונות GPUs ומבצעים את הפעולות הבאות:
- ברשימה GPU type (סוג ה-GPU), בוחרים אחד ממודלי ה-GPU שנתמכים במכונות N1.
- ברשימה Number of GPUs (מספר יחידות ה-GPU), בוחרים את מספר יחידות ה-GPU.
אם דגם ה-GPU שלכם תומך בתחנות עבודה וירטואליות של NVIDIA RTX (vWS) לעומסי עבודה של גרפיקה, ואתם מתכננים להריץ עומסי עבודה עתירי גרפיקה במכונה הווירטואלית הזו, בוחרים באפשרות הפעלת תחנת עבודה וירטואלית (NVIDIA GRID).
ברשימה Machine type (סוג מכונה), בוחרים אחד מסוגי המכונות המוגדרים מראש מסוג N1. אפשרות נוספת היא לציין הגדרות מותאמות אישית של סוג המכונה.
בקטע דיסק אתחול לוחצים על Change. ייפתח הדף Boot disk configuration (הגדרת דיסק האתחול).
בדף תצורת דיסק אתחול, מבצעים את הפעולות הבאות:
- בכרטיסייה Public images, בוחרים תמונה נתמכת של Compute Engine או Deep Learning VM Images.
- מציינים גודל של דיסק האתחול של 40 GB לפחות.
- כדי לאשר את האפשרויות של דיסק האתחול, לוחצים על בחירה.
אופציונלי: ברשימה 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: סוג המכונה שבחרתם עבור ה-VM. -
ZONE: האזור של המכונה הווירטואלית. באזור הזה צריכה להיות תמיכה בסוג ה-GPU. -
DISK_SIZE: הגודל של דיסק האתחול ב-GB. מציינים גודל של דיסק האתחול של 40 GB לפחות.
IMAGEאוIMAGE_FAMILYשתומכים ב-GPU. מציינים אחת מהאפשרויות הבאות:-
IMAGE: הגרסה הנדרשת של תמונה ציבורית. לדוגמה,--image debian-10-buster-v20200309. -
IMAGE_FAMILY: משפחת תמונות. כך נוצרת מכונה וירטואלית מתמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים--image-family debian-10, Compute Engine יוצר מכונה וירטואלית מהגרסה האחרונה של תמונת מערכת ההפעלה במשפחת תמונות Debian 10.
אפשר גם לציין תמונה מותאמת אישית או תמונות VM של למידה עמוקה.
-
IMAGE_PROJECT: פרויקט האימג' ב-Compute Engine שאליו שייכת משפחת האימג'ים. אם משתמשים בתמונה בהתאמה אישית או בתמונות של מכונות וירטואליות של 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 P100:
nvidia-tesla-p100 - NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws - תחנת עבודה וירטואלית NVIDIA P4:
nvidia-tesla-p4-vws תחנת עבודה וירטואלית NVIDIA P100:
nvidia-tesla-p100-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.
אפשר גם לציין תמונה מותאמת אישית או תמונות VM של למידה עמוקה.
-
IMAGE_PROJECT: פרויקט האימג' ב-Compute Engine שאליו שייכת משפחת האימג'ים. אם משתמשים בתמונה בהתאמה אישית או בתמונות של מכונות וירטואליות של Deep Learning, צריך לציין את הפרויקט שאליו התמונות האלה שייכות.
DISK_SIZE: הגודל של דיסק האתחול ב-GB. מציינים גודל של דיסק האתחול של 40 GB לפחות.
NETWORK: רשת ה-VPC שבה רוצים להשתמש עבור המכונה הווירטואלית. אפשר לצייןdefaultכדי להשתמש ברשת ברירת המחדל.
ACCELERATOR_COUNT: מספר יחידות ה-GPU שרוצים להוסיף למכונה הווירטואלית. במאמר GPUs on Compute Engine מופיעה רשימה של מגבלות ה-GPU לפי סוג המכונה של המכונה הווירטואלית.
ACCELERATOR_TYPE: דגם ה-GPU שבו רוצים להשתמש. אם אתם מתכננים להריץ במכונה הווירטואלית הזו עומסי עבודה שדורשים הרבה משאבים גרפיים, כדאי להשתמש באחד מהמודלים של תחנות עבודה וירטואליות.בוחרים אחד מהערכים הבאים:
מעבדי GPU של NVIDIA:
- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA P100:
nvidia-tesla-p100 - NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (לשעבר NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws - תחנת עבודה וירטואלית NVIDIA P4:
nvidia-tesla-p4-vws תחנת עבודה וירטואלית NVIDIA P100:
nvidia-tesla-p100-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.