פתרון בעיות בתהליך העבודה של Cloud TPU

אחרי שמריצים את עומס העבודה של האימון או ההסקה ב-TPU, השלב הבא הוא לוודא שעומס העבודה פועל כמו שצריך. ‫Cloud TPU יוצר מדדים ויומנים שמאפשרים לכם לחפש ולנפות באגים במכונות TPU VM שלא מתנהגות כמו שציפיתם. במסמך הזה אנחנו מתייחסים למכונות וירטואליות כאלה כערכים חריגים.

תהליך העבודה הכללי לפתרון בעיות הוא:

  1. הצגת מדדים של Cloud TPU כדי לבדוק אם יש מכונות וירטואליות חריגות של TPU
  2. צפייה ביומנים של Cloud TPU לגבי מכונות וירטואליות של TPU שהן חריגות
  3. יצירת פרופיל של עומס העבודה

אפשר לראות את המדדים והיומנים בMetrics Explorer ובLogs Explorer במסוף Google Cloud. אפשר גם להשתמש בלוחות בקרה של מעקב ורישום ביומן כדי לאסוף את כל המדדים והיומנים שקשורים ל-Cloud TPU בלוחות בקרה נפרדים.

מדדים של מכונות וירטואליות ב-Cloud TPU

‫Cloud Monitoring אוסף באופן אוטומטי מדדים ממעבדי ה-TPU וממכונות ה-VM המארחות שלהם ב-Compute Engine. מדדים עוקבים אחרי כמויות מספריות לאורך זמן, למשל, ניצול המעבד (CPU), שימוש ברשת או משך הזמן שבו TensorCore לא פעיל. למידע נוסף על מדדים של Cloud TPU, אפשר לעיין במאמר בנושא מעקב אחרי מכונות וירטואליות של TPU.

יומנים של Cloud TPU

‫Cloud Logging אוסף באופן אוטומטי יומנים ממעבדי ה-TPU וממכונות ה-VM המארחות שלהם ב-Compute Engine. ב-Cloud Logging מתבצע מעקב אחרי אירועים שנוצרים על ידי Cloud TPU. אפשר גם להטמיע קוד כדי ליצור יומנים. מערכת Cloud TPU יוצרת שני סוגים של יומנים:

  • יומני עובדים של TPU
  • יומני ביקורת של משאבים

יומני TPU worker מכילים מידע על TPU worker ספציפי באזור ספציפי, למשל כמות הזיכרון שזמין ב-TPU worker ‏(system_available_memory_GiB).

יומנים של משאבים שנבדקו מכילים מידע על המועד שבו בוצעה קריאה ל-API ספציפי של Cloud TPU ועל זהות המשתמש שביצע את הקריאה. לדוגמה, CreateNode, ‏ UpdateNode ו-DeleteNode.

אפשר גם להשתמש בחבילת cloud-tpu-diagnostics PyPi כדי לכתוב עקבות מחסנית ליומנים. מידע נוסף זמין במאמר ניפוי באגים במכונות וירטואליות של TPU.

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

מדדי הבריאות של Cloud TPU

ב-Cloud TPU, מעקב אחר תקינות המערכת מספק מידע בזמן אמת על סטטוס התקינות של מכונות וירטואליות ושל פרוסות. באמצעות מסוף Cloud Monitoring או ספריית LibTPU Monitoring, תוכלו לזהות כשלים בחומרה בזמן שהם מתרחשים. כך תוכלו להקצות מחדש משאבים כדי להימנע מכשלים מלאים בעבודות ולצמצם את הירידה בביצועים.

מידע נוסף זמין במאמר בנושא מעקב אחרי תקינות TPU.

מרכזי בקרה של מעקב ורישום ביומן

אם יש דף אחד במסוף Google Cloud , קל יותר לראות את המדדים והיומנים שקשורים ל-Cloud TPU ולהבין אותם. מאגר GitHub‏ cloud-tpu-monitoring-debugging מכיל קבוצה של סקריפטים וקבצי הגדרה שמשתמשים ב-Terraform כדי לפרוס אוטומטית לוחות בקרה שמכילים את כל המדדים והיומנים שקשורים ל-Cloud TPU. כדי להגדיר את לוחות הבקרה האלה בפרויקט Google Cloud , אפשר לעיין במאמר בנושא לוחות בקרה של Monitoring ושל Logging.

יצירת פרופיל של עומסי העבודה במכונות TPU וירטואליות

בעזרת פרופילים אפשר לשפר את ביצועי האימון של המודל במכונות וירטואליות של TPU. אתם משתמשים ב-TensorBoard ובתוסף TPU TensorBoard כדי ליצור פרופיל של המודל. מידע נוסף על יצירת פרופיל של עומס העבודה זמין במאמר יצירת פרופיל של המודל במכונות וירטואליות של TPU.

מידע נוסף על שימוש ב-TensorBoard עם אחת מהמסגרות הנתמכות זמין במאמרים הבאים:

כשלים באתחול מכונות וירטואליות עם תמונות מותאמות אישית

אם מכונה וירטואלית לא מצליחה לבצע אתחול אחרי התאמה אישית, צריך לבדוק את הפלט של המסוף הטורי באמצעות Google Cloud המסוף או gcloud compute instances get-serial-port-output. זהו המקור העיקרי למידע לצורך אבחון. אי אפשר לתקן את הדיסק במצב אופליין, ולכן צריך ליצור מחדש את משאב ה-TPU אחרי שמתקנים את הבעיה בסקריפט לטעינה בזמן ההפעלה או במקור התמונה המותאמת אישית.

מידע נוסף על התאמה אישית של דיסקי אתחול של מכונות וירטואליות של Cloud TPU זמין במאמר דיסק אתחול של מכונת Cloud TPU וירטואלית.