סקירה כללית

במאמר הזה מתואר הכלי 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 מותקן ומופעל אוטומטית כשמשתמשים בתמונות שמכילות את הפלאגין NCCL Google Infrastructure Bundle‏ (gIB). התמונות הבאות מכילות את התוסף NCCL gIB:

אם אתם משתמשים בתמונות כלשהן ורוצים להשבית את 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 ולצמתים יוזמים.

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

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

איך פועל CoMMA

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

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