גרסאות תוכנה של 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 של מנהל ה-stream עם אותה גרסה של 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 | מחשוב צפוף (ללא TPU embedding API) | כן | כן |
| TPU v2 עד v4 | Dense compute API + TPU embedding API | לא | כן |
| TPU v2 עד v4 | tf.summary/tf.print עם מיקום מכשיר גמיש | לא | כן |
| TPU v6e ו-v5e | מחשוב צפוף (ללא TPU embedding API) | כן | לא |
| TPU v6e ו-v5e | TPU embedding API | לא רלוונטי | לא |
| TPU v5p | מחשוב צפוף (ללא TPU embedding API) | כן | לא |
| TPU v5p | TPU embedding API | כן | לא |
המאמרים הבאים
- למידע נוסף על ארכיטקטורת TPU, ראו ארכיטקטורת TPU.
- במאמר מתי כדאי להשתמש ב-TPU מוסבר אילו סוגי מודלים מתאימים ל-Cloud TPU.