הסבר על מעבדי TPU

יחידות לעיבוד טנסורים (TPU) הן מעגלים משולבים לאפליקציות ספציפיות (ASIC) שפותחו על ידי Google כדי לעזור להאיץ עומסי עבודה של למידת מכונה (ML) ובינה מלאכותית (AI). בין אם אתם מאמנים מודלים מורכבים של בסיס במשך שבועות או מריצים מסקנות בקנה מידה גדול, יחידות TPU מציעות משאבי מחשוב מיוחדים וניתנים להרחבה שמיועדים לשימוש עם מסגרות מתקדמות של AI.

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

מה זה TPU?

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

הרכיבים העיקריים בארכיטקטורה של מערכת TPU הם:

  • ‫TensorCore: יחידת העיבוד של צ'יפ TPU. כל TensorCore מורכב מיחידה אחת או יותר של כפל מטריצות (MXU) שמשתמשת בארכיטקטורת מערך סיסטולי כדי לבצע כפל מטריצות ביעילות גבוהה, יחד עם יחידות סקלריות ווקטוריות לזרימת בקרה וחישוב כללי.

  • ‫SparseCore: מעבדי Dataflow ייעודיים שנועדו להאיץ פעולות דלילות. ליבות SparseCore פועלות לצד ליבות TensorCore כדי לעבד ביעילות טבלאות הטמעה גדולות, ולכן הן אידיאליות להאצת מודלים של המלצות והטמעות בקנה מידה גדול.

  • זיכרון עם רוחב פס גבוה (HBM): זיכרון פיזי גדול שמחובר לשבב TPU ומציע רוחב פס עצום של הזיכרון. זיכרון HBM מאפשר אימון והפעלה של מודלים גדולים יותר עם גדלים גדולים יותר של אצווה.

  • מכונת TPU: מכונת חישוב של Linux שפועלת במארח TPU ויש לה גישה ישירה לחומרת ה-TPU הבסיסית. היא מאפשרת גישה לספריות עם ביצועים גבוהים, לקישוריות SSH וליומני ניפוי באגים בזמן ריצה.

  • ‫TPU slices ו-Pods‏: TPU Pod הוא אשכול גדול ורציף של שבבי TPU שמקושרים פיזית. פרוסת TPU היא חלוקה לוגית של Pod (שכולל מארח אחד או יותר שמחוברים באמצעות חיבורים מהירים) שהוקצתה להרצת עומס עבודה יחיד.

  • קומפיילר XLA: קומפיילר אלגברה לינארית מואצת (XLA) מבצע קומפילציה של גרפים של למידת מכונה להוראות מכונה שעברו אופטימיזציה ופועלות ב-TensorCores של TPU.

גרסאות TPU וסדרות מכונות

‫Compute Engine תומך בכמה דורות וגרסאות של TPU. בטבלה הבאה מפורטים המפרטים העיקריים של כל גרסת TPU נתמכת:

גרסת ה-TPU סדרת מכונות שיא המחשוב לכל שבב (TFLOPs) זיכרון ורוחב פס של TPU ליבות לכל צ'יפ רוחב פס של Interconnect ‏ (ICI) לכל שבב רוחב הפס של הרשת (DCN) לכל שבב צ'יפים בכל תרמיל
TPU7x (Ironwood) tpu7x-standard

BF16: 2,307

FP8: 4,614

‫192 GiB‏ (7,380 GBps)

‫2 TensorCores

‫4 SparseCores

‫1,200 GBps ‫100 Gbps 9,216
TPU v6e (Trillium) ct6e-standard

BF16: 918

FP8: 918

‫32 GiB‏ (1,638 GBps)

‫TensorCore אחד

‫2 SparseCores

‫800 GBps ‫100 Gbps 256
TPU v5p ct5p-hightpu

BF16: 459

FP8: 459

‫95 GiB ‏ (2,765 GBps)

‫2 TensorCores

‫4 SparseCores

‫1,200 GBps ‫50 Gbps 8,960

מאפייני הביצועים של TPU

יחידות ה-TPU מותאמות לביצוע פעולות אלגברה של מטריצות צפופות ביעילות מקסימלית. כדי להחליט מתי הכי כדאי להשתמש ב-TPU לעומסי עבודה של ML, כדאי להביא בחשבון את ההנחיות הבאות.

תרחישי שימוש אידיאליים ודרישות עומס עבודה

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

אימון AI/ML

  • אימון מראש של מודלים גדולים: אימון של מודלים עצומים מההתחלה. עומסי העבודה האלה מוגבלים על ידי חישוב ותקשורת.

    • יכולות TPU נדרשות: FLOPS גבוה בשיא, תמיכה בדיוק נמוך ורוחב פס גבוה של קישוריות.
    • גרסאות TPU מומלצות:
      • ‫TPU7x. הגרסה הזו מספקת ביצועים גבוהים של FP8.
      • ‫TPU v5p. הגרסה הזו תומכת בהגדרות של אשכולות בקנה מידה גדול.
  • כוונון וזיקוק מודלים: התאמה של מודלים קיימים באמצעות שיטות יעילות לפרמטרים או אימון של וריאציות קטנות יותר של מודלים.

    • יכולת TPU נדרשת: יכולת חישוב בינונית וקיבולת זיכרון מספקת.
    • גרסאות TPU מומלצות:
      • ‫TPU v6e. הגרסה הזו חסכונית למשימות אימון רגילות.
      • ‫TPU7x. הגרסה הזו מציעה ביצועים גבוהים לכוונון עדין בקנה מידה גדול.

