מקבצי בדיקה

במאמר הזה מוסבר איך לבדוק אם יש בעיות באשכולות GPU באמצעות הכלי Cluster Health Scanner ‏(CHS). אם רוצים לבדוק אשכול שיצרתם ב-Cluster Director, כדאי לעיין במאמר מעקב אחר תקינות האשכול.

הכלי CHS בודק את תקינות האשכולות של ה-GPU, ומריץ בדיקות כדי לוודא שהאשכולות מוכנים להרצת עומסי העבודה. אתם יכולים להשתמש ב-CHS כדי לבצע בדיקות תקינות פרואקטיביות, או ככלי אבחון כשאתם נתקלים בבעיות בעומס עבודה. בנוסף לבדיקת ההגדרה של האשכול, אפשר לבצע את הבדיקות הבאות:

  • בדיקת NCCL: מאמתת את התקשורת ברשת בין מעבדי GPU באמצעות NVIDIA Collective Communications Library ‏ (NCCL).
  • בדיקת GPU: נעשה שימוש בכלי Data Center GPU Manager (DCGM) של NVIDIA כדי לבדוק את תקינותן של יחידות GPU ספציפיות.
  • בדיקת Neper: משתמשת בכלי Neper כדי להעריך את ביצועי הרשת בתוך האשכול.
  • זיהוי של תהליכים שמתעכבים: מריץ דפוס של תנועה ברשת בין צמתים שדומה מאוד לדפוסים שנצפו במהלך מקביליות של צינורות עבודה לאימון LLM. מידע נוסף על זיהוי משתתפים שהצטרפו באיחור
  • בדיקת Tinymax: משתמשת ב-Maxtext, מסגרת LLM בקוד פתוח, כדי להעריך את אימון ה-ML באשכול.

אפשר להריץ בדיקות CHS רק בצמתים שלא מריצים משימות או עומסי עבודה. אם מנסים להריץ בדיקה בצומת עמוס, הבדיקה נכשלת.

הכלי CHS זמין לאשכולות GPU שמנוהלים על ידי Google Kubernetes Engine‏ (GKE) או Slurm, ללא קשר למודל ההקצאה שבו השתמשתם כדי ליצור את האשכולות. עם זאת, CHS זמין רק בסוגי המכונות הבאים:

  • A4X Max
  • A4X
  • A4
  • A3 Ultra
  • A3 Mega
  • A3 High

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

התקנת CHS

כדי להתקין את CHS:

  1. נכנסים לדף Compute Engine > VM instances.

    לדף VM instances

  2. מאתרים את צומת הכניסה. יכול להיות שהשם שלו יכלול את התבנית DEPLOYMENT_NAME +login-001.

  3. בעמודה Connect של צומת הכניסה, לוחצים על SSH.

  4. כדי לשכפל את המאגר ולעבור לספריית הבסיס של המאגר, מריצים את הפקודה הבאה:

    git clone https://github.com/GoogleCloudPlatform/cluster-health-scanner && cd cluster-health-scanner
    
  5. משתמשים בפקודה הבאה כדי להתקין תלות עבור Google Cloud CLI:

    pip3 install -r cli/requirements.txt
    
  6. אופציונלי: כדי לאפשר לפקודה configcheck לאחזר ערכי הגדרה מהאשכול בלי שתצטרכו לבצע אימות מחדש לכל מכונה, משתמשים בפקודה הבאה כדי להוסיף את מפתח ה-SSH של Google Cloud CLI לסוכן ה-SSH המקומי:

    ssh-add ~/.ssh/google_compute_engine
    
  7. משתמשים בפקודה הבאה כדי להוסיף את הכינוי cluster_diag ל-cluster_diag.py:

    alias cluster_diag="python3 cli/cluster_diag.py"
    

ביצוע בדיקת תקינות

אחרי שמתקינים את CHS, מבצעים את הפעולות הבאות כדי לבדוק את תקינות אשכול ה-GPU:

  1. נכנסים לדף Compute Engine > VM instances.

    לדף VM instances

  2. מאתרים את צומת הכניסה. יכול להיות שהשם שלו יכלול את התבנית DEPLOYMENT_NAME +login-001.

  3. בעמודה Connect של צומת הכניסה, לוחצים על SSH.

  4. מוודאים שאתם נמצאים בספריית השורש של המאגר.

  5. כדי לבדוק את הסטטוס הנוכחי של האשכול, מריצים את הפקודה הבאה:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE status
    

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

    • ORCHESTRATOR: ‏gke או slurm, בהתאם לאמצעי התזמור שבו אתם משתמשים.
    • GPU_TYPE: סוג מכונת ה-GPU שבה אתם משתמשים, שיכול להיות אחד מהערכים הבאים:

      • a4x-maxgpu-4g-metal
      • a4x-highgpu-4g
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  6. כדי לבדוק את תקינותם של מעבדים גרפיים ספציפיים באשכול, משתמשים בפקודה הבאה:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE gpu
    

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

    • ORCHESTRATOR: ‏gke או slurm, בהתאם לאמצעי התזמור שבו אתם משתמשים.
    • GPU_TYPE: סוג מכונת ה-GPU שבה אתם משתמשים, שיכול להיות אחד מהערכים הבאים:
      • a4x-maxgpu-4g-metal
      • a4x-highgpu-4g
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  7. אופציונלי: מריצים את פקודת התבנית הבאה כדי לבצע בדיקות נוספות. כדאי להוסיף את הדגל --run_only_on_available_nodes כדי לדלג על צמתים לא זמינים:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE CHECK
    

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

    • ORCHESTRATOR: ‏gke או slurm, בהתאם לאמצעי התזמור שבו אתם משתמשים.
    • GPU_TYPE: סוג מכונת ה-GPU שבה אתם משתמשים, שיכול להיות אחד מהערכים הבאים:
      • a4x-maxgpu-4g-metal
      • a4x-highgpu-4g
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
    • CHECK: הבדיקה שרוצים להריץ. מבצעים את אחת מהאפשרויות הבאות:
      • סטטוס
      • nccl
      • GPU
      • straggler
      • נפר
      • tinymax

בדיקת ההגדרות

אחרי שמתקינים את CHS, מבצעים את הפעולות הבאות כדי לבדוק את ההגדרה של האשכול:

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

    cluster_diag -o ORCHESTRATOR configcheck GPU_TYPE
    

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

    • ORCHESTRATOR: ‏gke או slurm, בהתאם לאמצעי התזמור שבו אתם משתמשים.
    • GPU_TYPE: סוג מכונת ה-GPU שבה אתם משתמשים, שיכול להיות אחד מהערכים הבאים:

      • a4x-maxgpu-4g-metal
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g

בצילום המסך הבא מוצגת התוצאה של בדיקת הגדרה מוצלחת:

תוצאה של בדיקת הגדרה מוצלחת.
תוצאה של בדיקת הגדרה מוצלחת (לחצו כדי להגדיל).

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