פתרון בעיות ב-Collective Communication Analyzer ‏ (CoMMA)

בדף הזה מוסבר איך לפתור בעיות נפוצות שאולי תיתקלו בהן במהלך השימוש בכלי CoMMA (Collective Communication Analyzer). ‫CoMMA היא ספרייה שאוספת נתוני טלמטריה עבור Google Cloud שירותים. מידע נוסף זמין במאמר Collective Communication Analyzer (CoMMA).

פתרון בעיות בטעינת CoMMA

יכול להיות שהכלי CoMMA לא ייטען בצורה תקינה. כדי לוודא שהקבצים הבינאריים נטענים בצורה תקינה, מבצעים את השלבים הבאים:

  1. הפעלת רישום ביומן של ניפוי באגים ב-NCCL. כדי להפעיל את הרישום ביומן, מגדירים את משתנה הסביבה NCCL_DEBUG=INFO. אפשר גם להשתמש ברמת ניפוי באגים מפורטת יותר. אפשרויות מופיעות בקטע NCCL_DEBUG במסמכי NVIDIA.
  2. מציינים את מערכת המשנה INIT לניפוי הבאגים. כדי לציין את INIT, מגדירים את NCCL_DEBUG_SUBSYS=INIT. אפשר גם להוסיף מערכות משנה אחרות. אפשרויות נוספות של מערכת המשנה מפורטות בקטע NCCL_DEBUG_SUBSYS.
  3. מחפשים שורה ביומן NCCL שדומה לשורה הבאה: NCCL INFO PROFILER/Plugin: Plugin name set by env to PATH_TO_PROFILER_PLUGIN

    אם משתנה הסביבה NCCL_PROFILER_PLUGIN לא מוגדר, יכול להיות ש-NCCL ינסה לטעון את הקובץ הבינארי libnccl-profiler.so מהנתיב שצוין במשתנה הסביבה LD_LIBRARY_PATH.

כדי לפתור את הבעיה, אפשר לנסות את הפתרונות הבאים:

  • מוודאים שהשם של הספרייה המשותפת של הפלאגין (libnccl-profiler.so) נכון.

    בודקים שהוא נמצא בספרייה שצוינה במשתנה הסביבה LD_LIBRARY_PATH. אפשרות אחרת היא לוודא שמשתנה הסביבה NCCL_PROFILER_PLUGIN מפנה ישירות למיקום של הקובץ הבינארי libnccl-profiler.so.

  • בודקים שגרסת ה-NCCL היא 2.23 ואילך, כי ה-API של פרופיל ה-NCCL דורש את הגרסה הזו.

פתרון בעיות שקשורות לקובצי פלט חסרים

אם הגדרתם את הסביבה שלכם לשליחת נתונים שנאספו על ידי CoMMA לקובץ מקומי, אבל קובץ הפלט חסר, כדאי לבדוק את היומנים של NCCL או את יומני האפליקציה כדי למצוא הודעות שדומות להודעות הבאות:

Failed to open file
Failed to log <telemetry type> to file

השגיאות האלה מצביעות על בעיה בסיסית במערכת הקבצים, כמו ספרייה חסרה או נפח אחסון פנוי לא מספיק. אחרי שהשגיאות האלה מתרחשות, CoMMA מפסיק לייצא טלמטריה לקבצים.

כדי לפתור את הבעיה, אפשר לנסות את הפתרונות הבאים:

  • בודקים שמשתני הסביבה NCCL_PROFILER_LATENCY_FILE או NCCL_PROFILER_SUMMARY_FILE מוגדרים בצורה נכונה. צריך לספק תבנית תקינה של נתיב ושם קובץ, כמו /tmp/latency-%p.txt.
  • בודקים שלתהליך יש הרשאות כתיבה לספריית הפלט שצוינה.
  • אם שיניתם את משתנה הסביבה NCCL_TELEMETRY_MODE, ודאו שהגדרתם אותו לערך שמאפשר פלט של קובץ מקומי (לדוגמה, 1 או 4).

פתרון בעיות שקשורות לנתונים לא צפויים או לאירועים חסרים

יכול להיות ש-CoMMA יתעד נתונים לא צפויים או לא יתעד אירועים צפויים.

כדי לפתור את הבעיה, צריך לוודא שרמת הגרנולריות הנדרשת מוגדרת.