במאמר הזה מוסבר איך ליצור מכונות וירטואליות (VM) עצמאיות מסוג A4X. מידע נוסף על סוג המכונה הזה זמין במאמר A4X.
במאמר סקירה כללית על אפשרויות הפריסה תוכלו לקרוא על דרכים נוספות ליצירת מכונות וירטואליות או אשכולות.
מגבלות
כשיוצרים מכונה וירטואלית עצמאית מסוג A4X, חלות המגבלות הבאות:
- לא תקבלו הנחות על שימוש קבוע או הנחות תמורת התחייבות גמישה לשימוש במכונות מהסוג הזה.
- אפשר ליצור מכונות רק באזורים ובאזורי זמינות מסוימים.
- אי אפשר להשתמש ב-Persistent Disk (אזורי או של תחום מוגדר). אפשר להשתמש רק ב-Google Cloud Hyperdisk.
- סוג המכונה הזה זמין רק בפלטפורמת NVIDIA Grace.
- אי אפשר לשנות את סוג המכונה ב-A4X. כדי לעבור לסוג המכונה הזה או ממנו, צריך ליצור מכונה חדשה.
- אי אפשר להריץ מערכות הפעלה של Windows בסוג המכונה הזה. כאן תוכלו לקרוא אילו מערכות הפעלה של Linux נתמכות במכונות GPU.
- במכונות A4X, כשמשתמשים ב-
ethtool -Sכדי לעקוב אחרי הרשת של ה-GPU, המונים של היציאות הפיזיות שמסתיימים ב-_phyלא מתעדכנים. זה תקין במכונות שמשתמשות בארכיטקטורת MRDMA Virtual Function (VF). מידע נוסף זמין במאמר פונקציות MRDMA וכלים למעקב אחרי הרשת. - במכונות A4X אין תמיכה באפשרויות הבאות:
- אי אפשר לצרף דיסקים של Hyperdisk ML שנוצרו לפני 4 בפברואר 2026 לסוגי מכונות A4X.
לפני שמתחילים
לפני שיוצרים מכונות וירטואליות, אם עדיין לא עשיתם זאת, בצעו את הפעולות הבאות:
- בחירת אפשרות צריכה: אפשרות הצריכה שתבחרו תקבע איך תקבלו את משאבי ה-GPU ותשתמשו בהם. מידע נוסף זמין במאמר בחירת אפשרות צריכה.
- השגת קיבולת: התהליך להשגת קיבולת שונה בכל אפשרות צריכה. במאמר סקירה כללית על קיבולת מוסבר איך מקבלים קיבולת לאפשרות הצריכה שבחרתם.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
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בדיסק
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יסודות 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 כדי לאפשר התאמה יעילה לעומס. כל בלוק משנה דורש מדיניות למיקום קומפקטי. לכן, לבלוק A4X אחד אפשר ליצור 25 כללי מדיניות למיקום קומפקטי.
בטבלה הבאה מפורטות אפשרויות הטופולוגיה שנתמכות במכונות A4X:
טופולוגיה (gpuTopology) |
מספר יחידות ה-GPU | מספר המופעים |
|---|---|---|
1x72 |
72 | 18 |
סקירה כללית
כדי ליצור מכונה עם סוג המכונה A4X:
- יצירת רשתות VPC
- יצירת מדיניות למיקום קומפקטי
- יצירת מכונה
- התקנת מנהלי התקנים של GPU
- אופציונלי: הפעלת מצב GPU עם כמה מופעים במקביל של NVIDIA
יצירת רשתות VPC
כדי להגדיר את הרשת לסוגי מכונות A4X, יוצרים שלוש רשתות VPC לממשקי הרשת הבאים:
- 2 רשתות VPC רגילות לממשקי הרשת (NIC) של gVNIC. לאחר מכן, כרטיסי ה-NIC משתמשים ברשתות ה-VPC האלה לתקשורת בין מארחים.
- רשת VPC אחת עם פרופיל הרשת RoCE לכרטיסי ה-NIC מסוג CX-7 כש יוצרים כמה בלוקי משנה של A4X. ברשת ה-VPC של RoCE למכונות וירטואליות צריכות להיות 4 רשתות משנה, אחת לכל CX-7 NIC. כרטיסי הרשת האלה משתמשים ב-RDMA over Converged Ethernet (RoCE), שמספק תקשורת עם רוחב פס גבוה וזמן אחזור קצר, שחיונית להרחבה אופקית (scale out) לכמה בלוקי משנה של A4X.
למידע נוסף על סידור NIC, ראו בדיקת רוחב הפס של הרשת וסידור NIC.
אפשר ליצור את הרשתות באופן ידני לפי ההוראות במדריכים, או באופן אוטומטי באמצעות הסקריפט שסופק.
מדריכי הוראות
כדי ליצור את הרשתות, אתם יכולים להשתמש בהוראות הבאות:
- כדי ליצור את רשתות ה-VPC הרגילות לממשקי הרשת של gVNIC, קראו את המאמר יצירה וניהול של רשתות VPC.
- כדי ליצור את רשת ה-VPC של RoCE למכונות וירטואליות (
roce), קראו את המאמר יצירת רשת VPC לכרטיסי רשת של RDMA.
ברשתות ה-VPC האלה, מגדירים ערך גדול יותר ליחידת השידור המקסימלית (MTU).
במכונות מסוג A4X, הערך המומלץ של MTU הוא 8896 בייטים.
כדי לבדוק את הגדרות ה-MTU המומלצות לסוגי מכונות אחרים של GPU, קראו את המאמר הגדרות MTU לסוגי מכונות של GPU.
Script
כדי ליצור את הרשתות, מבצעים את השלבים הבאים.
ברשתות ה-VPC האלה, מגדירים ערך גדול יותר ליחידת ההעברה המקסימלית (MTU).
במכונות מסוג A4X, הערך המומלץ של MTU הוא 8896 בייטים.
כדי לבדוק את הגדרות ה-MTU המומלצות לסוגי מכונות אחרים של GPU, קראו את המאמר הגדרות MTU לסוגי מכונות של GPU.
-
כדי ליצור רשתות 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 אם אתם צריכים כמה בלוקי משנה של 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-
GVNIC_NAME_PREFIX: התחילית של השם בהתאמה אישית, שמשמשת לרשתות ה-VPC הרגילות ולרשתות המשנה של ה-gVNIC. -
RDMA_NAME_PREFIX: התחילית של השם בהתאמה אישית של רשת ה-VPC של RoCE למכונות וירטואליות (roce) ותת-רשתות לכרטיסי ה-NIC של CX-7. -
ZONE: מציינים אזור שבו סוג המכונה שרוצים להשתמש בה זמין, למשלus-central1-a. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים. -
REGION: האזור שבו רוצים ליצור את רשתות המשנה. האזור הזה חייב להתאים לאזור שצוין. לדוגמה, אם האזור הואus-central1-a, אז האזור הואus-central1. -
IP_RANGE: טווח כתובות ה-IP שמשמש לכללי חומת האש של SSH. - אופציונלי: כדי לוודא שמשאבי רשת ה-VPC נוצרו בהצלחה, בודקים את הגדרות הרשת במסוף Google Cloud :
- במסוף Google Cloud , נכנסים לדף רשתות VPC.
- מחפשים ברשימה את הרשתות שיצרתם בשלב הקודם.
- כדי לראות את רשתות המשנה, כללי חומת האש והגדרות רשת אחרות, לוחצים על שם הרשת.
מחליפים את מה שכתוב בשדות הבאים:
יצירת מדיניות למיקום קומפקטי
כדי ליצור מדיניות למיקום קומפקטי, בוחרים אחת מהאפשרויות הבאות:gcloud
כדי ליצור מדיניות למיקום קומפקטי, משתמשים בפקודה
gcloud compute resource-policies create group-placement:
gcloud compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--gpu-topology=1x72 \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של המדיניות למיקום קומפקטי. -
REGION: האזור שבו רוצים ליצור את המדיניות למיקום קומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
REST
כדי ליצור מדיניות למיקום קומפקטי, שולחים בקשת POST ל-method resourcePolicies.insert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"gpuTopology": "1x72"
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
POLICY_NAME: השם של המדיניות למיקום קומפקטי. -
REGION: האזור שבו רוצים ליצור את המדיניות למיקום קומפקטי. מציינים את האזור שמכיל את התחום שבו מתכננים ליצור מכונות, ומוודאים שסוג המכונה שרוצים להשתמש בו זמין באזור הזה. למידע על אזורים, קראו את המאמר זמינות של GPU לפי אזורים ותחומים.
יצירת מכונה מסוג A4X
בוחרים את אפשרות היצירה שמתאימה לארכיטקטורה של עומס העבודה:
- יצירת מכונה בדומיין NVLink עם 72 מעבדי GPU (טופולוגיית 1x72): האפשרות הזו מתאימה במיוחד לעומסי עבודה של אימון מבוזר בקנה מידה גדול, כוונון והסקת מסקנות בכמה צמתים, שדורשים תקשורת בין מעבדי GPU עם רוחב פס גבוה וזמן אחזור קצר, בעד 18 מכונות (72 מעבדי GPU) במארג NVLink עם כמה צמתים. צריך להשתמש במדיניות למיקום קומפקטי.
- יצירת מכונה עצמאית עם 4 מעבדי GPU (NVL4): האפשרות הזו מתאימה לעומסי עבודה בצומת יחיד, להסקת מסקנות ממודלים קטנים יותר, לעיבוד באצווה ולפיתוח אינטראקטיבי שמתאימים ל-4 מעבדי GPU ודורשים רק קישור בין צמתים באמצעות NVLink. כדי לחלק בלוק משנה של הזמנה למכונות וירטואליות עצמאיות, צריך לטרגט בלוק משנה ספציפי. לא צריך מדיניות למיקום קומפקטי.
יצירת מכונה בדומיין NVLink עם 72 יחידות GPU (טופולוגיית 1x72)
כדי לקבל טופולוגיית GPU של 1x72, צריך ליצור 18 מכונות A4X. כשיוצרים את המכונות, מחילים את המדיניות למיקום קומפקטי שמציינת את השדה gpuTopology. החלת המדיניות מבטיחה ש-Compute Engine ייצור את כל 18 המכונות מסוג A4X בבלוק משנה אחד כדי להשתמש בדומיין NVLink.
אם בבלוק המשנה אין מספיק קיבולת למכונה מסוג A4X, הבקשה ליצירת המכונה נכשלת.
כדי ליצור מכונת A4X שמתחברת ל-18 המכונות בדומיין NVLink, צריך להחיל את המדיניות למיקום קומפקטי ולהגדיר רשת RDMA עם multi-NIC.
כדי ליצור מכונה מסוג A4X, בוחרים באחת מהאפשרויות הבאות.
הפקודות הבאות גם מגדירות את היקף הגישה למכונות. כדי לפשט את ניהול ההרשאות, Google ממליצה להגדיר את היקף הגישה במכונה לגישה מסוגcloud-platform, ואז להשתמש בתפקידי IAM כדי להגדיר לאילו שירותים המכונה יכולה לגשת. מידע נוסף זמין במאמר שיטות מומלצות להיקפים.
gcloud
כדי ליצור את מכונת A4X, משתמשים ב
פקודה gcloud compute instances create.
מכונות A4X תומכות בסוגי ההזמנות הבאים:
- מקומות שמורים לעתיד בגושי קיבולת
- מקומות שמורים לעתיד במצב תזמון
כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.
gcloud compute instances create INSTANCE_NAME \
--machine-type=a4x-highgpu-4g \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--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=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--resource-policies=POLICY_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של מכונת A4X. -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות -
IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. -
ZONE: האזור שבו סוג המכונה שרוצים להשתמש בה זמין. צריך להשתמש באזור שנמצא באותו אזור של המדיניות למיקום קומפקטי. למידע על אזורים, קראו את המאמר זמינות 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
- כדי ליצור מכונות A4X בכל בלוק:
TERMINATION_ACTION: אם המכונה של A4X תופסק (STOP) או תימחק (DELETE) ב-Compute Engine בסוף תקופת שמירת המקום.-
POLICY_NAME: השם של המדיניות למיקום קומפקטי.
REST
כדי ליצור את מכונת A4X, שולחים בקשת POST ל-method
instances.insert.
מכונות A4X תומכות בסוגי ההזמנות הבאים:
- מקומות שמורים לעתיד בגושי קיבולת
- מקומות שמורים לעתיד במצב תזמון
כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
"name": "INSTANCE_NAME",
"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": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": true
},
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מכונת A4X. -
ZONE: האזור שבו סוג המכונה שרוצים להשתמש בה זמין. צריך להשתמש באזור שנמצא באותו אזור של המדיניות למיקום קומפקטי. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים. -
INSTANCE_NAME: השם של מכונת A4X. -
DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק. -
IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות -
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
- כדי ליצור מכונות A4X בכל בלוק:
TERMINATION_ACTION: אם המכונה של A4X תיעצר (STOP) או תימחק (DELETE) ב-Compute Engine בסוף תקופת שמירת המקום.-
PROJECT_ID: מזהה הפרויקט של המדיניות למיקום קומפקטי. -
REGION: האזור של המדיניות למיקום קומפקטי. -
POLICY_NAME: השם של המדיניות למיקום קומפקטי.
יצירת מכונה עצמאית עם 4 מעבדי GPU (NVL4)
NVL4 מחלק את דומיין NVLink כדי ליצור מכונות נפרדות ב-NVLink fabric. כדי ליצור מכונות NVL4 עצמאיות, צריך לציין איזה בלוק משנה בתוך ההזמנה רוצים לחלק למחיצות. מכיוון שכל מכונה של A4X פועלת באופן עצמאי, אין צורך להשתמש במדיניות למיקום קומפקטי. יש תמיכה מלאה בתקשורת NVLink עם ארבעה מעבדי GPU בתוך הצומת לעומסי עבודה בתוך המכונה.
לפני שיוצרים מכונות NVL4 עצמאיות, חשוב לשים לב לנקודות הבאות:
- טירגוט קיבולת ובלוק משנה: כדי ליצור מכונות NVL4 עצמאיות, צריך לטרגט בלוק משנה ספציפי של בקשה לשמירת מקום. היחידה האטומית של קיבולת שמורה היא בלוק משנה שלם, שהוא דומיין NVLink של 18 מכונות או 72 יחידות GPU. אי אפשר להזמין מכונות NVL4 בודדות בנפרד. כשפורסים מכונות NVL4, מקצים בלוק משנה שמור לעד 18 צמתים עצמאיים. אתם יכולים גם לשתף הזמנה של בלוק משנה מפרויקט מארח עם פרויקטים של צרכנים.
- שינויים בהגדרות ובחלוקה הסטטית למחיצות: פריסות של בלוקי משנה הן סטטיות. כדי לשנות את ההגדרות של בלוק משנה, למשל לעבור מדומיין NVLink עם
1x72כמה צמתים למכונות NVL4 עצמאיות, או להיפך, צריך למחוק את כל המכונות הקיימות בבלוק המשנה הזה לפני שיוצרים אותן מחדש עם ההגדרות החדשות. - פריסות מעורבות בבלוק משנה: אתם יכולים להקצות מכונות באותה הקצאה של בלוק משנה גם למכונות עצמאיות של Compute Engine וגם למאגרי צמתים של GKE. לדוגמה, הקצאה של 12 מכונות עצמאיות של Compute Engine לפיתוח ו-6 מכונות במאגר צמתים של GKE.
- הגדרת NCCL ו-NVLS: אם אתם מריצים עומסי עבודה מבוזרים באמצעות NCCL במכונות NVL4, השביתו את NVLink SHARP על ידי הגדרת משתנה הסביבה
NCCL_NVLS_ENABLE=0. Google Cloud לא מגדיר קבוצות CUDA multicast לתקשורת בין כמה צמתים בדומיינים מחולקים למחיצות.
אם שריינתם בלוק משנה שלם, שמורכב מ-18 מכונות או 72 יחידות GPU, ואתם רוצים לפרוס את כל 18 המכונות העצמאיות של A4X, הפעילו את פקודת היצירה 18 פעמים, וודאו שכל פקודה מטרגטת את אותו בלוק משנה של ההזמנה.
כדי ליצור מכונה עצמאית של A4X עם ארבעה מעבדי GPU, בוחרים באחת מהאפשרויות הבאות:
gcloud
כדי ליצור את מכונת A4X, משתמשים ב
פקודה gcloud compute instances create.
מכונות A4X תומכות בסוגי ההזמנות הבאים:
- מקומות שמורים לעתיד בגושי קיבולת
- מקומות שמורים לעתיד במצב תזמון
כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.
gcloud compute instances create INSTANCE_NAME \
--machine-type=a4x-highgpu-4g \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--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_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--restart-on-failure
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של מכונת A4X. -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות -
IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. -
ZONE: האזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים. -
DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק. -
GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC. -
RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA. -
RESERVATION_NAME: שם ההזמנה. -
BLOCK_NAME: השם של בלוק ספציפי בתוך ההזמנה. -
SUB_BLOCK_NAME: השם של הבלוק המשני הספציפי בתוך הבלוק.
TERMINATION_ACTION: אם המכונה של A4X תופסק (STOP) או תימחק (DELETE) ב-Compute Engine בסוף תקופת שמירת המקום.
REST
כדי ליצור את מכונת A4X, שולחים בקשת POST ל-method
instances.insert.
מכונות A4X תומכות בסוגי ההזמנות הבאים:
- מקומות שמורים לעתיד בגושי קיבולת
- מקומות שמורים לעתיד במצב תזמון
כדי להשתמש בסוגים האלה של הזמנות, המכונה צריכה להשתמש במודל הקצאה שמוגבל להזמנות. לדוגמה, משתמשים בפרמטרים הבאים ליצירה.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
"name": "INSTANCE_NAME",
"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_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME"
]
},
"scheduling": {
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": true
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את מכונת A4X. -
ZONE: האזור שבו סוג המכונה שרוצים להשתמש בה זמין. למידע על אזורים, קראו את המאמר זמינות GPU לפי אזורים ותחומים. -
INSTANCE_NAME: השם של מכונת A4X. -
DISK_SIZE: גודל דיסק האתחול ב-GB. למידע נוסף, קראו את המאמר מגבלות הגודל של Google Cloud Hyperdisk או מגבלות הגודל של Persistent Disk, בהתאם לסוג הדיסק. -
IMAGE_PROJECT: מזהה הפרויקט של קובץ האימג' של מערכת ההפעלה. -
IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה שבה רוצים להשתמש. רשימה של כל מערכות ההפעלה הנתמכות -
NETWORK_PROJECT_ID: מזהה הפרויקט של הרשת. -
GVNIC_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC הרגילות ואת רשתות המשנה שמשתמשות ב-gVNIC. -
REGION: האזור של רשת המשנה. -
RDMA_NAME_PREFIX: התחילית של השם שציינתם כשיצרתם את רשתות ה-VPC ואת רשתות המשנה שמשתמשות בכרטיסי רשת של RDMA. -
RESERVATION_NAME: שם ההזמנה. -
BLOCK_NAME: השם של בלוק ספציפי בתוך ההזמנה. -
SUB_BLOCK_NAME: השם של הבלוק המשני הספציפי בתוך הבלוק.
TERMINATION_ACTION: אם המכונה של A4X תופסק (STOP) או תימחק (DELETE) ב-Compute Engine בסוף תקופת שמירת המקום.
התקנת מנהלי התקנים של GPU
אחרי שיוצרים מכונה, היא לא יכולה להשתמש ב-GPU שלה אלא אם מנהלי ההתקנים הנכונים של ה-GPU כבר מותקנים. אם לא ציינתם קובץ אימג' של מערכת ההפעלה שכולל מנהלי התקנים של GPU, עיינו במאמר התקנת מנהלי התקנים של GPU במסמכי התיעוד של Compute Engine.