מה זה ליבות (Cores) ו-Threads?

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

מה זה ליבות (Cores) ו-Threads?

כשאנחנו שומעים ש”למחשב יש כמה עשרות ליבות”, זה נשמע כמו כוח עצום - אבל מה המשמעות בפועל?

ליבה (Core)

הליבה היא יחידת העיבוד הבסיסית במעבד (CPU). כל ליבה יכולה להריץ חישוב עצמאי - כלומר, לעבד משימה אחת בזמן נתון.

במחשבים של היום יש ריבוי ליבות, שמאפשר להריץ כמה משימות במקביל - למשל:

  • ליבה אחת מחשבת inference של מודל,
  • בזמן שליבה אחרת מטפלת בנתוני קלט,
  • ואחרת באגירת תוצאות.

כך נוצר parallelism - ריבוי חישובים בו-זמנית.

ומה זה Thread?

Thread הוא “תהליך משנה” - יחידה קטנה עוד יותר מליבה. כל ליבה יכולה בדרך כלל להריץ כמה threads במקביל (בזכות טכנולוגיה שנקראת Hyper-Threading).

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

בשורה התחתונה

  • ליבה = כוח חישוב פיזי.
  • Thread = יחידת עבודה לוגית שמנוהלת על אותה ליבה.

ככל שמקצים משימות בצורה מושכלת בין ליבות ו-threads, כך המערכת מנוצלת ביעילות גבוהה יותר.

תגובות