יצירת מכונות וירטואליות של TPU Flex-start באמצעות Compute Engine
מכונות וירטואליות מסוג TPU Flex-start, שמבוססות על Dynamic Workload Scheduler, מציעות דרך גמישה וחסכונית לגשת למשאבי TPU לעומסי עבודה של AI למשך עד 7 ימים בלי הזמנות לטווח ארוך. כשמבקשים מכונות וירטואליות עם TPU Flex-start, הבקשה נשארת בתור עד שהקיבולת הנדרשת תהיה זמינה. אחרי ההקצאה, מכונות ה-TPU הווירטואליות פועלות למשך הזמן שציינתם.
מכונות וירטואליות עם TPU Flex-start מתאימות לניסויים מהירים, לבדיקות בקנה מידה קטן, להקצאה דינמית של TPUs לעומסי עבודה של הסקת מסקנות, לכוונון עדין של מודלים ולהרצת עומסי עבודה שנמשכים פחות מ-7 ימים. מידע נוסף על אפשרויות אחרות לצריכת TPU זמין במאמר אפשרויות לצריכת Cloud TPU.
אתם יכולים למחוק את משאבי ה-TPU בכל שלב כדי להפסיק את החיוב. למידע נוסף על תמחור TPU, ראו תמחור Cloud TPU.
מגבלות
למכונות וירטואליות עם TPU Flex-start יש את המגבלות הבאות:
- אפשר לבקש מכונות וירטואליות עם TPU Flex-start למשך עד 7 ימים.
- אפשר לבקש סוגי מכונות TPU7x, TPU v6e ו-TPU v5p. מידע נוסף על האזורים והתחומים שבהם סוגי המכונות האלה זמינים מופיע במאמר אזורים ותחומים של TPU.
יש מגבלות מסוימות ל-MIG עם מעבדי TPU:
פעולות במחזור החיים: אי אפשר להפסיק, להתחיל, להמשיך או להשהות מופעי TPU. כדי לשנות הגדרות שדורשות הפעלה מחדש או כדי להפסיק את החיובים, צריך למחוק את המופעים.
חלוקת אזורים של MIG אזורי: צריך להגדיר את צורת חלוקת היעד לערך
ANY_SINGLE_ZONE.עדכוני הגדרות בקבוצת מופעים מנוהלת (MIG):
- אי אפשר לעדכן קבוצת MIG שיוצרת פלח TPU מרובה מארחים בגלל טופולוגיית המאיץ המוגדרת.
- כדי לעדכן קבוצת MIG שיוצרת פרוסות TPU במארח יחיד, אפשר להשתמש בשיטות אוטומטיות או סלקטיביות.
עם זאת, העדכונים של פרוסת TPU במארח יחיד לא תומכים בפעולת ההפעלה מחדש (
RESTART). אם נדרשת הפעלה מחדש והפעולה הכי משבשת שמותרת היא החלפה (REPLACE), כלי העדכון יחליף את המופע. אחרת, ניסיון העדכון ייכשל עם שגיאה.
בנוסף, המגבלות הבאות חלות על MIG שיוצר פרוסת TPU מרובת מארחים:
המדיניות בנושא גודל יעד: צריך להגדיר את מצב המדיניות בנושא גודל יעד לערך
BULK. אחרי שמגדירים את המצב הזה, אי אפשר לשנות אותו.גודל היעד: במצב של פעולות בכמות גדולה, אפשר להגדיר את גודל היעד ל-
0או למספר המופעים שנדרשים ליצירת הטופולוגיה של המאיץ.מדיניות עומס עבודה: צריך לציין מדיניות עומס עבודה שבה מוגדרת טופולוגיית המאיץ. אחרי שמגדירים את מדיניות העומס, אי אפשר לשנות או להסיר את המדיניות מה-MIG.
תיקונים שהופעלו על ידי MIG: צריך להשבית את התיקונים שהופעלו על ידי MIG על ידי הגדרת השדה
defaultActionOnFailureלערךDO_NOTHING. בהגדרה הזו, קבוצת ה-MIG לא מבצעת פעולה כלשהי על מופע שנכשל. Compute Engine משחזר באופן אוטומטי את המכונה שנכשלה על ידי הפעלה מחדש של כל המכונות באותו פלח בקיבולת תקינה.
תכונות שלא נתמכות: קבוצות MIG עם TPU לא תומכות בתכונות הבאות:
- גמישות של מכונות
- שינוי הגודל של הבקשות כדי לקבל את כל המשאבים בבת אחת
- הגדרה עם שמירת מצב
- ב-MIG שיוצר פרוסת TPU מרובת-מארחים, גם הפעולות הבאות לא נתמכות:
לפני שמתחילים
לפני שמבקשים מכונות וירטואליות עם TPU Flex-start, צריך:
- התקנת Google Cloud CLI
- יצירת Google Cloud פרויקט
- הפעלת Compute Engine API (
compute.googleapis.com) - מוודאים שיש לכם את ההרשאות הנדרשות:
roles/compute.instanceAdmin.v1roles/iam.serviceAccountUser
מידע נוסף זמין במאמר בנושא הגדרת פרויקט של Google Cloud TPU.
חשוב לוודא שיש לכם מספיק מכסות של מכונות וירטואליות עם אפשרות קדימה כדי להשתמש במכונות וירטואליות של TPU Flex-start. אם עומס העבודה שלכם דורש יותר ליבות מההקצאה הנוכחית, אתם יכולים לבקש להגדיל את המכסה. פרטים נוספים זמינים במאמר בנושא מכסות של Cloud TPU.
יצירת מכונות וירטואליות של TPU Flex-start עם קבוצות MIG
כדי להשתמש במכונות וירטואליות עם TPU Flex-start, צריך ליצור קבוצת מופעי מכונה מנוהלים (MIG) עם הגדרה ספציפית של תבנית של הגדרות מכונה.
הוראות כלליות ליצירת מכונות וירטואליות מסוג Flex-start זמינות במאמר יצירת מכונות וירטואליות מסוג Flex-start.
יצירת מכונות וירטואליות של TPU Flex-start עם חלוקה למספר מארחים
יצירת תבנית של הגדרות מכונה
יוצרים תבנית של הגדרות מכונה ומציינים את FLEX_START מודל ההקצאה ואת משך ההרצה הרצוי.
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--provisioning-model=FLEX_START \
--instance-termination-action=DELETE \
--max-run-duration=DURATION \
--region=REGION \
--maintenance-policy=TERMINATE
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/regions/REGION/instanceTemplates"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
- MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,
ct6e-standard-8t). - IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU (לדוגמה,
ubuntu-accelerator-2204-amd64-with-tpu-v6e) - IMAGE_PROJECT: פרויקט תמונת מערכת ההפעלה של ה-TPU VM (לדוגמה,
ubuntu-os-accelerator-images) - DURATION: משך ההרצה המקסימלי.
ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה,
3600לשעה אחת או604800ל-7 ימים). - REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה.
יצירת מדיניות של עומס עבודה
הפקודה הבאה יוצרת מדיניות של עומס עבודה. השלב הזה הוא אופציונלי עבור פרוסות של מארח יחיד.
gcloud
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=TOPOLOGY \
--region=REGION
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "WORKLOAD_POLICY_NAME",
"workloadPolicy": {
"type": "HIGH_THROUGHPUT",
"acceleratorTopology": "TOPOLOGY"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- WORKLOAD_POLICY_NAME: השם של מדיניות עומס העבודה.
- TOPOLOGY: הטופולוגיה של מכונות ה-TPU הווירטואליות, לדוגמה,
4x4x8. - REGION: האזור שבו רוצים ליצור את מדיניות עומס העבודה.
יצירת קבוצת ה-MIG
יוצרים את ה-MIG באמצעות התבנית.
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--zone=ZONE \
--template=INSTANCE_TEMPLATE_URL \
--size=SIZE \
--workload-policy=WORKLOAD_POLICY_URL \
--default-action-on-vm-failure=do-nothing \
--target-size-policy-mode=bulk
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": SIZE,
"targetSizePolicy": {
"mode": "BULK"
},
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"instanceLifecyclePolicy": {
"defaultActionOnFailure": "DO_NOTHING"
},
"resourcePolicies": {
"workloadPolicy": "WORKLOAD_POLICY_URL"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- MIG_NAME: השם של קבוצת ה-MIG.
- ZONE: האזור של ה-MIG.
-
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
- SIZE: מספר המופעים שרוצים ליצור.
- WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות עומס העבודה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. לדוגמה:
projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.
יצירת מכונות וירטואליות של TPU Flex-start עם חלוקות של מארח יחיד
יצירת תבנית של הגדרות מכונה
יוצרים תבנית של הגדרות מכונה ומציינים את FLEX_START מודל ההקצאה ואת משך ההרצה הרצוי.
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--provisioning-model=FLEX_START \
--instance-termination-action=DELETE \
--max-run-duration=DURATION \
--region=REGION \
--maintenance-policy=TERMINATE
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/regions/REGION/instanceTemplates"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
- MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה,
ct6e-standard-8t). - IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU (לדוגמה,
ubuntu-accelerator-2204-amd64-with-tpu-v6e) - IMAGE_PROJECT: פרויקט תמונת מערכת ההפעלה של TPU VM (לדוגמה,
ubuntu-os-accelerator-images) - DURATION: משך ההרצה המקסימלי.
ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה,
3600לשעה אחת או604800ל-7 ימים). - REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה.
יצירת מדיניות של עומס עבודה
הפקודה הבאה יוצרת מדיניות של עומס עבודה. השלב הזה הוא אופציונלי עבור פרוסות של מארח יחיד.
gcloud
gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type=high-throughput \
--region=REGION
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "WORKLOAD_POLICY_NAME",
"workloadPolicy": {
"type": "HIGH_THROUGHPUT"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- WORKLOAD_POLICY_NAME: שם למדיניות של עומס העבודה.
- REGION: האזור שבו רוצים ליצור את מדיניות עומס העבודה.
יצירת קבוצת ה-MIG
יוצרים את ה-MIG באמצעות התבנית.
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--zone=ZONE \
--template=INSTANCE_TEMPLATE_URL \
--size=SIZE \
--workload-policy=WORKLOAD_POLICY_URL
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"resourcePolicies": {
"workloadPolicy": "WORKLOAD_POLICY_URL"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
מחליפים את ה-placeholders הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- MIG_NAME: השם של קבוצת ה-MIG.
- ZONE: האזור של ה-MIG.
-
INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:- לתבנית של הגדרות מכונה אזורית:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - לתבנית גלובלית של הגדרות מכונה:
INSTANCE_TEMPLATE_ID
- לתבנית של הגדרות מכונה אזורית:
- SIZE: מספר המופעים שרוצים ליצור.
- WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות עומס העבודה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. לדוגמה:
projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.