בדף הזה מוסבר איך להגדיר GPU למשימות ב-Cloud Run. מעבדי GPU מתאימים לעומסי עבודה של AI, כמו אימון מודלים גדולים של שפה (LLM) באמצעות ה-frameworks המועדפים עליכם, ביצוע הסקות באצווה או אופליין במודלים גדולים של שפה (LLM), וטיפול במשימות אחרות שדורשות משאבי מחשוב רבים, כמו עיבוד וידאו ורינדור גרפיקה כמשימות ברקע. 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 למשימות מבוסס על תמחור ללא יתירות אזורית.
- הגדרות המעבד (CPU) והזיכרון של המשאב.
- החיוב על GPU הוא על כל משך מחזור החיים של המכונה.
יתירות לא אזורית של GPU
התכונה "משימות ב-Cloud Run" מספקת תמיכה ביתירות לא אזורית רק למכונות עם GPU. אם מפעילים יתירות לא אזורית, Cloud Run מנסה להעביר את המשימות שמופעל בהן GPU למצב של יתירות כשל, ככל שניתן. Cloud Run מנתב את הרצת המשימות לאזורים אחרים רק אם יש מספיק קיבולת GPU זמינה באותו רגע. האפשרות הזו לא מבטיחה קיבולת שמורה לתרחישים של יתירות כשל, אבל היא מוזילה את העלות לשנייה של GPU.
במאמר הגדרת משימה ב-Cloud Run עם GPU מוסבר איך מפעילים יתירות לא אזורית.
שליחת בקשה להגדלת המכסה
המכסה של יחידות ה-GPU מסוג nvidia-rtx-pro-6000 ב-Cloud Run ניתנת ב-milliGPU. בפרויקטים שבהם משתמשים ב-GPU מסוג nvidia-rtx-pro-6000 באזור מסוים בפעם הראשונה, תוקצה באופן אוטומטי מכסה של 3,000 milliGPU (כשהיתירות האזורית מושבתת) כשהפריסה הראשונה תיווצר. זה שווה ערך ל-3 מעבדי GPU. בפרויקטים שמשתמשים ב-nvidia-l4 יחידות GPU של Cloud Run באזור מסוים בפעם הראשונה, מוקצית באופן אוטומטי מכסה של 3 יחידות GPU (כשהיתירות האזורית מושבתת) כשיוצרים את הפריסה הראשונה.
חשוב לזכור שההקצאה האוטומטית של המכסות תלויה בקיבולת המעבד והזיכרון. המכסה הזו מגבילה את מספר יחידות ה-GPU שיכולות להיות פעילות בכל השירותים, המשימות ומאגרי ה-Workers של הפרויקט בכל זמן נתון.
אם אתם צריכים עוד מעבדים גרפיים ב-Cloud Run בשביל המשימות, אתם יכולים לבקש הגדלה של המכסה.
לפני שמתחילים
ברשימה הבאה מפורטות הדרישות והמגבלות כשמשתמשים במעבדים גרפיים ב-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). איך מקצים תפקידים- במאמר שיטות מומלצות: משימות ב-Cloud Run עם מעבדי GPU מוסבר איך לשפר את הביצועים כשמשתמשים במשימות ב-Cloud Run עם מעבדי GPU.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות ב-Cloud Run, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במשימות:
- מפתח Cloud Run (
roles/run.developer) – המשימה ב-Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) – זהות השירות
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם המשימה ב-Cloud Run מתממשקת עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרת משימה ב-Cloud Run לשימוש ביחידות GPU
אפשר להגדיר משימה ב-Cloud Run כך שתשתמש במעבדים גרפיים באמצעותGoogle Cloud המסוף, ה-CLI של gcloud או YAML:
המסוף
נכנסים לדף Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Jobs:
אם אתם יוצרים משימה חדשה, לוחצים על Deploy container כדי למלא את דף הגדרות המשימה הראשוני.
אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration.
לוחצים על Containers, Connections, Security כדי להרחיב את דף מאפייני המשימה.
בכרטיסייה Containers, מגדירים את הזיכרון וה-CPU בהתאם לדרישות שמפורטות בקטע סוגי GPU נתמכים.
מסמנים את התיבה GPU.
בוחרים את סוג ה-GPU מהתפריט GPU type ואת מספר יחידות ה-GPU מהתפריט Number of GPUs.
לוחצים על יצירה או על עדכון.
gcloud
כדי להפעיל יתירות לא-אזורית, צריך לציין את הערך --no-gpu-zonal-redundancy. ההרשאה הזו נדרשת כדי להשתמש ב-GPU עם משימות.
כדי ליצור משימה עם מעבדים גרפיים, מריצים את הפקודה הבאה:
gcloud run jobs create JOB \ --image=IMAGE_URL \ --gpu=1 \ --no-gpu-zonal-redundancy
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/job:latest.
-
כדי לעדכן את הגדרות ה-GPU במשימה קיימת, מריצים את הפקודה הבאה:
gcloud run jobs update JOB \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --parallelism PARALLELISM \ --no-gpu-zonal-redundancy
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/job:latest. -
CPU: מספר המעבדים. ל-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות20מעבדים. ב-L4 GPU, צריך לציין לפחות4מעבדים. -
MEMORY: נפח הזיכרון. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות80Gi(80GiB). ב-GPU מסוג L4, צריך לציין לפחות16Gi(16 GiB). -
GPU_NUMBER: הערך1(אחד). אם לא מציינים את הפרמטר הזה אבל מציינים את GPU_TYPE, ברירת המחדל היא1. -
GPU_TYPE: סוג ה-GPU. ל-NVIDIA RTX PRO 6000 Blackwell GPU, מזיניםnvidia-rtx-pro-6000. ל-L4 GPU, מזיניםnvidia-l4(nvidia-L4, האות L קטנה, לא הערך המספרי 14). -
PARALLELISM: ערך של מספר שלם שקטן מהערך הנמוך ביותר של מגבלות המכסות הרלוונטיות שהקציתם לפרויקט.
-
YAML
צריך להגדיר את ההערה run.googleapis.com/gpu-zonal-redundancy-disabled: לערך true. כך מפעילים יתירות לא-אזורית, שנדרשת למשימות של מעבדים גרפיים.
אם אתם יוצרים משימה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, הורידו את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB --format export > job.yaml
מעדכנים את המאפיין
nvidia.com/gpu,annotations: run.googleapis.com/launch-stageלשלב ההשקה, וגםnodeSelector::
run.googleapis.com/acceleratorapiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB labels: cloud.googleapis.com/location: REGION spec: template: metadata: annotations: run.googleapis.com/gpu-zonal-redundancy-disabled: 'true' spec: template: spec: containers: - image: IMAGE_URL limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
REGION: האזור של Google Cloud . לדוגמה:europe-west1. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/job:latest. -
CPU: מספר המעבדים. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות20מעבדים. ב-L4 GPU, צריך לציין לפחות4מעבדים. -
MEMORY: נפח הזיכרון. ב-NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות80Gi (80GiB). ב-GPU מסוג L4, צריך לציין לפחות16Gi (16GiB). -
GPU_NUMBER: הערך1(אחד), כי אנחנו תומכים רק בצירוף של GPU אחד לכל מכונה של Cloud Run. -
GPU_TYPE: סוג ה-GPU. ל-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, מזיניםnvidia-rtx-pro-6000. ל-GPU מסוג L4, מזינים את הערךnvidia-l4(nvidia-L, האות L קטנה 4 פעמים, לא הערך המספרי 14).
-
יוצרים או מעדכנים את המשימה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
כברירת מחדל, הפקודה
gcloud run jobs replaceמשתמשת בקובץjob.yamlאם הוא קיים.
הצגת הגדרות ה-GPU
כדי לראות את ההגדרות הנוכחיות של ה-GPU במשימת Cloud Run, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשימה כדי לפתוח את הדף Job details.
לוחצים על הצגה ועריכה של הגדרות המשימה.
מאתרים את הגדרת ה-GPU בפרטי ההגדרה.
gcloud
מריצים את הפקודה הבאה:
gcloud run jobs describe JOB
מאתרים את הגדרת ה-GPU בהגדרות שמוחזרות.
הסרת משאבי GPU ממשימה
אפשר לנתק משאבי GPU ממשימה באמצעות מסוף Google Cloud , ה-CLI של gcloud או YAML:
המסוף
נכנסים לדף Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Jobs:
אם אתם יוצרים משימה חדשה, לוחצים על Deploy container כדי למלא את דף הגדרות המשימה הראשוני.
אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration.
לוחצים על Containers, Connections, Security כדי להרחיב את דף מאפייני המשימה.
בכרטיסייה Containers, מבטלים את הסימון של התיבה GPU.
לוחצים על עדכון.
gcloud
כדי לנתק את משאבי ה-GPU מהמשימה ב-Cloud Run, מגדירים את מספר יחידות ה-GPU ל-0 באמצעות הפקודה gcloud run jobs update:
gcloud run jobs update JOB --gpu 0
מחליפים את JOB בשם של המשימה ב-Cloud Run.
YAML
אם אתם יוצרים משימה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, הורידו את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB --format export > job.yaml
מוחקים את השורות
nvidia.com/gpu:,run.googleapis.com/gpu-zonal-redundancy-disabled: 'true'ו-nodeSelector:.
run.googleapis.com/accelerator: GPU_TYPEיוצרים או מעדכנים את המשימה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
כברירת מחדל, הפקודה
gcloud run jobs replaceמשתמשת בקובץjob.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.
מידע על מעבדים גרפיים ועל מקביליות
אם אתם מריצים משימות מקבילות בהרצה של משימה, צריך לקבוע ולהגדיר ערך מקביליות נמוך יותר ממכסת ה-GPU ללא יתירות אזורית שהוקצתה לפרויקט. כדי לבקש להגדיל את המכסה, קראו את המאמר איך מגדילים את המכסה. משימות GPU מתחילות כמה שיותר מהר, עד למקסימום שמשתנה בהתאם למכסת ה-GPU שהקציתם לפרויקט ולאזור שבחרתם. הפריסות של Cloud Run נכשלות אם מגדירים מקביליות שחורגת ממגבלת המכסה של ה-GPU.
כדי לחשב את מכסת ה-GPU שהמשימה משתמשת בה בכל הפעלה, מכפילים את מספר יחידות ה-GPU לכל משימה בערך המקביליות. לדוגמה, אם יש לכם מכסה של 10 יחידות GPU, ואתם פורסים את המשימה ב-Cloud Run עם --gpu=1, --parallelism=10, המשימה תצרוך את כל 10 יחידות ה-GPU. לחלופין, אם אתם פורסים באמצעות --gpu=1, --parallelism=20, הפריסות נכשלות.
מידע נוסף זמין במאמר שיטות מומלצות: משימות ב-Cloud Run עם מעבדי GPU.
המאמרים הבאים
במאמר הרצת הסקת AI ב-Cloud Run באמצעות GPUs תוכלו למצוא מדריכים בנושא.