מה זה Cache ולמה הוא משנה הכל?

📚 אופטימיזציה של חומרת הסקה - חלק 4 חומרה #זיכרון מטמון#אופטימיזציה
תוכן עניינים

מה זה Cache ולמה הוא משנה הכל?

לצד הליבות, יש חלק קריטי במעבד שנקרא Cache - והוא הסוד למהירות.

למה בכלל צריך אותו?

הגישה לזיכרון הראשי (RAM) איטית בהרבה מהחישובים שהמעבד מבצע. לכן כל מעבד כולל זיכרון קטן ומהיר במיוחד - ה-cache - שבו הוא שומר נתונים שהוא משתמש בהם שוב ושוב.

למעשה, כשמודל עושה inference, הוא לא ניגש כל פעם לזיכרון הראשי. הנתונים והמשתנים שהוא צריך הכי הרבה מאוחסנים ב-cache, וכך נחסך זמן יקר.

סוגי Cache

יש כמה “שכבות” של cache:

  • L1 - הכי קטן והכי מהיר, צמוד ממש לליבה.
  • L2 - גדול יותר אבל מעט איטי יותר.
  • L3 - משותף לכל הליבות, משמש לשיתוף מידע ביניהן.

למה זה חשוב ל-Inference?

אם threads שונים נודדים בין ליבות, הם מאבדים את ה-cache שלהם - וזה גורם לביצועים לקפוץ למעלה ולמטה.

זו אחת הסיבות שבגללן חשוב להבין Thread Affinity (הצמדת משימה לליבה קבועה) - עליה נעמיק בפוסט הבא.

תגובות