כדי להשתמש ב-GPU עם מכונות וירטואליות מסוג Confidential VM, צריך ליצור מכונה וירטואלית באמצעות סוג מכונה נתמך ומודל הקצאת מכונות. אחרי שיוצרים את מכונת ה-VM, מפעילים את מצב המחשוב הסודי ב-GPU המצורף.
מכונות וירטואליות (VM) חסויות עם GPUs של NVIDIA זמינות בסוגי המכונות הבאים:
סוג מכונה A3 High: מעבדי GPU של NVIDIA H100 עם Intel TDX. יש תמיכה במודלים של הקצאת משאבים לפי דרישה ושל הקצאת משאבים עם התחלה גמישה.
סוג מכונה G4: NVIDIA RTX PRO 6000 עם AMD SEV. יש תמיכה במודלים סטנדרטיים (על פי דרישה), במודלים של הקצאת משאבים נקודתית ובמודלים של הקצאת משאבים עם התחלה גמישה, וגם בהזמנות.
השימוש במעבדי NVIDIA RTX Pro 6000 GPU עם מכונות וירטואליות מסוג Confidential G4 כרוך בתשלום אוטומטי של דמי רישיון על תוכנה ושירותים של NVIDIA Confidential Computing. פרטים נוספים זמינים במאמר בנושא תמחור של Confidential Computing עם מעבדי GPU.
לפני שיוצרים מכונת VM חסויה עם GPU, צריך לוודא שיש מספיק מכסת GPU. מידע נוסף זמין במאמר בנושא מכסות.
יצירת מכונה וירטואלית חסויה עם GPU
כדי ליצור מופע של מכונה וירטואלית חסויה עם GPU מצורף, משתמשים באחד ממודלי ההקצאה הבאים:
רגיל (על פי דרישה): יצירת מופע של מכונה וירטואלית רגילה (על פי דרישה) שעברה אופטימיזציה לשימוש במאיץ. המודל הזה זמין רק לסוג המכונה G4. שלבים מפורטים מופיעים במאמר בנושא מודל רגיל (על פי דרישה) או מודל ספוט.
Spot: יצירת מכונה וירטואלית זמנית מסוג Spot שעברה אופטימיזציה לשימוש במאיץ, עבור סוגי מכונות A3 High או G4. הוראות מפורטות זמינות במאמר בנושא מודל רגיל (לפי דרישה) או מודל ספוט.
Flex-start: יצירה של קבוצת מופעי מכונה מנוהלים (MIG) עבור סוגי המכונות A3 High או G4. שלבים מפורטים מופיעים במאמר בנושא מודל Flex-start.
מודל רגיל (על פי דרישה) או מודל ספוט
gcloud
כדי ליצור מכונה וירטואלית רגילה (על פי דרישה) או VM במודל Spot שעברה אופטימיזציה לשימוש במאיץ באמצעות ה-CLI של gcloud, משתמשים בפקודת המשנה instances create עם הדגל --provisioning-model.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=PROVISIONING_MODEL \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
כדי להפעיל הפעלה מאובטחת, אפשר להשתמש בדגל --shielded-secure-boot לאתחול של מכונות וירטואליות.
מספקים את הערכים הבאים:
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.
PROVISIONING_MODEL: מודל ההקצאה שסוג המכונה תומך בו. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
SPOTלמופעים של VM במודל Spot.סוג מכונה G4:
STANDARDלמכונות וירטואליות רגילות (על פי דרישה) אוSPOTל-VM במודל Spot. אם לא מציינים ערך, ברירת המחדל היאSTANDARD.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. צריך לבחור אחת מהאפשרויות:סוג מכונה גבוה A3 (
a3-highgpu-1g):TDXסוג המכונה G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית. בוחרים אחת מהאפשרויות הבאות:a3-highgpu-1gg4-standard-48
ZONE_NAME: האזור הנתמך שבו רוצים ליצור את המכונה הווירטואלית.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
ubuntu-os-cloudלתמונות של Ubuntu אוconfidential-vm-imagesלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.סוג מכונה G4:
ubuntu-os-cloudלתמונות של Ubuntu אוcos-cloudלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.
IMAGE_FAMILY_NAME: המשפחה של תמונת מערכת ההפעלה שנתמכת על ידי Confidential VM. בוחרים א�� מ��פחת התמונות בהתאם לסוג המכונה:סוג מכונה A3 High:
ubuntu-2204-ltsלפרויקטים של תמונות Ubuntu.
cos-tdx-113-ltsלפרויקטים של קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
סוג מכונה G4:
ubuntu-2404-lts-amd64לפרויקטים של תמונות Ubuntu.cos-125-ltsלפרויקטים של תמונות של מערכת הפעלה שמותאמת לקונטיינרים.
REST
כדי ליצור מכונה וירטואלית רגילה (על פי דרישה) או VM במודל Spot, שולחים את בקשת ה-POST הבאה עם תוכן הגוף המתאים.
משתמשים בשיטת ה-HTTP ובכתובת ה-URL הבאות:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
משתמשים בתוכן הבא של בקשת JSON:
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"automaticRestart": true,
"provisioningModel": "PROVISIONING_MODEL"
},
"disks": [
{
"boot": true,
"autoDelete": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
"diskSizeGb": "30"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
מספקים את הערכים הבאים:
PROJECT_ID: אופציונלי. מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
ZONE: האזור הנתמך שבו רוצים ליצור את המכונה הווירטואלית.
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית. בוחרים באחת מהאפשרויות הבאות:a3-highgpu-1gg4-standard-48
CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. צריך לבחור אחת מהאפשרויות:סוג מכונה גבוה A3 (
a3-highgpu-1g):TDXסוג המכונה G4 (
g4-standard-48):SEV
PROVISIONING_MODEL: מודל הקצאת המשאבים שסדרת המכונות תומכת בו. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
SPOTלמופעים של מכונות וירטואליות במודל Spot.סוג מכונה G4:
STANDARDלמכונות וירטואליות רגילות (על פי דרישה) אוSPOTלמכונות וירטואליות מסוג Spot. אם לא מציינים ערך, ברירת המחדל היאSTANDARD.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
ubuntu-os-cloudלתמונות של Ubuntu אוconfidential-vm-imagesלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.סוג מכונה G4:
ubuntu-os-cloudלתמונות של Ubuntu אוcos-cloudלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.
IMAGE_FAMILY: המשפחה של תמונת מערכת ההפעלה שנתמכת על ידי Confidential VM. בוחרים את משפחת התמונות בהתאם לסוג המכונה:סוג מכונה A3 High:
ubuntu-2204-ltsלפרויקטים של תמונות Ubuntu.
cos-tdx-113-ltsלפרויקטים של תמונות של מערכת הפעלה שמותאמת לקונטיינרים.
סוג מכונה G4:
ubuntu-2404-lts-amd64לפרויקטים של תמונות Ubuntu.
cos-125-ltsלפרויקטים של קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
מודל Flex-start
כדי להשתמש במודל התחלה גמישה (Flex-start), צריך קודם ליצור תבנית של הגדרות מכונה, ואז להשתמש בתבנית הזו כדי ליצור קבוצת מופעי מכונה מנוהלים (MIG). אחרי כן אפשר להוסיף מכונות וירטואליות עם GPU לקבוצת ה-MIG באמצעות בקשות לשינוי גודל.
��ימוש בבקשה לשינוי גודל של MIG עם מודל ההקצאה flex-start משפר את הזמינות של מכונות וירטואליות עם GPU. מידע נוסף זמין במאמר מידע על בקשות לשינוי גודל בקבוצת MIG.
לפני שמתחילים
- למידע על יצירת MIG, ראו דרישות מוקדמות ל-MIG.
- מידע על יצירת בקשה לשינוי גודל בקבוצת MIG מופיע בקטע מגבלות על בקשות לשינוי גודל.
יצירת קבוצת מופעי מכונה מנוהלים (MIG) עם מכונות וירטואליות של GPU
כדי ליצור תבנית של הגדרות מכונה, ואז להשתמש בתבנית כדי ליצור קבוצת MIG, צריך לבצע את השלבים הבאים.
יוצרים תבנית של הגדרות מכונה.
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \ --machine-type=MACHINE_TYPE_NAME \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_IDמספקים את הערכים הבאים:
INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה חדשה.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. צריך לבחור אחת מהאפשרויות:סוג מכונה גבוה A3 (
a3-highgpu-1g):TDXסוג המכונה G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית. בוחרים אחת מהאפשרויות הבאות:a3-highgpu-1gg4-standard-48
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
ubuntu-os-cloudלתמונות של Ubuntu אוconfidential-vm-imagesלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.סוג מכונה G4:
ubuntu-os-cloudלתמונות של Ubuntu אוcos-cloudלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.
IMAGE_FAMILY_NAME: המשפחה של תמונת מערכת ההפעלה שנתמכת על ידי Confidential VM לשימוש. בוחרים את משפחת התמונות בהתאם לסוג המכונה:סוג מכונה A3 High:
ubuntu-2204-ltsלפרויקטים של תמונות Ubuntu.
cos-tdx-113-ltsלפרויקטים של תמונות של מערכת הפעלה שמותאמת לקונטיינרים.
סוג מכונה G4:
ubuntu-2404-lts-amd64לפרויקטים של תמונות Ubuntu.
cos-125-ltsלפרויקטים של קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
RUN_DURATION: משך הזמן שבו רוצים שהמופעים המבוקשים של מכונות וירטואליות יפעלו. הערך צריך להיות בפורמט של מספר הימים, השעות, הדקות או השניות, ואחריוd,h,mו-sבהתאמה. לדוגמה:6d8h44m.
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
REST
כדי ליצור תבנית של הגדרות מכונה של Confidential VM, שולחים את בקשת ה-POST הבאה עם תוכן הבקשה המתאים.
משתמשים בשיטת ה-HTTP ובכתובת ה-URL הבאות:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplatesמשתמשים בתוכן הבא של בקשת JSON:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY" }, "machineType": "MACHINE_TYPE_NAME", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": "RUN_DURATION_IN_SECONDS" }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "canIpForward": false } }כדי להפעיל את Secure Boot, אפשר לכלול את האובייקט הבא להפעלת מכונות וירטואליות.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }מספקים את הערכים הבאים:
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את התבנית.
REGION: האזור שבו רוצים ליצור את התבנית.
INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה חדשה.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: סוג הטכנולוגיה של Confidential Computing שרוצים להשתמש בה. צריך לבחור אחת מהאפשרויות:סוג מכונה גבוה A3 (
a3-highgpu-1g):TDXסוג המכונה G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: סוג המכונה הווירטואלית. בוחרים אחת מהאפשרויות הבאות:a3-highgpu-1gg4-standard-48
RUN_DURATION_IN_SECONDS: משך הזמן, בשניות, שבו אתם רוצים שהמופעים של המכונות הווירטואליות יפעלו. הערך צריך להיות בין600ל-604800שניות.
IMAGE_PROJECT: הפרויקט שמכיל את קובץ אימג' של המערכת הנתמכת. צריך לבחור אחת מהאפשרויות:סוג המכונה A3 High:
ubuntu-os-cloudלתמונות של Ubuntu אוconfidential-vm-imagesלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.סוג מכונה G4:
ubuntu-os-cloudלתמונות של Ubuntu אוcos-cloudלתמונות של מערכת הפעלה שמותאמת לקונטיינרים.
IMAGE_FAMILY_NAME: המשפחה של תמונת מערכת ההפעלה שנתמכת על ידי Confidential VM לשימוש. בוחרים את משפחת התמונות בהתאם לסוג המכונה:סוג מכונה A3 High:
ubuntu-2204-ltsלפרויקטים של תמונות Ubuntu.
cos-tdx-113-ltsלפרויקטים של תמונות של מערכת הפעלה שמותאמת לקונטיינרים.
סוג מכונה G4:
ubuntu-2404-lts-amd64לפרויקטים של תמונות Ubuntu.
cos-125-ltsלפרויקטים של קובצי אימג' של מערכת הפעלה שמותאמת לקונטיינרים.
ליצור קבוצת MIG ובקשה לשינוי גודל כדי להוסיף מכונות וירטואליות עם GPU בבת אחת.
מציגים את רשימת המכונות שקיימות ב-MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_IDמספקים את הערכים הבאים:
INSTANCE_GROUP_NAME: השם של ה-MIG.
ZONE_NAME: האזור הנתמך שממנו רוצים לקבל רשימה של מופעים של מכונות וירטואליות.
PROJECT_ID: אופציונלי. המזהה של הפרויקט שממנו רוצים לקבל רשימה של מכונות וירטואליות.
REST
כדי להציג רשימה של כל התבניות, שולחים את בקשת ה-GET הבאה.
משתמשים בשיטת ה-HTTP ובכתובת ה-URL הבאות:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesכדי לצמצם את רשימת המכונות לאזור ספציפי, שולחים את בקשת GET הבאה.
משתמשים בשיטת ה-HTTP ובכתובת ה-URL הבאות:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplatesמספקים את הערכים הבאים:
ZONE_NAME: האזור הנתמך שממנו רוצים לקבל רשימה של מופעים של מכונות וירטואליות.
PROJECT_ID: מזהה הפרויקט שממנו רוצים לקבל רשימה של מופעים של מכונות וירטואליות.
שימוש בהזמנות עם מכונות וירטואליות מסוג Confidential VM
אתם יכולים להשתמש בהזמנות כדי לוודא שיש לכם קיבולת למכונות הווירטואליות שלכם מסוג Confidential VM רק עם סוג המכונה G4.
כדי להשתמש בהזמנה עבור מכונת Confidential VM:
יוצרים הזמנה רגילה באזור הנתמך. אתם יכולים לשלוט באופן שבו המופעים צורכים את ההזמנה הזו באמצעות הדגל
--require-specific-reservationבמהלך יצירת ההזמנה.יצירת מכונה וירטואלית מסוג Confidential VM כדי להשתמש בהזמנה. כשיוצרים את מכונת ה-VM, כוללים את הדגל
--confidential-compute-type=SEVכדי להפוך אותה למכונת Confidential VM. אופן השימוש ב-reservation על ידי המופע הזה תלוי בהגדרות הזיקה של ה-reservation.
בדוגמאות הבאות מוסבר איך להשתמש בהזמנות עם מופעים של Confidential VM. השיטה לשימוש בהזמנה תלויה באופן שבו ההזמנה נוצרה:
שימוש אוטומטי: אם יוצרים הזמנה בלי הדגל
--require-specific-reservation, אפשר ליצור מכונה וירטואלית מסוג G4 Confidential VM עם מאפיינים תואמים (כמו סוג המכונה או האזור) כדי להשתמש בהזמנה באופן אוטומטי.שימוש ספציפי: אם יוצרים הזמנה עם הדגל
--require-specific-reservation, צריך להגדיר את ההזמנה כמטרה באמצעות הדגלים--reservation-affinity=specificו---reservation=RESERVATION_NAMEכשיוצרים את המופע:gcloud compute instances create INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE_NAME \ --machine-type=g4-standard-48 \ --confidential-compute-type=SEV \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2404-lts-amd64 \ --reservation-affinity=specific \ --reservation=RESERVATION_NAMEמספקים את הערכים הבאים:
INSTANCE_NAME: השם של המופע החדש של המכונה הווירטואלית.
PROJECT_ID: אופציונלי. מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.
ZONE_NAME: האזור הנתמך שבו רוצים ליצור את המכונה הווירטואלית.
RESERVATION_NAME: השם של ההזמנה.
מידע על האופן שבו מכונות וירטואליות צורכות מקומות שמורים ועל אופן הפעולה של זיקה זמין במאמר בנושא שימוש במקומות שמורים.
הפעלה של מצב מחשוב סודי ב-GPU
מתחברים למכונה וירטואלית ב-MIG באמצעות הפקודה gcloud compute ssh.
gcloud compute sshמעדכנים את רשימת החבילות ומתקינים את הכלים והספריות הנדרשים.
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12התקנת מנהלי ההתקנים המתאימים של ה-GPU במכונה הווירטואלית. למכונות וירטואליות עם הפעלה מאובטח��, אפשר לעיין במאמר בנושא התקנת דרייברים של GPU (מכונות וירטואליות עם הפעלה מאובטחת). מומלץ להשתמש בגרסה 580 ואילך של מנהלי ההתקנים של מודול הליבה הפתוח של NVIDIA.
כדי להגדיר תקשורת מאובטחת בין ה-GPU לבין הדרייבר של ה-GPU, צריך להפעיל את Linux Kernel Crypto API (LKCA).
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -uמפעילים את מצב ההתמדה כדי ליצור חיבור מאובטח של פרוטוקול אבטחה ומודל נתונים (SPDM) בין ה-GPU לבין מנהל ההתקן של ה-GPU.
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reloadמפעילים מחדש את מכונת ה-VM כדי להחיל את ההגדרות של LKCA ומצב ההתמדה.
sudo rebootמתחברים למכונה וירטואלית ב-MIG באמצעות הפקודה gcloud compute ssh.
gcloud compute ssh(אופציונלי) מתקינים את הדוגמאות של CUDA שתומכות בגרסת מנהל ההתקן שדרושה לכם.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz tar xzvf cuda-samples.tar.gz
המאמרים הבאים
במאמר מכונות וירטואליות עם GPU ומכסות הקצאה שניתנות להפקעה מוסבר על צריכת המכסות.