בדף הזה מוסבר איך להגדיר GPU לעבודות ב-Cloud Run. מעבדי GPU מתאימים לעומסי עבודה של AI, כמו אימון מודלים גדולים של שפה (LLM) באמצעות מסגרות מועדפות, ביצוע הסקה אופליין או הסקה של קבוצות נתונים במודלים גדולים של שפה (LLM) וטיפול במשימות אחרות שדורשות הרבה כוח מחשוב, כמו עיבוד וידאו ועיבוד גרפי כמשימות ברקע. Google מספקת GPU מסוג NVIDIA RTX PRO 6000 Blackwell עם 96GB של זיכרון GPU (VRAM) ו-GPU מסוג NVIDIA L4 עם 24GB של זיכרון GPU (VRAM), שהוא נפרד מזיכרון המופע.
ה-GPU ב-Cloud Run מנוהל באופן מלא, ואין צורך במנהלי התקנים או בספריות נוספים. תכונת ה-GPU מציעה זמינות על פי דרישה ללא צורך בהזמנות, בדומה לאופן שבו מעבד על פי דרישה וזיכרון על פי דרישה פועלים ב-Cloud Run.
מופעי Cloud Run עם GPU מסוג NVIDIA RTX PRO 6000 Blackwell או L4 עם דרייברים מותקנים מראש מתחילים לפעול תוך כ-5 שניות, ובשלב הזה התהליכים שפועלים בקונטיינר יכולים להתחיל להשתמש ב-GPU.
אפשר להגדיר GPU אחד לכל מופע Cloud Run. אם משתמשים במאגרי sidecar, חשוב לזכור שאפשר לצרף את ה-GPU רק למאגר אחד.
סוגי GPU נתמכים
Cloud Run תומך בשני סוגים של יחידות GPU:
- NVIDIA RTX PRO 6000 Blackwell GPU עם הגרסה הנוכחית של דרייבר NVIDIA: 580.x.x (13.0). כדי להשתמש ב-GPU NVIDIA RTX PRO 6000 Blackwell, צריך להשתמש ב-20 ליבות CPU ובזיכרון בנפח 80GiB לפחות.
- L4 GPU עם גרסת הדרייבר הנוכחית של NVIDIA: 535.x.x (12.2). ב-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.
השפעה על התמחור
פרטים על תמחור של GPU זמינים במאמר תמחור של Cloud Run. שימו לב לדרישות ולשיקולים הבאים:
- התמחור של יחידות GPU לעבודות הוא ללא יתירות אזורית.
- הגדרות המעבד (CPU) והזיכרון של המשאב.
- החיוב על ה-GPU מתבצע לכל משך מחזור החיים של המופע.
יתירות של GPU שלא מוגבלת לאזור
התכונה 'משימות Cloud Run' מספקת תמיכה ביתירות לא אזורית רק למופעים עם GPU. אם מפעילים יתירות לא אזורית, מערכת Cloud Run מנסה לבצע מעבר לגיבוי במקרה של כשל במשימות שמופעל בהן GPU, על בסיס האפשרות הטובה ביותר. מערכת Cloud Run מעבירה את ההרצה של משימות לאזורים אחרים רק אם יש מספיק קיבולת של GPU באותו רגע. האפשרות הזו לא מבטיחה קיבולת שמורה לתרחישי מעבר לגיבוי (failover), אבל העלות שלה נמוכה יותר לכל שנייה של שימוש ב-GPU.
פרטים על הפעלת יתירות לא אזורית מופיעים במאמר הגדרת משימה ב-Cloud Run עם GPU.
שליחת בקשה להגדלת המכסה
המיכסה של יחידות GPU ב-Cloud Run nvidia-rtx-pro-6000 ניתנת במילי-GPU. כשיוצרים פריסה ראשונה בפרויקטים שמשתמשים ב-GPU באזור מסוים בפעם הראשונה, מקבלים באופן אוטומטי מכסת GPU של 3,000 מילי-GPU (יתירות אזורית מושבתת).nvidia-rtx-pro-6000 זה שווה ל-3 יחידות GPU. כשיוצרים פריסה ראשונה בפרויקטים שמשתמשים ב-GPU של Cloud Run nvidia-l4 באזור מסוים בפעם הראשונה, מקבלים אוטומטית מכסת GPU של 3 (יתירות אזורית מושבתת).
שימו לב: הקצאת המכסה האוטומטית הזו תלויה בזמינות, בהתאם לקיבולת המעבד והזיכרון שלכם. המגבלה הזו חלה על מספר ה-GPU שיכולים להיות פעילים בכל שירותי הפרויקט, המשימות ומאגרי העובדים בכל זמן נתון.
אם אתם צריכים עוד יחידות GPU של Cloud Run לעבודות, אתם יכולים לבקש הגדלה של המכסה.
לפני שמתחילים
ברשימה הבאה מפורטות הדרישות והמגבלות כשמשתמשים ב-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, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים- כדי לשפר את הביצועים כשמשתמשים במשימות של Cloud Run עם GPU, מומלץ לעיין במאמר שיטות מומלצות: משימות של Cloud Run עם GPU.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במשימות:
- Cloud Run Developer (
roles/run.developer) – המשימה ב-Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) – זהות השירות
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת משימת Cloud Run לשימוש ביחידות GPU
אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-YAML כדי להגדיר GPU.
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).
לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה מאגר תגים.
- מגדירים את המעבד, הזיכרון והבדיקה של הפעלת האפליקציה בהתאם להמלצות שבקטע לפני שמתחילים.
- מסמנים את תיבת הסימון של ה-GPU. אחר כך בוחרים את סוג ה-GPU בתפריט סוג ה-GPU ואת מספר ה-GPU בתפריט מספר ה-GPU.
לוחצים על יצירה או על עדכון.
gcloud
כדי להפעיל יתירות לא אזורית, צריך לציין את הערך --no-gpu-zonal-redundancy. הפעולה הזו נדרשת כדי להשתמש ב-GPU בעבודות.
כדי ליצור משימה עם הפעלת GPU, משתמשים בפקודה gcloud run jobs create:
gcloud run jobs create JOB_NAME \ --image=IMAGE \ --gpu=1 \ --no-gpu-zonal-redundancy
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest.
כדי לעדכן את הגדרת ה-GPU של משימה, משתמשים בפקודה gcloud run jobs update:
gcloud run jobs update JOB_NAME \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --parallelism PARALLELISM \ --no-gpu-zonal-redundancy
מחליפים את מה שכתוב בשדות הבאים:
- JOB_NAME: השם של המשימה ב-Cloud Run.
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. - CPU: מספר יחידות ה-CPU. ב-GPU NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות
20מעבדים. ב-L4 GPU, צריך לציין לפחות4מעבדים. - MEMORY: נפח הזיכרון. במקרה של NVIDIA RTX PRO 6000 Blackwell
GPU, צריך לציין לפחות
80Gi(80 GiB). עבור L4 GPU, צריך לציין לפחות16Gi (16 GiB). - GPU_NUMBER: הערך
1(אחד). אם לא מציינים את הפרמטר הזה אבל מציינים GPU_TYPE, ברירת המחדל היא1. - GPU_TYPE: סוג ה-GPU. אם משתמשים ב-GPU NVIDIA RTX PRO 6000 Blackwell, מזינים
nvidia-rtx-pro-6000. עבור L4 GPU, מזינים את הערךnvidia-l4(nvidia-L4 באותיות קטנות, לא הערך המספרי 14). - PARALLELISM: ערך של מספר שלם שקטן מהערך הנמוך ביותר של מגבלות המכסה הרלוונטיות שהקציתם לפרויקט.
YAML
צריך להגדיר את ההערה run.googleapis.com/gpu-zonal-redundancy-disabled: לערך true. כך מפעילים יתירות לא אזורית, שנדרשת למעבדי GPU לעבודות.
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --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_NAME 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_NAME: השם של המשימה ב-Cloud Run.
- IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest - CPU: מספר ליבות ה-CPU. ב-GPU NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות
20מעבדים. ב-L4 GPU, צריך לציין לפחות4מעבדים. - MEMORY: נפח הזיכרון. במקרה של NVIDIA RTX PRO 6000 Blackwell
GPU, צריך לציין לפחות
80Gi(80 GiB). עבור L4 GPU, צריך לציין לפחות16Gi (16 GiB). - GPU_NUMBER: הערך
1(אחד) כי אנחנו תומכים רק בצירוף של GPU אחד לכל מכונת Cloud Run. - GPU_TYPE: סוג ה-GPU. NVIDIA RTX PRO 6000 Blackwell GPU,
enter
nvidia-rtx-pro-6000. עבור L4 GPU, מזינים את הערךnvidia-l4(nvidia-L4 באותיות קטנות, לא הערך המספרי 14).
יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
אם קיים קובץ
job.yaml, הפקודהgcloud run jobs replaceמשתמשת בו כברירת מחדל.
הצגת הגדרות ה-GPU
כדי לראות את הגדרות ה-GPU הנוכחיות של משימת Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה שמעניינת אתכם כדי לפתוח את הדף פרטי המשרה.
לוחצים על View and Edit job configuration (הצגה ועריכה של הגדרות העבודה).
מחפשים את הגדרת ה-GPU בפרטי התצורה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs describe JOB_NAME
מאתרים את הגדרת ה-GPU בתצורה שמוחזרת.
ניתוק משאבי GPU מעבודה
אפשר לנתק משאבי GPU מעבודה באמצעות Google Cloud המסוף, Google Cloud CLI או YAML.
המסוף
נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :
ברשימת המשרות, לוחצים על משרה כדי לפתוח את הפרטים שלה.
לוחצים על הצגה ועריכה של הגדרות העבודה.
לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
לוחצים על הכרטיסייה מאגר תגים.
- מבטלים את הסימון של תיבת הסימון GPU.
לוחצים על עדכון.
gcloud
כדי לנתק משאבי GPU מהג'וב של Cloud Run, מגדירים את מספר ה-GPU ל-0 באמצעות הפקודה gcloud run jobs update:
gcloud run jobs update JOB_NAME --gpu 0
מחליפים את JOB_NAME בשם של העבודה ב-Cloud Run.
YAML
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB_NAME --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
אם קיים קובץ
job.yaml, הפקודהgcloud run jobs replaceמשתמשת בו כברירת מחדל.
ספריות של מנהלי התקנים
כברירת מחדל, כל ספריות הדרייברים של 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. ה-linker מחפש ומזהה נתיבים לפי הסדר שמופיע במשתנה הסביבה LD_LIBRARY_PATH. לכל ערך שמציינים במשתנה הזה יש עדיפות על פני נתיב ברירת המחדל של ספריות מנהלי התקנים של Cloud Run /usr/local/nvidia/lib64.
אם רוצים להשתמש בגרסת CUDA שגבוהה מ-12.2, הדרך הכי קלה היא להסתמך על תמונת בסיס חדשה יותר של NVIDIA עם חבילות תאימות קדימה שכבר מותקנות. אפשרות נוספת היא להתקין ידנית את חבילות התאימות קדימה של NVIDIA ולהוסיף אותן ל-LD_LIBRARY_PATH. כדאי לעיין בטבלת התאימות של NVIDIA כדי לדעת אילו גרסאות של CUDA תואמות לגרסת מנהל ההתקן של NVIDIA שסופקה.
מידע על יחידות GPU ועל מקביליות
אם אתם מריצים משימות מקבילות בהרצת עבודה, צריך לקבוע ולהגדיר ערך parallelism שהוא נמוך ממכסת ה-GPU ללא יתירות אזורית שהוקצתה לפרויקט. כדי לבקש להגדיל את המכסה, אפשר לעיין במאמר איך מגדילים את המכסה. משימות GPU מתחילות כמה שיותר מהר, ויכולות להגיע למספר מקסימלי שמשתנה בהתאם למכסת ה-GPU שהקציתם לפרויקט ולאזור שנבחרו. פריסות של Cloud Run נכשלות אם מגדירים מקביליות שגבוהה ממכסת ה-GPU.
כדי לחשב את מכסת ה-GPU שהמשימה שלכם משתמשת בה לכל הפעלה, מכפילים את מספר ה-GPU לכל משימת עבודה בערך המקביליות. לדוגמה, אם מכסת ה-GPU שלכם היא 10, ואתם פורסים את העבודה ב-Cloud Run עם --gpu=1, --parallelism=10, אז העבודה תנצל את כל מכסת ה-GPU שלכם. לחלופין, אם פורסים עם --gpu=1, --parallelism=20, הפריסות ייכשלו.
מידע נוסף זמין במאמר שיטות מומלצות: משימות Cloud Run עם מעבדי GPU.
המאמרים הבאים
תוכלו להיעזר במדריכים שבמאמר הפעלת היקש של AI ב-Cloud Run באמצעות יחידות GPU.