TPU7x (Ironwood)

בדף הזה מתוארת הארכיטקטורה של TPU7x, ה-TPU העדכני ביותר שזמין ב- Google Cloud, ומוצגות ההגדרות הזמינות שלו. ‫TPU7x היא הגרסה הראשונה במשפחת Ironwood, Google Cloud's TPU מהדור השביעי. דור Ironwood מיועד לאימון AI ולהסקת מסקנות בקנה מידה גדול.

ל-TPU7x יש 9,216 שבבים לכל Pod, והוא דומה מאוד ל-TPU v5p. ‫TPU7x מספק ביצועים גבוהים למודלים צפופים ולמודלים של MoE בקנה מידה גדול, לאימון מקדים, לדגימה ולהסקת מסקנות שדורשת פענוח רב.

כדי להשתמש ב-TPU7x, אפשר להשתמש ב-Google Kubernetes Engine‏ (GKE) או ב-Compute Engine. מידע נוסף על שימוש ב-TPU עם GKE זמין במאמר מידע על TPU ב-GKE.

אפשר להשתמש ב-TPU7x וב-GKE גם במצב All Capacity. הגישה למצב כל הקיבולת זמינה דרך הזמנה של מצב כל הקיבולת, שנותנת לכם גישה מלאה לכל הקיבולת שהזמנתם (ללא הגבלות) ושקיפות מלאה לגבי טופולוגיית חומרת ה-TPU, סטטוס הניצול וסטטוס התקינות. מידע נוסף זמין במאמר סקירה כללית של מצב 'כל הקיבולת'.

ארכיטקטורת המערכת

כל שבב TPU7x מכיל שני TensorCore וארבע ליבות SparseCore. בטבלה הבאה מוצגים המפרטים העיקריים והערכים שלהם עבור TPU7x בהשוואה לדורות קודמים.

מפרט v5p v6e (Trillium) TPU7x (Ironwood)
מספר הצ'יפים בכל מארז 8960 256 9216
שיא העיבוד לכל צ'יפ (BF16) (TFLOPs) 459 918 2307
שיא העיבוד לכל צ'יפ (FP8) (TFLOPs) 459 918 4614
קיבולת HBM לכל שבב (GiB) 95 32 192
רוחב פס של HBM לכל שבב (GBps) 2765 1638 7380
מספר המעבדים הווירטואליים (מכונה וירטואלית עם 4 שבבים) 208 180 224
זיכרון RAM ‏ (GB) (מכונה וירטואלית עם 4 שבבים) 448 720 960
מספר ליבות Tensor בכל שבב 2 1 2
מספר ליבות SparseCore לכל שבב 4 2 4
רוחב פס דו-כיווני של חיבור בין צ'יפים (ICI) לכל צ'יפ (GBps) 1200 800 1200
רוחב הפס של רשת מרכז הנתונים (DCN) לכל שבב (Gbps) 50 100 100

התרשים הבא מדגים את הארכיטקטורה של Ironwood:

דיאגרמת ארכיטקטורה של Ironwood

היררכיית הזיכרון

