שימוש ב-GPU של NVIDIA

בדף הזה מוסבר איך להשתמש במאגרי צמתים עם מאיצי חומרה של יחידות עיבוד גרפיות (GPU) של NVIDIA כדי להפעיל משימות של למידה עמוקה כמו זיהוי תמונות, עיבוד שפה טבעית ומשימות אחרות שדורשות הרבה כוח מחשוב, באמצעות מופע קונטיינר של Knative serving.

הוספת מאגר צמתים עם יחידות GPU לאשכול GKE

מבקשים מאדמין ליצור מאגר צמתים עם מעבדי GPU:

  1. הוספת מאגר צמתים עם GPU לאשכול GKE

  2. מתקינים את מנהלי ההתקנים (דרייברים) של NVIDIA במכשירים בצמתים.

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

אפשר לציין מגבלת משאבים לצריכת GPU בשירות באמצעות המסוף Google Cloud או Google Cloud CLI כשמבצעים פריסה של שירות חדש, מעדכנים שירות קיים או פורסים עדכון:

המסוף

  1. מעבר אל Knative serving
  2. לוחצים על Create service (יצירת שירות) כדי להציג את הטופס Create service (יצירת שירות).

  3. בקטע הגדרות השירות:

    1. בוחרים את אשכול GKE עם מאגר הצמתים שמופעל בו GPU.
    2. מציינים את השם שרוצים לתת לשירות.
    3. לוחצים על הבא כדי להמשיך לקטע הבא.
  4. בקטע Configure the service's first revision (הגדרת הגרסה הראשונה של השירות):

    תמונה

    1. מוסיפים כתובת URL של קובץ אימג' של קונטיינר.
    2. לוחצים על הגדרות מתקדמות ובתפריט GPU allocated בוחרים את מספר ה-GPU שרוצים להקצות לשירות. תמונה
  5. לוחצים על הבא כדי להמשיך לקטע הבא.

  6. בקטע Configure how this service is triggered (הגדרה של אופן הפעלת השירות), בוחרים את סוג הקישוריות שרוצים להשתמש בו כדי להפעיל את השירות.

  7. לוחצים על יצירה כדי לפרוס את התמונה ב-Knative serving ומחכים עד שהפריסה תסתיים.

שורת הפקודה

אפשר להוריד את ההגדרה של שירות קיים לקובץ YAML באמצעות הפקודה gcloud run services describe והדגל --format=export. אחר כך תוכלו לשנות את קובץ ה-YAML ולפרוס את השינויים האלה באמצעות הפקודה gcloud run services replace. חשוב לוודא שמשנים רק את המאפיינים שצוינו.

  1. מורידים את ההגדרה של השירות לקובץ בשם service.yaml בסביבת העבודה המקומית:

    gcloud run services describe SERVICE --format export > service.yaml

    מחליפים את SERVICE בשם של שירות Knative serving.

  2. מעדכנים את המאפיין nvidia.com/gpu בקובץ המקומי:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE_NAME
    spec:
    template:
     spec:
       containers:
    image: IMAGE_URL
         resources:
           limits:
            nvidia.com/gpu: "GPU_UNITS"

    מחליפים את GPU_UNITS בערך ה-GPU הרצוי ביחידות GPU של Kubernetes. לדוגמה, מציינים 1 עבור GPU אחד.

  3. מריצים את הפקודה הבאה כדי לפרוס את קובץ ה-YAML ולהחליף את השירות בתצורה החדשה:

    gcloud run services replace service.yaml

מידע נוסף על ביצועים ועלויות של GPU זמין במאמר בנושא GPU.