יצירת קמפיין A4X למיגרציה שעבר אופטימיזציה באמצעות AI

במסמך הזה מוסבר איך ליצור קבוצת מופעי מכונה מנוהלים (MIG) שמשתמשת בסוגי מכונות A4X. מידע נוסף על סוג המכונה הזה שמותאם למאיצים זמין במאמר A4X.

אם אתם רוצים לנהל כמה מכונות וירטואליות (VM) כישות אחת, אתם יכולים ליצור קבוצת MIG. למידע נוסף על MIGs, קראו את המאמר קבוצות מופעי מכונה מנוהלים במאמרי העזרה של Compute Engine.

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

מגבלות

כשיוצרים קבוצת MIG עם מכונות וירטואליות מסוג A4X, חשוב להביא בחשבון את המגבלות של סוג המכונה ושל קבוצת ה-MIG.

מגבלות של מכונות וירטואליות מסוג A4X

המגבלות הבאות חלות על מכונות ספציפיות:

מגבלות של קבוצת המכונות המנוהלת (MIG)

כשמשתמשים בסוגי המכונות של A4X כדי ליצור MIG, חלות המגבלות הבאות:

  • אתם צריכים להשתמש במודל ההקצאה reservation-bound. אין תמיכה במודלים אחרים של הקצאת הרשאות.

  • אי אפשר להשתמש בבקשה לשינוי כמות כדי להוסיף מכונות A4X ל-MIG. כדי להוסיף את המכונות, צריך להגדיר את גודל היעד של MIG.

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

לפני שיוצרים קבוצת MIG, אם עדיין לא עשיתם זאת, בצעו את השלבים הבאים:

  1. בחירת אפשרות צריכה: אפשרות הצריכה שתבחרו תקבע איך תקבלו את משאבי ה-GPU ותשתמשו בהם. מידע נוסף זמין במאמר בחירת אפשרות צריכה.
  2. השגת קיבולת: התהליך להשגת קיבולת שונה בכל אפשרות צריכה. במאמר סקירה כללית על קיבולת מוסבר איך מקבלים קיבולת לאפשרות הצריכה שבחרתם.
  3. אימות ההרשאות של סוכן השירות של Google APIs: כשיוצרים מכונות וירטואליות ב-MIG, ‏Compute Engine משתמש בסוכן השירות של Google APIs (PROJECT_NUMBER@cloudservices.gserviceaccount.com) בפרויקט. אם בתבנית של הגדרות המכונה נעשה שימוש במשאבים מפרויקט אחר, צריך לוודא שלסוכן השירות הזה יש את ההרשאות הנדרשות:

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות ליצירת קבוצת MIG, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת קבוצת MIG. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי ליצור קבוצת MIG, צריך את ההרשאות הבאות:

  • כדי ליצור קבוצת MIG: ‫compute.instanceGroupManagers.create בפרויקט

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

היסודות של A4X

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

מכונת A4X
מכונת A4X היא סוג מכונה יחיד של A4X עם 4 מעבדי GPU מצורפים.
בלוק משני
בלוק משנה הוא היחידה הבסיסית של קיבולת A4X. ב-A4X, בלוק משנה מורכב מ-18 מכונות A4X (‏72 יחידות GPU). המכונות האלה יוצרות דומיין NVLink ומחוברות באמצעות מערכת NVLink עם כמה צמתים. כדי ליצור בלוק משנה של A4X, צריך להחיל מדיניות עומס עבודה שמציינת טופולוגיה של 1x72.
חסימה
בלוק A4X מורכב מ-25 בלוקי משנה (דומיינים של NVLink), עם עד 450 מכונות A4X‏ (1,800 מעבדי GPU). בלוקי המשנה מיושרים בארכיטקטורת rail-aligned כדי לאפשר התאמה יעילה לעומס. כל בלוק משנה דורש קבוצת MIG. לכן, לבלוק A4X אחד אפשר ליצור 25 קבוצות MIG.

בטבלה הבאה מפורטות אפשרויות הטופולוגיה שנתמכות במכונות A4X:

טופולוגיה (acceleratorTopology) מספר יחידות ה-GPU מספר המופעים
1x72 72 18

סקירה כללית

כדי ליצור קבוצת MIG עם סוג המכונה A4X:

  1. יצירת רשתות VPC
  2. יצירת מדיניות עומס עבודה
  3. יצירת תבנית של הגדרות מכונה
  4. יצירת MIG
  5. התקנת מנהלי התקנים של GPU
  6. אופציונלי: הפעלת מצב GPU עם כמה מופעים במקביל של NVIDIA