ל-TPU7x יש מערכת זיכרון רב-שכבתית, וניהול תנועת הנתונים בין השכבות האלה הוא חיוני לביצועים:

  • זיכרון ברוחב פס גבוה (HBM): כל שבב מצויד ב-HBM בנפח 192GB, עם רוחב פס של כ-7.37TB/s. קיבולת ה-HBM הגדולה מאפשרת גדלים גדולים של מנות (batch), מה שיכול לשפר את קצב העברת הנתונים. עם זאת, למרות הגודל שלו, HBM עדיין יכול להיות צוואר בקבוק, במיוחד עבור פעולות וקטוריות שמוגבלות על ידי הזיכרון או דפוסי גישה לנתונים לא יעילים.
  • זיכרון וקטורי (VMEM): זיכרון VMEM הוא זיכרון SRAM קטן יותר על השבב (זיכרון גישה אקראית סטטי) עם רוחב פס גבוה משמעותית ליחידת הכפל של המטריצה (MXU) בהשוואה ל-HBM. הזיכרון הזה משמש כלוח טיוטה מהיר לליבות מותאמות אישית. גודל המאגר הזה הוא פרמטר שניתן לשינוי. אופטימיזציה של שטח אחסון זמני חיונית להתאמת ליבות Pallas בהתאמה אישית, כי גודלי הבלוקים שלהן מוגבלים לעיתים קרובות על ידי ה-VMEM הזמין.
  • זיכרון מארח ו-PCIe: כל קבוצה של ארבעה שבבי TPU מחוברת למארח CPU באמצעות רשת PCIe. לחיבור הזה יש רוחב פס נמוך בהרבה מ-HBM, אבל אפשר להשתמש בזיכרון הראשי של המארח כדי להעביר הפעלות או מצבים של אופטימיזציה כדי לפנות מקום ב-HBM. זו טכניקה שימושית במיוחד לניהול עומס על הזיכרון במודלים גדולים.

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

ארכיטקטורה של שני צ'יפלטים

מודל התכנות של Ironwood מאפשר גישה לשני שבבי TPU במקום לליבה לוגית אחת (שנקראת גם ארכיטקטורת MegaCore) ששימשה בדורות הקודמים (TPU v4 ו-v5p). השינוי הזה משפר את היעילות ואת הכדאיות הכלכלית של ייצור השבב. העיצוב החדש מייצג שינוי ארכיטקטוני, אבל הוא מאפשר לכם לעשות שימוש חוזר במודלים קיימים של תוכנה עם שינויים מינימליים.

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

  • קומפוזיציית צ'יפלטים: כל צ'יפלט הוא יחידה עצמאית עם TensorCore אחד, שני SparseCore ו-96GB של זיכרון ברוחב פס גבוה (HBM).

  • חיבור מהיר בין רכיבים: שני הצ'יפלטים מחוברים באמצעות ממשק D2D (ממשק בין ליבות) שמהיר פי 6 מקישור ICI (חיבור בין רכיבים) חד-ממדי. התקשורת בין הצ'יפלטים מנוהלת באמצעות פעולות קולקטיביות.

חשיפה של מודל תכנות ומסגרת

מודל התכנות של Ironwood דומה לזה של דורות TPU קודמים ל-v4, כמו TPU v3. הארכיטקטורה החדשה נחשפת בדרכים הבאות:

  • שני מכשירים לכל שבב: פלטפורמות כמו JAX חושפות כל שבב Ironwood כשני 'מכשירים' נפרדים, אחד לכל שבב קטן.

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

מידע נוסף על השגת ביצועים אופטימליים באמצעות ארכיטקטורת dual-chiplet זמין במאמר המלצות לשיפור הביצועים של ארכיטקטורת dual-chiplet של Ironwood.

הגדרות נתמכות

לשבבי TPU7x יש חיבור ישיר לשבבים השכנים הקרובים ביותר ב-3 מימדים, וכך נוצרת רשת תלת-ממדית של חיבורי רשת. פרוסות גדולות מ-64 שבבים מורכבות מקובייה אחת או יותר של 4x4x4 שבבים.

לשבבי TPU7x יש טופולוגיית קישוריות של טורוס תלת-ממדי. הטופולוגיה הזו מאפשרת להגדיל את מספר הפרוסות עד ל-9,216 שבבים. יש לו רוחב פס דו-כיווני של 200GBps לכל ציר לתקשורת בין שבבים בתוך תא.

בטבלה הבאה מוצגים צורות נפוצות של פרוסות תלת-ממד שנתמכות ב-TPU7x:

