בדף הזה מוסבר איך להגדיר GPU לעבודות ב-Cloud Run. מעבדי GPU מתאימים לעומסי עבודה של AI, כמו אימון מודלים גדולים של שפה (LLM) באמצעות מסגרות מועדפות, ביצוע הסקה אופליין או הסקה של קבוצות נתונים ב-LLM וטיפול במשימות אחרות שדורשות הרבה כוח מחשוב, כמו עיבוד וידאו ורינדור גרפי כמשימות ברקע. Google מספקת GPU מסוג NVIDIA RTX PRO 6000 Blackwell עם זיכרון GPU (VRAM) בנפח 96GB ו-GPU מסוג NVIDIA L4 עם זיכרון GPU (VRAM) בנפח 24GB, שהוא נפרד מזיכרון האינסטנס.
השימוש ב-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: 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(מומבאי) <0x האזור הזה זמין רק בהזמנה. אם אתם מעוניינים באזור הזה, תוכלו לפנות לצוות התמיכה בחשבונות Google.europe-west1(בלגיה)רמה נמוכה של CO2
europe-west4(הולנד)רמה נמוכה של CO2
us-central1(אייווה)רמה נמוכה של CO2 . יכול להיות שיהיה צורך בבקשה להגדלת המכסה כדי להרחיב את המשאבים באזור הזה. אם אתם מעוניינים באזור הזה, תוכלו לפנות לצוות התמיכה בחשבונות Google.
-
us-east4(צפון וירג'יניה) <0x0A יכול להיות שיהיה צורך בבקשה להגדלת המכסה כדי להרחיב את המשאבים באזור הזה. אם אתם מעוניינים באזור הזה, תוכלו לפנות לצוות התמיכה בחשבונות Google.
השפעה על התמחור
פרטים על תמחור של GPU זמינים במאמר תמחור של Cloud Run. שימו לב לדרישות ולשיקולים הבאים:
- התמחור של יחידות GPU לעבודות הוא ללא יתירות אזורית.
- הגדרות המעבד (CPU) והזיכרון של המשאב.
- החיוב על ה-GPU מתבצע למשך כל מחזור החיים של המופע.
יתירות של GPU שלא מוגבלת לאזור
התכונה 'משימות Cloud Run' מספקת תמיכה בשכפול לא אזורי רק למופעים עם GPU. אם מפעילים יתירות לא אזורית, מערכת Cloud Run מנסה לבצע מעבר לגיבוי במקרה של כשל במשימות שמופעל בהן GPU, אבל לא מובטח שהמעבר יצליח. מערכת Cloud Run מעבירה את ההרצה של משימות לאזורים אחרים רק אם יש מספיק קיבולת של GPU באותו רגע. האפשרות הזו לא מבטיחה קיבולת שמורה לתרחישי יתירות כשל, אבל העלות שלה נמוכה יותר לשנייה של GPU.
פרטים על הפעלת יתירות לא אזורית מופיעים במאמר הגדרת משימה ב-Cloud Run עם GPU.
שליחת בקשה להגדלת המכסה
המיכסה של יחידות GPU ב-Cloud Run nvidia-rtx-pro-6000 ניתנת במילי-GPU. כשיוצרים פריסה ראשונה בפרויקטים שמשתמשים ב-nvidia-rtx-pro-6000 GPU באזור מסוים בפעם הראשונה, מקבלים באופן אוטומטי מכסת 3,000 milliGPU (יתירות אזורית מושבתת). זה שווה ל-3 יחידות GPU. כשיוצרים פריסה ראשונה בפרויקטים שמשתמשים ב-GPUnvidia-l4 של Cloud Run באזור מסוים בפעם הראשונה, מקבלים אוטומטית מכסת 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, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים- כדי לשפר את הביצועים כשמשתמשים במשימות של 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
אפשר להגדיר עבודת Cloud Run לשימוש ב-GPU באמצעותGoogle Cloud המסוף, ה-CLI של gcloud או YAML:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run:
בתפריט הניווט של Cloud Run, לוחצים על Jobs (משימות):
אם יוצרים משימה חדשה, לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוני של המשימה.
אם מגדירים עבודה קיימת, בוחרים את העבודה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת העבודה).
לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.
בכרטיסייה Containers (מאגרי תגים), מגדירים את הזיכרון ואת המעבד (CPU) בהתאם לדרישות שמפורטות במאמר סוגי מעבדי GPU נתמכים.
מסמנים את תיבת הסימון GPU.
בתפריט סוג ה-GPU, בוחרים את סוג ה-GPU, ובתפריט מספר ה-GPU, בוחרים את מספר ה-GPU.
לוחצים על יצירה או על עדכון.
gcloud
כדי להפעיל יתירות לא אזורית, צריך לציין את הערך --no-gpu-zonal-redundancy. הפעולה הזו נדרשת כדי להשתמש ב-GPU עם משימות.
כדי ליצור משימה עם הפעלת 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: מספר יחידות ה-CPU. ב-GPU מסוג NVIDIA RTX PRO 6000 Blackwell, צריך לציין לפחות20מעבדים. ב-GPU מסוג L4, צריך לציין לפחות4מעבדים (CPU). -
MEMORY: נפח הזיכרון. בשביל NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות80Gi(80 GiB). ב-GPU מסוג L4, צריך לציין לפחות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-L4 באותיות קטנות L, לא הערך המספרי 14). -
PARALLELISM: ערך של מספר שלם שקטן מהערך הנמוך ביותר של מגבלות המכסה הרלוונטיות שהקציתם לפרויקט.
-
YAML
צריך להגדיר את ההערה run.googleapis.com/gpu-zonal-redundancy-disabled: לערך true. ההגדרה הזו מאפשרת יתירות לא אזורית, שנדרשת למעבדי GPU לעבודות.
אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-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: מספר יחידות ה-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. אם משתמשים ב-GPU NVIDIA RTX PRO 6000 Blackwell, מזינים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 או ב-Google Cloud CLI:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה כדי לפתוח את הדף פרטי המשרה.
לוחצים על הצגה ועריכה של הגדרות העבודה.
מחפשים את הגדרת ה-GPU בפרטי התצורה.
gcloud
מריצים את הפקודה הבאה:
gcloud run jobs describe JOB
מחפשים את הגדרת ה-GPU בתצורה שמוחזרת.
ניתוק משאבי GPU מעבודה
אפשר לנתק משאבי GPU מעבודה באמצעות מסוף Google Cloud , ה-CLI של gcloud או YAML:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run:
בתפריט הניווט של 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
אם קיים קובץ
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 שגבוהה מ-13.0, הדרך הכי קלה היא להסתמך על תמונת בסיס חדשה יותר של NVIDIA עם חבילות תאימות קדימה שכבר מותקנות. אפשרות נוספת היא להתקין ידנית את חבילות התאימות קדימה של NVIDIA ולהוסיף אותן ל-LD_LIBRARY_PATH. כדי לדעת אילו גרסאות של CUDA תואמות לגרסה של מנהל ההתקן של NVIDIA שצוינה, אפשר לעיין בטבלת התאימות של 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.