יצירת רשתות VPC

כדי להגדיר את הרשת לסוגי מכונות A4X, יוצרים שלוש רשתות VPC לממשקי הרשת הבאים:

  • ‫2 רשתות VPC רגילות לממשקי הרשת (NIC) של gVNIC. לאחר מכן, כרטיסי ה-NIC משתמשים ברשתות ה-VPC האלה לתקשורת בין מארחים.
  • רשת VPC אחת עם פרופיל הרשת RoCE לכרטיסי הרשת CX-7 כשיוצרים כמה בלוקי משנה של A4X. לרשת ה-VPC של RoCE למכונות וירטואליות צריכות להיות 4 רשתות משנה, רשת משנה אחת לכל CX-7 NIC. כרטיסי ה-NIC האלה משתמשים ב-RDMA over Converged Ethernet‏ (RoCE), ומספקים תקשורת עם רוחב פס גבוה וזמן אחזור קצר שחיונית להרחבה אופקית (scale out) לכמה בלוקי משנה של A4X.

למידע נוסף על סידור כרטיסי הרשת, ראו בדיקת רוחב הפס של הרשת וסידור כרטיסי הרשת.

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

מדריכי הוראות

כדי ליצור את הרשתות, אפשר להשתמש בהוראות הבאות:

ברשתות ה-VPC האלה, מגדירים ערך גדול יותר ליחידת ההעברה המקסימלית (MTU). במכונות מסוג A4X, הערך המומלץ של MTU הוא 8896 בייטים. כדי לבדוק את הגדרות ה-MTU המומלצות לסוגי מכונות אחרים של GPU, קראו את המאמר הגדרות MTU לסוגי מכונות של GPU.

Script

כדי ליצור את הרשתות, פועלים לפי השלבים הבאים.

ברשתות ה-VPC האלה, מגדירים ערך גדול יותר ליחידת ההעברה המקסימלית (MTU). במכונות מסוג A4X, הערך המומלץ של MTU הוא 8896 בייטים. כדי לבדוק את הגדרות ה-MTU המומלצות לסוגי מכונות אחרים של GPU, קראו את המאמר הגדרות MTU לסוגי מכונות של GPU.

  1. כדי ליצור רשתות VPC רגילות ל-gVNIC, משתמשים בסקריפט הבא:

    
    
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=192.168.$N.0/24
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=192.168.0.0/16
        done
    
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
        # Assumes that an external IP is only created for vNIC 0
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
    
          
  2. אם אתם צריכים כמה בלוקי משנה של A4X, השתמשו בסקריפט הבא כדי ליצור את רשת ה-VPC של RoCE למכונות וירטואליות (roce) ואת תת-הרשתות לארבעת כרטיסי ה-NIC מסוג CX-7 בכל מכונת A4X.

    
    
        #!/bin/bash
    
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for RDMA NICs
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 3); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=192.168.$((N+2)).0/24 # offset to avoid overlap with gVNICs
        done
    
    
          
  3. מחליפים את מה שכתוב בשדות הבאים:

    • ‫GVNIC_NAME_PREFIX: התחילית של השם המותאם אישית של רשתות ה-VPC הרגילות ותת-הרשתות של ה-gVNIC.
    • ‫RDMA_NAME_PREFIX: התחילית של השם המותאם אישית של רשת ה-VPC של RoCE למכונות וירטואליות (roce) ולרשתות משנה של כרטיסי הרשת CX-7.
    • ‫ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין, למשל us-central1-a. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
    • ‫REGION: האזור שבו רוצים ליצור את רשתות המשנה. האזור הזה חייב להתאים לאזור שצוין. לדוגמה, אם האזור הוא us-central1-a, המחוז הוא us-central1.
    • ‫IP_RANGE: טווח כתובות ה-IP שמשמש לכללי חומת האש של SSH.
  4. אופציונלי: כדי לוודא שמשאבי רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Google Cloud :
    1. במסוף Google Cloud , נכנסים לדף רשתות VPC.

      כניסה לדף VPC networks

    2. מחפשים ברשימה את הרשתות שיצרתם בשלב הקודם.
    3. כדי לראות את רשתות המשנה, כללי חומת האש והגדרות רשת אחרות, לוחצים על שם הרשת.

יצירת תבנית של הגדרות מכונה

כדי לציין את המאפיינים של המכונות הווירטואליות בקבוצת המכונות המנוהלת (MIG), יוצרים תבנית של הגדרות מכונה.

