סקירה כללית

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

בגרסאות NCCL 2.23 ואילך, חברת NVIDIA הציגה את NCCL profiler plugin API, שמאפשר למפתחים לרשום קריאות חוזרות לפונקציות כדי לאסוף נתוני טלמטריה במהלך פעולות קולקטיביות של NCCL. ‫Google מספקת את Collective Communication Analyzer ‏ (CoMMA), ספרייה שמשתמשת ב-NVIDIA's NCCL profiler plugin API כדי לאסוף טלמטריה של NCCL עבור שירותי Google Cloud . ‫CoMMA מותקן ומופעל באופן אוטומטי בחלק מהתמונות, אבל אפשר גם להשבית, להפעיל מחדש או להתקין ולהפעיל את CoMMA באופן ידני כדי לשלוט באיסוף הנתונים.

תמונות שהופעל בהן CoMMA

במכונות מסוג A4X Max,‏ A4X,‏ A4,‏ A3 Ultra,‏ A3 Mega ו-A3 High (8 GPUs),‏ CoMMA מותקן ומופעל אוטומטית כשמשתמשים בתמונות שמכילות את הפלאגין gIB NCCL. התמונות הבאות מכילות את התוסף gIB NCCL:

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

יתרונות

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

היתרונות של שימוש ב-CoMMA לאיסוף טלמטריה:

  • נדרש לזיהוי של עומסי עבודה שמתעכבים ולזיהוי של עומסי עבודה שלא מגיבים: ‫CoMMA אוסף את הטלמטריה המפורטת של NCCL כדי לזהות צווארי בקבוק בביצועים או עומסי עבודה שמתעכבים בתקשורת בין יחידות GPU. ‫CoMMA מספק טלמטריה מפורטת של NCCL שעוזרת לזהות ולפתור בעיות בעומסי עבודה של אימון AI ו-ML בקנה מידה גדול.

    לדוגמה, CoMMA מתעד את האלגוריתם שמשמש בפעולות NCCL. המידע הזה חשוב לניתוח הביצועים ולשיפור שלהם, כי יכולים להיות הבדלים משמעותיים במאפייני הביצועים של אלגוריתמים שונים, בהתאם לעומס העבודה ולתצורת המערכת.

    בנוסף, CoMMA עוזר לפתור בעיות שקשורות לביצועים לא אופטימליים ולשגיאות. הוא מאתר שגיאות שמקורן בשכבות תחבורה ברמה נמוכה יותר, כמו TCP,‏ RDMA או switch fabrics, ומקשר אותן לקולקטיבים ספציפיים של NCCL ולצמתים יוזמים. הוא יכול לזהות מתי אות טלמטריה של פעימות לב מפסיק להגיב, ולעקוב אחרי סיבות אפשריות לעומסי עבודה (workloads) שלא מגיבים.

  • מעקב עם תקורה נמוכה: CoMMA משתמש במשאבים חישוביים מינימליים במהלך איסוף טלמטריה פעיל של NCCL, ולכן הוא אידיאלי לעומסי עבודה של למידת מכונה שרגישים לביצועים ופועלים לטווח ארוך, כמו אימון של מודל שפה גדול (LLM).

  • הרחבת היקף הטלמטריה של NCCL: CoMMA משתמש ב-API של הפלאגין NCCL profiler. ה-API הזה אוסף טלמטריה של NCCL בהיקף רחב יותר בהשוואה לתוספים מבוססי-תעבורה. תוספים מבוססי-תעבורה אוספים בעיקר נתוני טלמטריה על תעבורת הרשת הבסיסית, כולל העברות נתונים על חומרת רשת ופרוטוקולי רשת. תוסף הפרופילר אוסף נתוני טלמטריה לפעולות תקשורת של NCCL, כולל התזמון של תקשורת קולקטיבית, פעולות פרוקסי והעברות נתונים.

איך פועל CoMMA

במהלך זמן הריצה של האפליקציה, NCCL טוען באופן אוטומטי את ספריות CoMMA שמותקנות במיקום שצוין על ידי משתנה הסביבה LD_LIBRARY_PATH. לאחר מכן, CoMMA אוסף טלמטריה של NCCL, ששירותים אחרים של Google יכולים להשתמש בה. אפשר גם לייצא את הנתונים האלה למערכת הקבצים המקומית.

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