טופולוגיה צ'יפים של TPU מארחים VMs (מכונות וירטואליות) Cubes היקף
‫2x2x1 4 1 1 1/16 מארח יחיד
‫2x2x2 8 2 2 1/8 מארחים מרובים
‫2x2x4 16 4 4 1/4 מארחים מרובים
2x4x4 32 8 8 1/2 מארחים מרובים
4x4x4 64 16 16 1 מארחים מרובים
4x4x8 128 32 32 2 מארחים מרובים
4x8x8 256 64 64 4 מארחים מרובים
8x8x8 512 128 128 8 מארחים מרובים
‫8x8x16 1024 256 256 16 מארחים מרובים
8x16x16 2048 512 512 32 מארחים מרובים

TPU7x VM

כל מכונה וירטואלית (VM) של TPU7x מכילה 4 שבבים. לכל מכונה וירטואלית יש גישה לשני צמתי NUMA. מידע נוסף על צמתי NUMA זמין במאמר Non-uniform memory access (גישה לזיכרון לא אחיד) ב-Wikipedia.

כל פרוסות TPU7x משתמשות במכונות וירטואליות של מארח מלא עם 4 שבבים. המפרטים הטכניים של מכונה וירטואלית TPU7x הם:

  • מספר ליבות ה-vCPU לכל מכונה וירטואלית: 224
  • זיכרון RAM לכל מכונה וירטואלית: 960GB
  • מספר צמתי NUMA לכל מכונה וירטואלית: 2

מודלים נתמכים

מודל נתמך מכוונן ומאומת לחומרה TPU7x. אפשר לפרוס ולהפעיל מודלים נתמכים בלי לשנות את הקוד. מודלים נתמכים מוגדרים כך שינצלו את היתרונות של תכונות TPU7x, כולל ארכיטקטורת dual-chiplet, חיבורים מהירים (ICI),‏ HBM וחישובים עם דיוק מעורב (כמו FP8 ו-BF16).

‫Google וקהילת הקוד הפתוח מתחזקות מתכונים, הגדרות ותמיכה שהותאמו מראש לעומסי עבודה של אימון והסקת מסקנות ב-TPU7x.

מודלים שעברו אופטימיזציה לאימון

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

כדי למצוא מתכונים להדרכה, מדריכים ומדדי ביצועים למודלים נתמכים ב-TPU7x, אפשר לעיין במקורות המידע הבאים:

  • TPU training recipes for TPU7x: מאגר GitHub הרשמי שמכיל מתכוני אימון מותאמים מראש, הגדרות דיוק (FP8 ו-BF16), מדדי ביצועים של זמן צעד ומדדי תפוקה למודלים פופולריים בקוד פתוח ב-TPU7x.
  • ‫MaxText repository: מסגרת אימון של מודלים גדולים של שפה (LLM) בקוד פתוח עם ביצועים גבוהים, שנכתבה ב-JAX ועברה אופטימיזציה ל-Cloud TPU.
  • אימון מודל באמצעות TPU7x: מדריך להקצאת משאבי TPU7x ולפריסת עומסי עבודה של אימון באמצעות MaxText.

מודלים שעברו אופטימיזציה להסקת מסקנות

מודלים שעברו אופטימיזציה להסקת מסקנות מאומתים לפרסום עם ביצועים גבוהים באמצעות vLLM והפלאגין tpu-inference. המודלים האלה נבדקים כדי לוודא שהם נכונים, שהדיוק המספרי שלהם גבוה ושהתפוקה שלהם גבוהה. הבדיקות מתבצעות באמצעות ליבות אופטימליות של PagedAttention וטנזור מקביליות ב-TPU7x.

כדי למצוא מתכונים להצגת מודלים וכלים לפריסה של מודלים נתמכים ב-TPU7x, אפשר לעיין במקורות המידע הבאים:

Hyperdisk

כברירת מחדל, דיסק האתחול של מכונה וירטואלית מסוג TPU7x הוא Hyperdisk Balanced. אתם יכולים לצרף עוד דיסקים ל-TPU VM כדי לקבל נפח אחסון נוסף. סוגי הדיסקים הבאים נתמכים ב-TPU7x:

  • Hyperdisk Balanced
  • Hyperdisk ML

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

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