כדי ליצור תבנית של הגדרות מכונה, בוחרים באחת מהאפשרויות הבאות.

הפקודות הבאות גם מגדירות את היקף הגישה למכונות. כדי לפשט את ניהול ההרשאות, Google ממליצה להגדיר את היקף הגישה במכונה לגישה מסוג cloud-platform, ואז להשתמש בתפקידי IAM כדי להגדיר לאילו שירותים המכונה יכולה לגשת. מידע נוסף זמין במאמר שיטות מומלצות להיקפים.

gcloud

כדי ליצור תבנית של הגדרות מכונה אזורית, משתמשים בפקודה gcloud compute instance-templates create.

מכונות A4X תומכות בסוגי ההזמנות הבאים:

  • מקומות שמורים לעתיד בגושי קיבולת
  • מקומות שמורים לעתיד במצב תזמון

כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=a4x-highgpu-4g \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
  • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
  • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
  • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע נוסף על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים.
  • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או את המאמר מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
  • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
  • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA.
  • ‫RESERVATION: שם ההזמנה, בלוק או בלוק משנה בתוך הזמנה. כדי לקבל את שם ההזמנה או את הבלוקים הזמינים, ראו הצגת הקיבולת השמורה. בהתאם לדרישות שלכם לגבי מיקום המכונה, בוחרים באחת מהאפשרויות הבאות:
    • כדי ליצור מכונות A4X בכל בלוק:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • כדי ליצור מכונות A4X בבלוק ספציפי:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • כדי ליצור מכונות A4X בבלוק משנה ספציפי:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          

REST

כדי ליצור תבנית של הגדרות מכונה אזורית, שולחים בקשת POST אל ה-method‏ regionInstanceTemplates.insert.

מכונות A4X תומכות בסוגי ההזמנות הבאים:

  • מקומות שמורים לעתיד בגושי קיבולת
  • מקומות שמורים לעתיד במצב תזמון

כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "a4x-highgpu-4g",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "diskSizeGb": "DISK_SIZE",
          "diskType": "hyperdisk-balanced",
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode": "READ_WRITE",
        "type": "PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values": [
          "RESERVATION"
        ]
      },
    "scheduling": {
        "provisioningModel": "RESERVATION_BOUND",
        "instanceTerminationAction": "DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart": true
      }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.
  • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות
  • ‫IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה.
  • ‫REGION: האזור שבו רוצים ליצור את התבנית של הגדרות המכונה. מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
  • ‫DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או את המאמר מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק.
  • ‫NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת.
  • ‫GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות בכרטיסי רשת של gVNIC.
  • ‫REGION: האזור של רשת המשנה.
  • ‫RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA.
  • ‫RESERVATION: שם ההזמנה, בלוק או בלוק משנה בתוך הזמנה. כדי לקבל את שם ההזמנה או את הבלוקים הזמינים, ראו הצגת הקיבולת השמורה. בהתאם לדרישות שלכם לגבי מיקום המכונה, בוחרים באחת מהאפשרויות הבאות:
    • כדי ליצור מכונות A4X בכל בלוק:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • כדי ליצור מכונות A4X בבלוק ספציפי:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • כדי ליצור מכונות A4X בבלוק משנה ספציפי:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          

יצירת MIG

כשמשתמשים בסוג מכונה A4X, צריך ליצור קבוצת MIG על ידי ציון גודל היעד שלה.

כדי לקבל טופולוגיית GPU של 1x72, צריך ליצור MIG עם 18 מכונות A4X. כשיוצרים את ה-MIG, מחילים את מדיניות עומס העבודה שמציינת את השדה acceleratorTopology. החלת המדיניות מבטיחה ש-Compute Engine ייצור את כל 18 המכונות מסוג A4X בבלוק משנה אחד כדי להשתמש בדומיין NVLink. אם בבלוק המשנה אין מספיק קיבולת לכל 18 המכונות, כל מכונה מנוהלת שלא ניתן ליצור באופן מיידי תישאר במצב CREATING עד שתתפנה קיבולת. המכונות המנוהלות האלה מייצגות את המכונות שנוצרות על ידי ה-MIG כשיש קיבולת.

כשמחילים מדיניות עומס עבודה שבה השדה acceleratorTopology מוגדר לערך 1x72, אי אפשר ליצור יותר מ-18 מכונות A4X ב-MIG. אם תציינו יותר מ-18 מכונות, יצירת ה-MIG תיכשל. כדי ליצור כמה דומיינים של NVLink, צריך ליצור MIG נפרד לכל דומיין ולהחיל את אותה מדיניות עומס עבודה על כל MIG.