היקש של AI/ML

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

    • יכולת TPU נדרשת: רוחב פס גבוה של HBM ו-SRAM גדול על השבב כדי למזער את זמן האחזור של אחזור הנתונים.
    • גרסאות TPU מומלצות:
      • ‫TPU v6e. הגרסה הזו מותאמת להצגת מודעות בקנה מידה רחב בצורה חסכונית.
      • ‫TPU7x. הגרסה הזו מספקת רוחב פס גבוה של HBM ו-SRAM גדול כדי להאיץ את יצירת הטוקנים.
  • הרצת מסקנות באצווה: עיבוד של מערכי נתונים גדולים אופליין, כאשר המטרה העיקרית היא תפוקה גבוהה. עומסי העבודה האלה מוגבלים על ידי המחשוב בשלב המילוי המקדים של ההנחיה.

    • יכולת TPU נדרשת: צפיפות מחשוב גבוהה כדי למקסם את התפוקה לכל דולר.
    • גרסאות TPU מומלצות:
      • ‫TPU v6e. הגרסה הזו חסכונית לעיבוד ברצף (batch processing) עם תפוקה גבוהה.
      • ‫TPU7x. הגרסה הזו מציעה צפיפות מחשוב גבוהה לעיבוד מהיר של קבוצות גדולות.

מערכות המלצה

  • עיבוד הטמעות גדולות: אימון והצגה של מודלים להמלצות שמשתמשים בטבלאות הטמעה גדולות. עומסי העבודה האלה מוגבלים על ידי הקיבולת והתקשורת.
    • יכולת TPU נדרשת: חומרה ייעודית של SparseCore לעיבוד פעולות דלילות במקביל, קיבולת HBM גדולה ותמיכה בהעברה לזיכרון המארח.
    • גרסאות TPU מומלצות:
      • ‫TPU7x. הגרסה הזו כוללת ארבע ליבות SparseCore לכל שבב ומציעה את קיבולת ה-HBM הגדולה ביותר.
      • ‫TPU v6e. הגרסה הזו כוללת שני SparseCore לכל שבב, כדי לספק שירותים בצורה חסכונית.
      • ‫TPU v5p. הגרסה הזו כוללת ארבע ליבות SparseCore לכל שבב לאימון בקנה מידה גדול.

למידת חיזוק

  • הפעלת לולאות של למידה חיזוקית: ניהול עומסי עבודה היברידיים שדורשים לולאות הדוקות של יצירת דוגמאות ועדכון משקלי המדיניות.

    • יכולות TPU נדרשות: ICI עם השהיה נמוכה להעברות מהירות של משקלים והפעלות בין שבבים, וחיבורי מארח עם רוחב פס גבוה.
    • גרסאות מומלצות של TPU:

      בגרסאות ה-TPU האלה נעשה שימוש בחיבור מהיר של טורוס תלת-ממדי.

שיקולים לגבי עומסי עבודה

יכול להיות ש-TPU לא יהיה הבחירה האופטימלית לעומסי העבודה הבאים:

  • תוכניות באלגברה לינארית שדורשות הסתעפות לוגית תכופה או שמכילות הרבה פעולות אלגבריות ברמת הרכיב.
  • עומסי עבודה שתלויים באופרטורים מותאמים אישית ב-JAX או ב-PyTorch שפועלים במעבדי CPU.
  • עומסי עבודה מדעיים שנדרשת בהם אריתמטיקה של נקודה צפה (FP64) בדיוק כפול.

שיקולי תמחור

הגורמים הבאים קובעים את התמחור של TPU ב- Google Cloud:

  • גרסת ה-TPU

  • מיקום

  • מודל צריכה

פרטים מלאים על התמחור זמינים בדף תמחור TPU.

מודלים של צריכה ורכישה

אתם יכולים להקצות מופעי TPU באמצעות כל אחת מאפשרויות הצריכה הבאות, בהתאם לדרישות הזמינות ולסובלנות שלכם לעלויות:

  • עלות לפי דרישה: תמחור סטנדרטי של תשלום לפי שימוש (PAYG) לביצוע מיידי. המינוי הזה מציע גמישות מקסימלית לאורך מחזור החיים, אבל הזמינות שלו תלויה במגבלות של המשאבים הפיזיים.
  • ‫Spot: קיבולת עודפת Google Cloud בהנחה משמעותית (עד 70%). מכיוון ש- Google Cloud יכול להפסיק או למחוק VM במודל Spot כדי לפנות קיבולת בהודעה של 30 שניות מראש, מכונות המחשוב האלה מתאימות לעומסי עבודה עמידים בכשלים ולעומסי עבודה עם נקודות ביקורת.
  • ‫Flex-start: מאפשר לבקש מופעי מחשוב ממאגר ייעודי למשך עד שבעה ימים עם זמינות גבוהה יותר.
  • מקום שמור לעתיד: הזמנות שמבטיחות קיבולת ומציעות מחיר מוזל בהשוואה לתמחור על פי דרישה. אפשר להזמין קיבולת TPU לתאריך ולשעה ספציפיים בעתיד, למשך עד 90 יום (מצב לוח שנה) או למשך שנה או יותר. אםGoogle Cloud תאשר את הבקשה, תוכלו להתחיל להשתמש בקיבולת למשך תקופת ההזמנה.

הנחות תמורת התחייבות לשימוש (CUD)

כשמבקשים מקום שמור לעתיד למשך שנה או יותר, אפשר לקבל CUD על קיבולת ה-TPU השמורה. החלת הנחה תמורת התחייבות לשימוש (CUD) על מופעי מחשוב מאפשרת לכם לקבל הנחה משמעותית על המחירים בהשוואה לתעריפים של שימוש לפי דרישה, בתמורה לתקופת שימוש מוגדרת.

מידע נוסף על הנחות CUD ב-Compute Engine

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