יצירת קבוצת MIG עם פרוסות Cloud TPU של מארח יחיד
במאמר הזה מוסבר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם כמה פרוסות TPU עצמאיות של מארח יחיד.
דרישות מוקדמות
צריך לוודא שמתקיימות הדרישות המוקדמות הבאות:
- יוצרים פרויקט ל-TPU כמו שמתואר במאמר הגדרת פרויקט ל-TPU.
- קובעים את הדרישות שלכם ל-TPU כמו שמתואר במאמר תכנון המשאבים.
יצירת MIG עם כמה פרוסות TPU של מארח יחיד
כדי ליצור כמה מכונות וירטואליות עצמאיות של TPU ב-MIG:
- יוצרים תבנית של הגדרות מכונה.
- יוצרים את ה-MIG.
יצירת תבנית של הגדרות מכונה
ההגדרות של תבנית של הגדרות מכונה משתנות בהתאם לאפשרות הצריכה שבה אתם משתמשים: על פי דרישה, Spot, מקום שמור או התחלה גמישה (Flex-start). מידע נוסף על אפשרויות השימוש מופיע במאמר תכנון משאבי TPU.
יצירת תבנית של הגדרות מכונה עבור TPU VM לפי דרישה
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה על פי דרישה:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה. -
MACHINE_TYPE: סוג המכונה של מכונת ה-TPU הווירטואלית (לדוגמה,ct6e-standard-8t). -
IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה. -
IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של הגדרות מכונה עבור VM במודל Spot של TPU
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Spot:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה. -
MACHINE_TYPE: סוג המכונה של מכונת ה-TPU (לדוגמה,ct6e-standard-8t). -
IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה. -
IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של הגדרות מכונה למכונה וירטואלית שמשויכת למקום שמור של TPU
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה reservation-bound:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t). -
RESERVATION_NAME: השם של הזמנה ספציפית שרוצים להשתמש בה. -
IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה. -
IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת תבנית של מכונה וירטואלית עם TPU Flex-start
הפקודה הבאה יוצרת תבנית של הגדרות מכונה שמשתמשת באפשרות הצריכה Flex-start:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
INSTANCE_TEMPLATE_NAME: השם של תבנית הגדרות המכונה. -
MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,ct6e-standard-8t). -
DURATION: משך ההרצה המקסימלי של מכונת ה-TPU הווירטואלית. ב-REST, מציינים את הערך הזה כמחרוזת שמכילה את מספר השניות ואחריה האות s (לדוגמה,3600sל-1 שעה או604800sל-7 ימים). -
IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל--image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה. -
IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images.
יצירת קבוצת מופעים מנוהלת (MIG)
כדי ליצור קטע TPU של מארח יחיד ב-MIG אזורי, משתמשים בפקודה הבאה:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL"
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
MIG_NAME: השם של קבוצת ה-MIG. -
MIG_SIZE: הגודל של ה-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
ZONE: האזור של ה-MIG.
כדי ליצור קבוצת MIG אזורית שמכילה פרוסת TPU של מארח יחיד, משתמשים בפקודה הבאה:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--region=REGION \
--target-distribution-shape=ANY_SINGLE_ZONE \
--instance-redistribution-type=none
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
MIG_NAME: השם של קבוצת ה-MIG. -
MIG_SIZE: מספר המכונות הווירטואליות ב-MIG. -
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
-
ZONE: האזור שבו רוצים להקצות את ה-MIG. -
REGION: האזור שבו רוצים להקצות את ה-MIG.
יצירת מכונות וירטואליות עם שמות בהתאמה אישית ב-MIG
אפשר ליצור מכונות וירטואליות ב-MIG על ידי ציון שמות בהתאמה אישית לכל מכונה וירטואלית. האפשרות הזו שימושית לניפוי באגים ולוודא שהמופעים נוצרים בסדר מסוים.
gcloud
יוצרים מכונה וירטואלית עם שם מותאם אישית באמצעות הפקודה create-instance ומציינים את הדגל --instance. כדי ליצור כמה מכונות וירטואליות, חוזרים על הפקודה לכל מכונה וירטואלית. אחרת, השתמשו בשיטת API בארכיטקטורת REST כדי לציין כמה מכונות וירטואליות בבקשה אחת.
ל-MIG אזורי, משתמשים בפקודה הבאה:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEל-MIG אזורי, משתמשים בפקודה הבאה:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
מחליפים את ה-placeholders הבאים:
REST
כדי ליצור מכונות וירטואליות עם שמות בהתאמה אישית, משתמשים באחת מהשיטות הבאות של API בארכיטקטורת REST:
בשביל MIG אזורי, משתמשים ב-
instanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }ל-MIG אזורי, משתמשים ב-
regionInstanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
מחליפים את ה-placeholders הבאים:
המאמרים הבאים
- מידע נוסף על מכונות VM של TPU ועל MIG
- איך יוצרים MIG עם פרוסת Cloud TPU מרובת מארחים
- איך מנהלים מכונות וירטואליות של TPU
- מידע על TPU ב-GKE
- לדוגמה, איך מפעילים עומס עבודה של ML ב-TPU באמצעות vLLM ב-TPU.