כדי ליצור MIG, בוחרים באחת מהאפשרויות הבאות:

gcloud

כדי ליצור קבוצת MIG עם גודל יעד מסוים, משתמשים בפקודה instance-groups managed create.

כדי ליצור קבוצת MIG אזורית או קבוצת MIG של אזור, מבצעים את הפעולות הבאות:

  • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה הבאה:
    gcloud compute instance-groups managed create MIG_NAME \
      --template=INSTANCE_TEMPLATE_URL \
      --size=TARGET_SIZE \
      --workload-policy=WORKLOAD_POLICY_URL \
      --zone=ZONE
    
  • כדי ליצור קבוצת MIG אזורית, משתמשים בפקודה הבאה:
    gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --region=REGION
    
מחליפים את הערכים הבאים:
  • ‫MIG_NAME: שם ה-MIG.
  • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
  • ‫TARGET_SIZE: מספר המכונות שרוצים שיהיו בקבוצת המכונות המנוהלות. לטופולוגיית המאיץ 1x72, מגדירים את גודל היעד ל-18.
  • ‫WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות עומס העבודה, לדוגמה projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy.
  • ‫ZONE: האזור שבו רוצים ליצור את קבוצת ה-MIG. צריך לציין אזור בתוך האזור של מדיניות עומס העבודה.
  • ‫REGION: האזור שבו רוצים ליצור את ה-MIG. מציינים את אותו אזור שצוין במדיניות של עומס העבודה. בקבוצת MIG אזורית, במקום אזור, אפשר לציין את האזורים באותו אזור באמצעות הדגל --zones.

REST

כדי ליצור קבוצת MIG עם גודל יעד מסוים, שולחים בקשת POST.

כדי ליצור קבוצת MIG אזורית או קבוצת MIG של אזור, מבצעים את הפעולות הבאות:

  • כדי ליצור MIG אזורי, שולחים בקשת POST ל-method‏ instanceGroupManagers.insert.
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "MIG_NAME",
      "targetSize": TARGET_SIZE,
      "resourcePolicies": {
        "workloadPolicy": "WORKLOAD_POLICY_URL"
      }
    }
    
  • כדי ליצור קבוצת MIG אזורית, שולחים בקשת POST ל-method‏ regionInstanceGroupManagers.insert.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": TARGET_SIZE,
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
    
מחליפים את הערכים הבאים:
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ZONE: האזור שבו רוצים ליצור את ה-MIG. צריך לציין אזור בתוך המיקום של מדיניות עומסי העבודה.
  • ‫REGION: האזור שבו רוצים ליצור את ה-MIG. מציינים את אותו אזור כמו במדיניות של עומס העבודה.
  • ‫INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שבה רוצים להשתמש כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
    • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
  • ‫MIG_NAME: שם ה-MIG.
  • ‫TARGET_SIZE: מספר המכונות שרוצים שיהיו בקבוצת המכונות המנוהלת. לטופולוגיית המאיץ 1x72, מגדירים את גודל היעד ל-18.
  • ‫WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות עומס העבודה, לדוגמה projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy.

התקנת מנהלי התקנים של GPU

אחרי שיוצרים מכונה, היא לא יכולה להשתמש ב-GPU שלה אלא אם מנהלי ההתקנים הנכונים של ה-GPU כבר מותקנים. אם לא ציינתם קובץ אימג' של מערכת ההפעלה שכולל מנהלי התקנים של GPU, עיינו במאמר התקנת מנהלי התקנים של GPU במסמכי התיעוד של Compute Engine.

אופציונלי: הפעלת מצב NVIDIA Multi-Instance GPU

מצב Multi-Instance GPU ‏(MIG) הוא תכונה שאפשר להפעיל ב-GPU נתמך של NVIDIA. אחרי שיוצרים מכונה, אפשר להפעיל את מצב MIG ב-GPU יחיד שמחובר למכונה. כשהמצב MIG מופעל, ה-GPU היחיד מחולק לעד שבעה מכונות GPU נפרדות. כל מכונה פועלת בו-זמנית, ולכל אחת מהן יש זיכרון, מטמון ובלוקי SM ‏(Streaming Multiprocessor) משלה. לאחר מכן, תוכלו להריץ עומסי עבודה שונים במקביל במכונות ה-GPU האלה. למידע נוסף על השימוש במצב MIG, קראו את המדריך למשתמש של Multi-Instance GPU (MIG)‎ במסמכי התיעוד של NVIDIA.

מה השלב הבא?