יצירת מכונת TPU וירטואלית

במאמר הזה נסביר איך ליצור מכונה וירטואלית (VM) של TPU. מכונת TPU VM נקראת גם פרוסת TPU במארח יחיד.

כדי ליצור קבוצה של פרוסות TPU במארח יחיד, אפשר לעיין במאמר בנושא יצירת קבוצת מופעים לניהול עם פרוסות TPU במארח יחיד.

לפני שמתחילים

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

דרישות מוקדמות

לפני שיוצרים מופע TPU, צריך לבצע את הפעולות הבאות:

  1. בחירת גרסת ה-TPU: בוחרים את גרסת ה-TPU שמתאימה לעומס העבודה. רשימה של גרסאות TPU לפי סוג עומס העבודה זמינה במאמר גרסאות TPU מומלצות לפי סוגי עומסי עבודה.

  2. מוודאים שה-TPU זמין במיקום המועדף: מכשירי TPU זמינים באזורים ספציפיים של Google Cloud Google Cloud. כדי להשתמש בגרסת TPU, צריך לוודא שהיא זמינה באזור המועדף. כאן מפורטת רשימת המיקומים של TPU.

  3. מוודאים שיש בפרויקט מכסת TPU מספקת: אם יוצרים מופע TPU עם מכונות וירטואליות לפי דרישה או מכונות וירטואליות מסוג Spot, צריך לוודא שיש מכסת TPU מספקת באזור שבו רוצים להשתמש. כשיוצרים מכונת TPU שצורכת הזמנת TPU, לא נדרשת מכסת TPU כי המכסה משמשת כשיוצרים את ההזמנה. רשימה של שמות מכסות TPU מופיעה במאמר מכסת TPU. במאמר איך רואים ומנהלים את המכסות מוסבר איך לראות את המכסה.

  4. בחירת אפשרות צריכה של TPU: בוחרים את אפשרות הצריכה שהכי מתאימה לעומס העבודה, למשך הזמן ולצרכים שלכם מבחינת עלויות. רשימת האפשרויות לצריכה לפי גרסאות TPU זמינה במאמר אפשרויות צריכה של TPU.

יצירת מכונת TPU וירטואלית

הפרמטרים שבהם משתמשים כדי ליצור TPU VM תלויים באפשרות הצריכה שבה משתמשים: לפי דרישה, Spot, מוגבלת להזמנה או הפעלה גמישה. מידע נוסף זמין במאמר על מודלים של הקצאת משאבים למכונות וירטואליות.

יצירת מכונת TPU וירטואלית על פי דרישה

כדי ליצור מכונה וירטואלית של TPU על פי דרישה, משתמשים בפקודה gcloud compute instances create:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/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/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • TPU_NAME: שם ל-TPU VM שלך.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).

יצירת מכונה וירטואלית של TPU Spot

כדי ליצור מכונת TPU זמנית מסוג Spot, משתמשים בפקודה gcloud compute instances create עם הדגל --provisioning-model=SPOT:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • TPU_NAME: שם ל-TPU VM שלך.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).

יצירת TPU VM באמצעות מקום שמור

כדי ליצור TPU VM באמצעות אפשרות הצריכה שמקושרת למקום שמור, משתמשים בפקודה gcloud compute instances create עם הדגלים --reservation-affinity=specific ו---reservation:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=reservation-bound \
  --reservation-affinity=specific \
  --reservation=RESERVATION_NAME \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "RESERVATION_BOUND",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "SPECIFIC_RESERVATION",
      "key": "compute.googleapis.com/reservation-name",
      "values": [
        "RESERVATION_NAME"
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • TPU_NAME: שם ל-TPU VM שלך.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).
  • RESERVATION_NAME: השם של ההזמנה.

יצירת מכונת TPU וירטואלית עם הפעלה גמישה

כדי ליצור מכונה וירטואלית של TPU Flex-start, משתמשים בפקודה gcloud compute instances create עם הדגל --provisioning-model=FLEX_START:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=FLEX_START \
  --max-run-duration=MAX_RUN_DURATION \
  --request-valid-for-duration=VALID_DURATION \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "params": {
      "requestValidForDuration": {
        "seconds": VALID_DURATION
      }
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START",
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": MAX_RUN_DURATION
      }
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • TPU_NAME: שם ל-TPU VM שלך.
  • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
  • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).
  • MAX_RUN_DURATION: משך ההפעלה המקסימלי של TPU VM (לדוגמה, 6h). ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה, 21600 ל-6 שעות).
  • VALID_DURATION: משך הזמן המקסימלי שהבקשה תקפה. ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה, 3600 לשעה אחת). הבקשה תקפה.

מידע נוסף על יצירת מכונות של Compute Engine זמין במאמר יצירה והפעלה של מכונה של Compute Engine.

מגבלות

  • פעולות במחזור החיים: אי אפשר להפסיק, להתחיל, להמשיך או להשהות מופעי TPU. כדי לשנות הגדרות שדורשות הפעלה מחדש או כדי להפסיק את החיובים, צריך למחוק את המופעים.

  • עדכון פרטי מכונה וירטואלית: אפשר לעדכן את המאפיינים שדורשים רק רענון (REFRESH). אם ההגדרה דורשת הפעלה מחדש (RESTART), צריך ליצור מחדש את המכונה.

המאמרים הבאים