בדף הזה מוסבר איך להגדיר GPU למאגרי ה-Workers ב-Cloud Run. Google מספקת מעבדי GPU מסוג NVIDIA RTX PRO 6000 Blackwell עם זיכרון GPU (VRAM) בנפח 96GB, ומעבדי GPU מסוג NVIDIA L4 עם זיכרון GPU (VRAM) בנפח 24GB, שהוא נפרד מזיכרון המכונה.
ה-GPU ב-Cloud Run מנוהל באופן מלא, בלי צורך במנהלי התקנים או בספריות נוספים. התכונה GPU מציעה זמינות על פי דרישה בלי צורך בהזמנות, בדומה לאופן שבו מעבד (CPU) וזיכרון פועלים על פי דרישה ב-Cloud Run.
מכונות של Cloud Run עם GPU מסוג NVIDIA RTX PRO 6000 Blackwell או GPU מסוג L4 עם מנהלי התקנים מותקנים מראש מתחילות לפעול תוך כ-5 שניות, ואז התהליכים שפועלים בקונטיינר יכולים להתחיל להשתמש ב-GPU.
אפשר להגדיר GPU אחד לכל מכונה של Cloud Run. אם אתם משתמשים בקונטיינרים משניים (sidecar), שימו לב שאפשר לצרף את ה-GPU רק לקונטיינר אחד.
סוגי ה-GPU הנתמכים
ב-Cloud Run יש תמיכה בשני סוגים של מעבדים גרפיים:
- NVIDIA RTX PRO 6000 Blackwell GPU עם גרסת הדרייבר הנוכחית של NVIDIA: 580.x.x (13.0). ל-NVIDIA RTX PRO 6000 Blackwell GPU, צריך להשתמש במינימום של 20 מעבדים (CPU) ו-80GiB זיכרון.
- L4 GPU עם גרסת הדרייבר הנוכחית של NVIDIA: 580.x.x (13.0). במעבדי GPU מסוג L4, צריך להשתמש ב-4 מעבדים לפחות ובזיכרון בנפח 16GiB.
אזורים נתמכים
האזורים הבאים נתמכים על ידי NVIDIA RTX PRO 6000 Blackwell GPU:
asia-southeast1(סינגפור).asia-south2(דלהי, הודו).-
europe-west4(הולנד)רמה נמוכה של CO2
us-central1(אייווה)רמה נמוכה של CO2
האזורים הבאים נתמכים על ידי L4 GPU:
asia-southeast1(סינגפור)asia-south1(מומבאי) . האזור הזה זמין רק בהזמנה. אם אתם מעוניינים באזור הזה, פנו לצוות התמיכה בחשבונות Google.-
europe-west1(בלגיה)רמה נמוכה של CO2
-
europe-west4(הולנד)רמה נמוכה של CO2
us-central1(איווה)רמה נמוכה של CO2 . יכול להיות שצריך לבקש הגדלה של המכסה כדי להרחיב את המשאבים באזור הזה. אם אתם מעוניינים באזור הזה, פנו לצוות התמיכה בחשבונות Google.
us-east4(צפון וירג'יניה) . יכול להיות שצריך לבקש הגדלה של המכסה כדי להרחיב את המשאבים באזור הזה. אם אתם מעוניינים באזור הזה, פנו לצוות התמיכה בחשבונות Google.
ההשפעה על המחיר
במחירון של Cloud Run תוכלו לראות את מחירי ה-GPU. שימו לב לדרישות ולשיקולים הבאים:
- יש הבדל בעלות בין יתירות אזורית של GPU לבין יתירות לא אזורית. במחירון של Cloud Run מפורטים המחירים של יחידות ה-GPU.
- אי אפשר לשנות את הגודל של מאגרי GPU worker באופן אוטומטי. אתם מחויבים על ה-GPU גם אם הוא לא מריץ שום תהליך, כל עוד המכונה של ה-GPU במאגר ה-Workers פועלת.
- המחיר של מעבד וזיכרון למאגרי Worker שונה מהמחיר של שירותים ומשימות. עם זאת, המחיר של מק"ט GPU זהה למחיר של שירותים ומשימות.
- הגדרות המעבד (CPU) והזיכרון של המשאב.
- החיוב על GPU הוא על כל משך מחזור החיים של המכונה.
אפשרויות יתירות אזורית של GPU
כברירת מחדל, Cloud Run פורס את מאגר ה-workers בכמה אזורים בתוך מחוז. הארכיטקטורה הזו מספקת עמידות מובנית: אם יש הפסקה זמנית בשירות באזור מסוים, Cloud Run מנתב באופן אוטומטי את התנועה מהאזור המושפע לאזורים תקינים באותו אזור.
כשעובדים עם משאבי GPU, חשוב לזכור שיש להם מגבלות קיבולת ספציפיות. במהלך הפסקה זמנית בשירות באזור, מנגנון יתירות הכשל הרגיל של עומסי עבודה ב-GPU מסתמך על כך שיש מספיק קיבולת GPU שלא מנוצלת באזורים התקינים שנותרו. בגלל האופי המוגבל של מעבדי GPU, יכול להיות שהקיבולת הזו לא תמיד תהיה זמינה.
כדי להגדיל את הזמינות של מאגרי ה-GPU-accelerated worker במהלך הפסקות זמניות בשירות באזורים, אתם יכולים להגדיר יתירות אזורית ספציפית למעבדי GPU:
יתירות אזורית מופעלת (ברירת המחדל): Cloud Run שומר קיבולת GPU למאגר ה-workers בכמה אזורים. כך גדל משמעותית הסיכוי שמאגר ה-workers יוכל לטפל בהצלחה בתנועה שנותבה מחדש מאזור שהושפע, ומתקבלת אמינות גבוהה יותר במהלך כשלים אזוריים, בעלות נוספת לכל שנייה של GPU.
יתירות אזורית מושבתת: Cloud Run מנסה להעביר את עומסי העבודה של ה-GPU למצב של יתירות כשל, ככל שניתן. התנועה מנותבת לתחומים אחרים רק אם יש מספיק קיבולת GPU זמינה באותו רגע. האפשרות הזו לא מבטיחה קיבולת שמורה לתרחישים של יתירות כשל, אבל היא מוזילה את העלות לשניית GPU.
SLA
הסכם ה-SLA של GPU ב-Cloud Run תלוי באפשרות שבה משתמש מאגר ה-workers: יתירות אזורית או יתירות לא אזורית. פרטים נוספים זמינים בדף הסכם SLA.
שליחת בקשה להגדלת המכסה
המכסה של GPU מסוג nvidia-rtx-pro-6000 ב-Cloud Run ניתנת ב-milliGPU.
בפרויקטים שמשתמשים ב-GPU מסוג nvidia-rtx-pro-6000 באזור מסוים בפעם הראשונה, תוקצה באופן אוטומטי מכסה של 3,000mGPU (כשהיתירות האזורית מושבתת) כשהפריסה הראשונה תיווצר. זה שווה ערך ל-3 מעבדי GPU. בפרויקטים שמשתמשים ב-nvidia-l4 GPUs ב-Cloud Run באזור מסוים בפעם הראשונה, מוקצית באופן אוטומטי מכסה של 3 GPUs (כשהיתירות האזורית מושבתת) כשיוצרים את הפריסה הראשונה.
אם אתם צריכים עוד מעבדים גרפיים ב-Cloud Run, אתם צריכים לבקש הגדלה של המכסה למאגר ה-workers ב-Cloud Run. כדי לבקש את המכסה שאתם צריכים, השתמשו בקישורים שמופיעים בלחצנים הבאים.
| צריך מכסה | קישור למכסה |
|---|---|
| NVIDIA RTX PRO 6000 Blackwell GPU עם יתירות אזורית מושבתת (מחיר נמוך יותר) | בקשת מכסת GPU בלי יתירות אזורית |
| NVIDIA RTX PRO 6000 Blackwell GPU עם יתירות אזורית מופעלת (מחיר גבוה יותר) | בקשת מכסת GPU עם יתירות אזורית |
| L4 GPU עם יתירות אזורית מושבתת (מחיר נמוך יותר) | בקשת מכסת GPU בלי יתירות אזורית |
| L4 GPU עם יתירות אזורית מופעלת (מחיר גבוה יותר) | בקשת מכסת GPU עם יתירות אזורית |
לפני שמתחילים
ברשימה הבאה מפורטות הדרישות והמגבלות כשמשתמשים במעבדים גרפיים ב-Cloud Run:
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
מפעילים את Cloud Run API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים- שליחת בקשה למכסה הנדרשת.
- במאמר שיטות מומלצות ל-GPU: מאגרי Worker ב-Cloud Run עם יחידות GPU מוסבר איך ליצור קובץ אימג' של קונטיינר ולטעון מודלים גדולים.
- מוודאים שמאגר ה-workers ב-Cloud Run מוגדר באופן הבא:
- מגדירים את החיוב לפי מכונה. שימו לב שמאגרי Worker שמוגדרים לחיוב לפי מכונה עדיין יכולים להצטמצם לאפס.
- ל-NVIDIA RTX PRO 6000 Blackwell GPU, צריך להגדיר לפחות 20 מעבדי CPU ו-80GiB זיכרון.
- ל-GPU מסוג L4, צריך להגדיר מינימום של 4 מעבדי CPU למאגר ה-workers, ומומלץ להגדיר 8 מעבדי CPU, ומינימום של זיכרון בנפח 16GiB, ומומלץ להגדיר זיכרון בנפח 32GiB.
- קובעים ומגדירים את מספר הפעולות המקבילות האופטימלי לשימוש ב-GPU.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה ולפריסה של מאגרי Worker ב-Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במאגרי ה-Worker:
- מפתח Cloud Run (
roles/run.developer) – מאגר ה-workers של Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) – זהות השירות
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם מאגר ה-Workers של Cloud Run מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח של Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרת מאגר של וורקרים ב-Cloud Run עם GPU
כל שינוי בהגדרות יוצר גרסה חדשה. גם גרסאות עתידיות יקבלו באופן אוטומטי את הגדרת התצורה הזו, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אפשר להגדיר את ה-GPU באמצעות מסוף Google Cloud , Google Cloud CLI או YAML.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Worker Pools ואז על Deploy container כדי להגדיר מאגר חדש של קבצים לעיבוד. אם אתם מגדירים מאגר קיים של Worker, לוחצים על מאגר ה-Worker ואז על Edit and deploy new revision.
אם אתם מגדירים מאגר עובדים חדש, מלאו את דף ההגדרות הראשוני של מאגר העובדים, ואז לחצו על Containers, Networking, Security כדי להרחיב את דף ההגדרות של מאגר העובדים.
לוחצים על הכרטיסייה מאגרי תגים.
- מגדירים את המעבד (CPU), הזיכרון, בו-זמניות, סביבת ההפעלה ובדיקת ההפעלה בהתאם להמלצות בקטע לפני שמתחילים.
- מסמנים את התיבה GPU, בוחרים את סוג ה-GPU בתפריט GPU type ואת מספר יחידות ה-GPU בתפריט Number of GPUs.
- כברירת מחדל, יתירות אזורית מופעלת. כדי לשנות את ההגדרה הנוכחית, מסמנים את התיבה GPU כדי להציג את האפשרויות של יתירות GPU.
- כדי להשבית את היתירות האזורית, בוחרים באפשרות No zonal redundancy.
- כדי להפעיל את האפשרות, בוחרים ב-Zonal redundancy.
לוחצים על Create או על Deploy.
gcloud
כדי ליצור מאגר של GPU-enabled worker, משתמשים בפקודה gcloud run worker-pools deploy:
gcloud run worker-pools deploy WORKER_POOL \ --image IMAGE_URL \ --gpu 1
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest.
כדי לעדכן את הגדרת ה-GPU של מאגר ה-Workers, משתמשים בפקודה gcloud run worker-pools update:
gcloud run worker-pools update WORKER_POOL \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --GPU_ZONAL_REDUNDANCY
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest. - CPU: מספר המעבדים. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות
20מעבדים. ל-NVIDIA L4 GPU, צריך לציין לפחות מעבד (CPU) אחד (4). - MEMORY: נפח הזיכרון. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות
80Gi (80GiB). ב-NVIDIA L4 GPU, צריך לציין לפחות16Gi(16 GiB). - GPU_NUMBER: הערך
1(אחד). אם לא מציינים את הערך הזה אבל יש GPU_TYPE, ברירת המחדל היא1. - GPU_TYPE: סוג ה-GPU. NVIDIA RTX PRO 6000 Blackwell GPU,
הזינו
nvidia-rtx-pro-6000. ל-GPU מסוג L4, מזינים את הערךnvidia-l4(nvidia-L, האות L קטנה 4 פעמים, לא הערך המספרי 14). - GPU_ZONAL_REDUNDANCY: הערך
no-gpu-zonal-redundancyכדי להשבית את היתירות האזורית, או הערךgpu-zonal-redundancyכדי להפעיל אותה.
YAML
אם אתם יוצרים מאגר חדש של Worker, דלגו על השלב הזה. אם אתם מעדכנים מאגר קיים של Worker, הורידו את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
מעדכנים את המאפיין
nvidia.com/gpu:וגם:nodeSelector::
run.googleapis.com/accelerator:apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: metadata: annotations: run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY' spec: containers: - image: IMAGE_URL resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: '1' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
-
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest. - CPU: מספר המעבדים. ב-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות
20מעבדים. ב-L4 GPU, צריך לציין לפחות4מעבדים. - MEMORY: נפח הזיכרון. ב-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות
80Gi (80GiB). ב-GPU מסוג L4, צריך לציין לפחות16Gi (16GiB). - GPU_TYPE: סוג ה-GPU. ל-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, מזינים
nvidia-rtx-pro-6000. ל-GPU מסוג L4, מזינים את הערךnvidia-l4(nvidia-L, האות L קטנה 4 פעמים, לא הערך המספרי 14). - GPU_ZONAL_REDUNDANCY: הערך
falseכדי להפעיל את היתירות האזורית של ה-GPU, או הערךtrueכדי להשבית אותה.
יוצרים או מעדכנים את מאגר ה-workers באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
כברירת מחדל, הפקודה
gcloud run worker-pools replaceמשתמשת בקובץworker-pool.yamlאם הוא קיים.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
resource "google_cloud_run_v2_worker_pool" "default" {
provider = google-beta
name = "WORKER_POOL"
location = "REGION"
template {
gpu_zonal_redundancy_disabled = "GPU_ZONAL_REDUNDANCY"
containers {
image = "IMAGE_URL"
resources {
limits = {
"cpu" = "CPU"
"memory" = "MEMORY"
"nvidia.com/gpu" = "1"
}
}
}
node_selector {
accelerator = "GPU_TYPE"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- WORKER_POOL: השם של מאגר ה-workers ב-Cloud Run.
- GPU_ZONAL_REDUNDANCY: הערך
falseכדי להפעיל את היתירות האזורית של ה-GPU, או הערךtrueכדי להשבית אותה. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר שמכיל את מאגר ה-Workers, למשלus-docker.pkg.dev/cloudrun/container/worker-pool:latest. - CPU: מספר המעבדים. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות
20מעבדים. ל-NVIDIA L4 GPU, צריך לציין לפחות מעבד (CPU) אחד (4). - MEMORY: נפח הזיכרון. ב-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות
80Gi (80GiB). ב-NVIDIA L4 GPU, צריך לציין לפחות16Gi(16 GiB). - GPU_TYPE: סוג ה-GPU. NVIDIA RTX PRO 6000 Blackwell GPU,
הזינו
nvidia-rtx-pro-6000. ל-GPU מסוג L4, מזינים את הערךnvidia-l4(nvidia-L, האות L קטנה 4 פעמים, לא הערך המספרי 14).
הצגת הגדרות ה-GPU
כדי לראות את ההגדרות הנוכחיות של ה-GPU במאגר ה-Workers של Cloud Run, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
נכנסים לדף Cloud Run worker pools במסוף Google Cloud :
לוחצים על מאגר ה-workers כדי לפתוח את הדף Worker pools details.
לוחצים על Edit and deploy new revision.
מאתרים את הגדרת ה-GPU בפרטי ההגדרות.
gcloud
מריצים את הפקודה הבאה:
gcloud run worker-pools describe WORKER_POOL
מאתרים את הגדרת ה-GPU בהגדרות שמוחזרות.
הסרת ה-GPU
אפשר להסיר GPU באמצעות מסוף Google Cloud , Google Cloud CLI או YAML.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Worker Pools ואז על Deploy container כדי להגדיר מאגר וורקרים חדש. אם אתם מגדירים מאגר קיים של Worker, לוחצים על המאגר ואז על Edit and deploy new revision.
אם אתם מגדירים מאגר עובדים חדש, מלאו את דף ההגדרות הראשוני של מאגר העובדים, ואז לחצו על Containers, Networking, Security כדי להרחיב את דף ההגדרות של מאגר העובדים.
לוחצים על הכרטיסייה מאגרי תגים.
- מבטלים את הסימון בתיבה GPU.
- לוחצים על Create או על Deploy.
gcloud
כדי להסיר את ה-GPU, מגדירים את מספר יחידות ה-GPU ל-0:
gcloud run worker-pools update WORKER_POOL --gpu 0
מחליפים את WORKER_POOL בשם של מאגר ה-Workers ב-Cloud Run.
YAML
אם אתם יוצרים מאגר חדש של Worker, דלגו על השלב הזה. אם אתם מעדכנים מאגר קיים של Worker, הורידו את הגדרת ה-YAML שלו:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
מוחקים את השורות
nvidia.com/gpu:ו-nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.יוצרים או מעדכנים את מאגר ה-workers באמצעות הפקודה הבאה:
gcloud run worker-pools replace worker-pool.yaml
כברירת מחדל, הפקודה
gcloud run worker-pools replaceמשתמשת בקובץworker-pool.yamlאם הוא קיים.
ספריות של מנהלי התקנים
כברירת מחדל, כל ספריות הדרייברים של NVIDIA RTX PRO 6000 Blackwell GPU ו-NVIDIA L4 GPU מותקנות ב-/usr/local/nvidia/lib64. Cloud Run מוסיף באופן אוטומטי את הנתיב הזה למשתנה הסביבה LD_LIBRARY_PATH (כלומר ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64) של הקונטיינר עם ה-GPU. כך המקשר הדינמי יכול למצוא את ספריות מנהלי ההתקנים של NVIDIA. המקשר מחפש ופותר נתיבים לפי הסדר שמופיע במשתנה הסביבה LD_LIBRARY_PATH. כל ערך שתציינו במשתנה הזה יקבל עדיפות על פני נתיב ברירת המחדל של ספריות הדרייברים של Cloud Run, שהוא /usr/local/nvidia/lib64.
אם אתם רוצים להשתמש בגרסת CUDA גבוהה מ-13.0, הדרך הכי קלה היא להסתמך על תמונת בסיס חדשה יותר של NVIDIA עם חבילות תאימות קדימה שכבר מותקנות. אפשרות אחרת היא להתקין ידנית את חבילות התאימות של NVIDIA ולהוסיף אותן ל-LD_LIBRARY_PATH. כדי לבדוק אילו גרסאות של CUDA תואמות קדימה לגרסת מנהל ההתקן של NVIDIA, אפשר לעיין במטריצת התאימות של NVIDIA.