גרסאות תוכנה של TPU
במאמר הזה מוסבר איך לבחור את הגרסה המתאימה של תוכנת TPU כשיוצרים יחידות Cloud TPU.
כשיוצרים משאבי TPU, מציינים את גרסת התוכנה, שנקראת גם גרסת זמן הריצה, שמתייחסת לסביבת התוכנה שמותקנת מראש ב-TPU VM. התמונה כוללת את מערכת ההפעלה Ubuntu, את Docker ותוכנות אחרות שנדרשות כדי להריץ את הקוד ב-TPU.
אם אתם משתמשים ב-Google Cloud CLI, אתם צריכים לציין את גרסת התוכנה של ה-TPU באמצעות הפרמטר --version או --runtime-version. אם אתם משתמשים במסוף Google Cloud , אתם צריכים לבחור גרסת תוכנה של TPU מהרשימה TPU software version.
PyTorch ו-JAX
כדי להשתמש בגרסאות התוכנה הנפוצות הבאות של TPU ל-PyTorch ול-JAX, צריך להתקין את ה-framework שרוצים להשתמש בה.
| גרסת ה-TPU | גרסת התוכנה של ה-TPU |
|---|---|
| Trillium (v6e) | v2-alpha-tpuv6e |
| v5p | v2-alpha-tpuv5 |
| v5e | v2-alpha-tpuv5-lite |
| גרסה 4 ומטה | tpu-ubuntu2204-base |
מידע נוסף על התקנה והתחלת השימוש ב-JAX או ב-PyTorch זמין במאמרים הרצת חישוב ב-Cloud TPU VM באמצעות JAX ו-PyTorch ב-Cloud TPU.
TensorFlow
גרסאות התוכנה של TPU ל-TensorFlow נקראות לפי מוסכמה ספציפית:
tpu-vm-tf-x.y.z[-{pod}][-{device_api}]
-
x.y.z: מייצג את הגרסאות הראשיות, המשניות ותיקוני הבאגים של TensorFlow. -
-pod(אופציונלי): מציין שאתם משתמשים בפרוסת TPU עם כמה מארחים. -
-{device_api}(אופציונלי): מציין את ה-API של המכשיר, לדוגמה,-pjrt(אם משתמשים ב-PJRT API).
בקטעים הבאים מוסבר איך לציין את גרסת התוכנה של ה-TPU.
יש גרסאות תוכנה של TPU שספציפיות לכל גרסה של TensorFlow. בטבלה הבאה מפורטות הגרסאות הנתמכות של TensorFlow והגרסאות המשויכות של libtpu:
| גרסת TensorFlow | גרסת libtpu.so |
|---|---|
| 2.18.0 | 1.12.0 |
| 2.17.1 | 1.11.1 |
| 2.17.0 | 1.11.0 |
| 2.16.2 | 1.10.1 |
| 2.16.1 | 1.10.1 |
| 2.15.1 | 1.9.0 |
| 2.15.0 | 1.9.0 |
| 2.14.1 | 1.8.1 |
| 2.14.0 | 1.8.0 |
| 2.13.1 | 1.7.1 |
| 2.13.0 | 1.7.0 |
| 2.12.1 | 1.6.1 |
| 2.12.0 | 1.6.0 |
| 2.11.1 | 1.5.1 |
| 2.11.0 | 1.5.0 |
| 2.10.1 | 1.4.1 |
| 2.10.0 | 1.4.0 |
| 2.9.3 | 1.3.2 |
| 2.9.1 | 1.3.0 |
| 2.8.3 | 1.2.3 |
| 2.8.0 | 1.2.0 |
| 2.7.3 | 1.1.2 |
למידע נוסף על גרסאות התיקונים של TensorFlow, קראו את המאמר גרסאות התיקונים הנתמכות של TensorFlow.
TPU v6e, v5p ו-v5e
ב-TPU v6e, v5e ו-v5p יש תמיכה ב-TensorFlow 2.15.0 ואילך. מציינים את גרסת התוכנה של ה-TPU בפורמט: tpu-vm-tf-x.y.z-{pod}-pjrt, כאשר x היא הגרסה הראשית של TensorFlow, y היא גרסת המשנה ו-z היא גרסת התיקון של TensorFlow. אם משתמשים ב-TPU עם כמה מארחים, מוסיפים את pod אחרי הגרסה של TensorFlow. לדוגמה, אם אתם משתמשים ב-TensorFlow 2.16.0 ב-TPU עם כמה מארחים, השתמשו בגרסת התוכנה tpu-vm-tf-2.16.0-pod-pjrt של TPU. בגרסאות אחרות של TensorFlow, מחליפים את 2.16.0 בגרסה הראשית ובגרסת התיקון של TensorFlow שבה אתם משתמשים. אם אתם משתמשים ב-TPU עם מארח יחיד, השמיטו את pod.
TPU v4
אם אתם משתמשים ב-TPU v4 וב-TensorFlow 2.10.1 ואילך, פעלו לפי ההוראות ל-TPU v2 ו-v3. אם אתם משתמשים ב-TensorFlow בגרסה 2.10.0 או גרסה קודמת, השתמשו בגרסת תוכנה של TPU שספציפית ל-v4:
| גרסת TensorFlow | גרסת התוכנה של ה-TPU |
|---|---|
| 2.10.0 | tpu-vm-tf-2.10.0-v4 tpu-vm-tf-2.10.0-pod-v4 |
| 2.9.3 | tpu-vm-tf-2.9.3-v4 tpu-vm-tf-2.9.3-pod-v4 |
| 2.9.2 | tpu-vm-tf-2.9.2-v4 tpu-vm-tf-2.9.2-pod-v4 |
| 2.9.1 | tpu-vm-tf-2.9.1-v4 tpu-vm-tf-2.9.1-pod-v4 |
TPU v2 ו-v3
אם אתם משתמשים ב-TPU v2 או ב-TPU v3, השתמשו בגרסת התוכנה של TPU שתואמת לגרסת TensorFlow שבה אתם משתמשים. לדוגמה, אם אתם משתמשים ב-TensorFlow 2.14.1, השתמשו בגרסת התוכנה tpu-vm-tf-2.14.1 של ה-TPU. בגרסאות אחרות של TensorFlow, מחליפים את 2.14.1 בגרסת TensorFlow שבה משתמשים. אם אתם משתמשים ב-TPU עם כמה מארחים, הוסיפו pod לסוף גרסת התוכנה של ה-TPU, לדוגמה tpu-vm-tf-2.14.1-pod.
החל מגרסה 2.15.0 של TensorFlow, צריך לציין גם API של מכשיר כחלק מהשם של גרסת התוכנה. לדוגמה, אם אתם משתמשים ב-TensorFlow 2.16.1 עם PJRT API, השתמשו בגרסת התוכנה tpu-vm-tf-2.16.1-pjrt של TPU. אם אתם משתמשים ב-API של מפעיל הסטרימינג עם אותה גרסה של TensorFlow, השתמשו בגרסת התוכנה tpu-vm-tf-2.16.1-se של ה-TPU. גרסאות TensorFlow שקודמות ל-2.15.0 תומכות רק ב-stream executor.
תמיכה ב-TensorFlow PJRT
החל מגרסה 2.15.0 של TensorFlow, אתם יכולים להשתמש בממשק PJRT ל-TensorFlow ב-TPU. PJRT כולל איחוי אוטומטי של זיכרון המכשיר ומפשט את השילוב של חומרה עם מסגרות. מידע נוסף על PJRT זמין במאמר PJRT: Simplifying ML Hardware and Framework Integration.
| Accelerator | תכונה | תמיכה ב-PJRT | תמיכה ב-Stream executor |
|---|---|---|---|
| TPU v2 - v4 | מחשוב צפוף (ללא API להטמעת TPU) | כן | כן |
| TPU v2 - v4 | Dense compute API + TPU embedding API | לא | כן |
| TPU v2 - v4 | tf.summary/tf.print עם מיקום מכשיר גמיש | לא | כן |
| TPU v5e | מחשוב צפוף (ללא API להטמעת TPU) | כן | לא |
| TPU v5e | TPU embedding API | לא רלוונטי | לא |
| TPU v5p | מחשוב צפוף (ללא API להטמעת TPU) | כן | לא |
| TPU v5p | TPU embedding API | כן | לא |
המאמרים הבאים
- למידע נוסף על ארכיטקטורת TPU, קראו את המאמר ארכיטקטורת TPU.
- במאמר מתי כדאי להשתמש ב-TPU מוסבר אילו סוגי מודלים מתאימים ל-Cloud TPU.