הגדרת מעבדי GPU למשימות ב-Cloud Run

בדף הזה מוסבר איך להגדיר 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 מציעה זמינות על פי דרישה ללא צורך בהזמנות, בדומה לאופן שבו CPU על פי דרישה וזיכרון על פי דרישה פועלים ב-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:

האזורים הבאים נתמכים על ידי 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 באותו רגע. אפשרות זו אינה מבטיחה קיבולת שמורה עבור תרחישי יתירות כשל, אך מביאה לעלות נמוכה יותר לשנייה של GPU.

ראה הגדרת משימת Cloud Run עם GPU לקבלת פרטים על הפעלת יתירות שאינה אזורית.

שליחת בקשה להגדלת המכסה

המיכסה של יחידות GPU ב-Cloud Run nvidia-rtx-pro-6000 ניתנת במילי-GPU. פרויקטים המשתמשים לראשונה ב-GPU של nvidia-rtx-pro-6000 באזור יקבלו אוטומטית מכסת 3,000 מילי-GPU (יתירות אזורית כבויה) בעת יצירת הפריסה הראשונה. זה שווה ל-3 יחידות GPU. כשיוצרים פריסה ראשונה בפרויקטים שמשתמשים ב-GPUnvidia-l4 של Cloud Run באזור מסוים בפעם הראשונה, מקבלים אוטומטית מכסת GPU של 3 (יתירות אזורית מושבתת).

שים לב כי מענק מכסה אוטומטי זה כפוף לזמינות בהתאם לקיבולת המעבד והזיכרון שלך. זה מגביל את ספירת ה-GPU שעשויים להיות פעילים בכל השירותים, העבודות ובריכות העובדים של הפרויקט בכל זמן נתון.

אם אתם צריכים עוד יחידות GPU של Cloud Run לעבודות, אתם יכולים לבקש הגדלה של המכסה.

לפני שמתחילים

ברשימה הבאה מפורטות הדרישות והמגבלות כשמשתמשים ב-GPU ב-Cloud Run:

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מפעילים את Cloud Run API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  7. כדי לשפר את הביצועים כשמשתמשים במשימות של 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 לשימוש במעבדים גרפיים (GPUs)

אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-YAML כדי להגדיר GPU.

המסוף

  1. נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוניות של המשימה. אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת המשימה).

  3. לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.

  4. לוחצים על הכרטיסייה Containers (מאגרי תגים).

    • מגדירים את המעבד, הזיכרון והבדיקה של הפעלת האפליקציה בהתאם להמלצות שבקטע לפני שמתחילים.
    • סמן את תיבת הסימון של ה-GPU. אחר כך בוחרים את סוג ה-GPU בתפריט סוג ה-GPU ואת מספר ה-GPU בתפריט מספר ה-GPU.
  5. לוחצים על יצירה או על עדכון.

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

מחליפים את מה שכתוב בשדות הבאים:

כדי לעדכן את הגדרת ה-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. עבור NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות 20 CPU. ב-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 לעבודות.

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מעדכנים את מאפיין nvidia.com/gpu, annotations: run.googleapis.com/launch-stage בשלב ההשקה, ואת nodeSelector:
    run.googleapis.com/accelerator
    :

    apiVersion: 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. עבור NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות 20 CPU. ב-L4 GPU, צריך לציין לפחות 4 מעבדים.
    • MEMORY: נפח הזיכרון. במקרה של NVIDIA RTX PRO 6000 Blackwell GPU, צריך לציין לפחות 80Gi ‏ (80 GiB). עבור GPU L4, עליך לציין לפחות 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).
  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    gcloud run jobs replace job.yaml

    אם קיים קובץ job.yaml, הפקודה gcloud run jobs replace משתמשת בו כברירת מחדל.

הצגת הגדרות ה-GPU

כדי להציג את הגדרות ה-GPU הנוכחיות עבור משימת Cloud Run שלך:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Run jobs:

    כניסה לדף Cloud Run jobs

  2. לוחצים על המשרה שמעניינת אתכם כדי לפתוח את הדף פרטי המשרה.

  3. לוחצים על View and Edit job configuration (הצגה ועריכה של הגדרות העבודה).

  4. מחפשים את הגדרת ה-GPU בפרטי ההגדרה.

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run jobs describe JOB_NAME
  2. אתר את הגדרת ה-GPU בתצורה המוחזרת.

ניתוק משאבי GPU ממשימה

אפשר לנתק משאבי GPU מעבודה באמצעות Google Cloud המסוף, Google Cloud CLI או YAML.

המסוף

  1. נכנסים לדף Jobs ב-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. ברשימת המשרות, לחץ על משרה כדי לפתוח את פרטיה.

  3. לוחצים על הצגה ועריכה של הגדרות העבודה.

  4. לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.

  5. לוחצים על הכרטיסייה מאגר תגים.

    • מבטלים את הסימון של תיבת הסימון GPU.
  6. לוחצים על עדכון.

gcloud

כדי לנתק משאבי GPU מהג'וב של Cloud Run, מגדירים את מספר ה-GPU ל-0 באמצעות הפקודה gcloud run jobs update:

  gcloud run jobs update JOB_NAME --gpu 0
  

מחליפים את JOB_NAME בשם של העבודה ב-Cloud Run.

YAML

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. מוחקים את השורות nvidia.com/gpu:, run.googleapis.com/gpu-zonal-redundancy-disabled: 'true' ו-nodeSelector: run.googleapis.com/accelerator: GPU_TYPE.

  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    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. כדאי לעיין בטבלת התאימות של 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 עם מעבדים גרפיים (GPUs).

המאמרים הבאים

תוכלו להיעזר במדריכים שבמאמר הרצת היקש של AI ב-Cloud Run באמצעות יחידות GPU.