גרסאות תוכנה של TPU
במאמר הזה מוסבר איך לבחור את גרסת התוכנה המתאימה של TPU כשיוצרים יחידות Cloud TPU.
כשיוצרים משאבי TPU, מציינים את גרסת התוכנה, שנקראת גם גרסת זמן ריצה. גרסה זו מתייחסת לסביבת התוכנה שמותקנת מראש ב-TPU VM. זה כולל את מערכת ההפעלה אובונטו, Docker ותוכנות אחרות הנדרשות להרצת הקוד שלך על גבי TPUs.
אם אתם משתמשים ב-Google Cloud CLI, אתם מציינים את גרסת התוכנה של ה-TPU באמצעות הפרמטר --version או --runtime-version. אם אתם משתמשים במסוף, אתם בוחרים גרסת תוכנה של TPU מתוך הרשימה TPU software version. Google Cloud
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 |
מידע נוסף על התקנה ועל תחילת העבודה עם PyTorch או JAX זמין במאמרים הרצת חישוב במכונה וירטואלית של Cloud TPU באמצעות PyTorch והרצת חישוב במכונה וירטואלית של Cloud TPU באמצעות JAX.
TensorFlow
גרסאות התוכנה של TPU ל-TensorFlow פועלות לפי מוסכמת שמות ספציפית:
tpu-vm-tf-x.y.z[-{pod}][-{device_api}]
-
x.y.z: מייצג את הגרסאות הראשית, המשנית והתיקון של TensorFlow. -
-pod(אופציונלי): מציין שאתם משתמשים ב-TPU slice עם כמה מארחים. -
-{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 tpu-vm-tf-2.16.0-pod-pjrt. בגרסאות אחרות של TensorFlow, מחליפים את 2.16.0 בגרסה הראשית ובגרסת התיקון של TensorFlow שבהן אתם משתמשים. אם אתם משתמשים ב-TPU של מארח יחיד, השמיטו את pod.
TPU גרסה 4
אם אתם משתמשים ב-TPU v4 וב-TensorFlow 2.10.1 או בגרסה חדשה יותר, אתם צריכים לפעול לפי ההוראות ל-TPU v2 ו-v3. אם אתם משתמשים ב-TensorFlow בגרסה 2.10.0 או בגרסה מוקדמת יותר, צריך להשתמש בגרסת תוכנה של TPU שספציפית לגרסה 4:
| גרסת 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 או v3, צריך להשתמש בגרסת התוכנה של TPU שתואמת לגרסת TensorFlow שבה אתם משתמשים. לדוגמה, אם אתם משתמשים ב-TensorFlow 2.14.1, אתם צריכים להשתמש בגרסת התוכנה של TPU tpu-vm-tf-2.14.1. בגרסאות אחרות של TensorFlow, מחליפים את 2.14.1 בגרסת TensorFlow שבה משתמשים. אם אתם משתמשים ב-TPU מרובה מארחים, צרף פוד לסוף גרסת תוכנת ה-TPU, לדוגמה tpu-vm-tf-2.14.1-pod.
החל מ-TensorFlow 2.15.0, עליך גם לציין API של התקן כחלק משם גרסת התוכנה. לדוגמה, אם משתמשים ב-TensorFlow 2.16.1 עם PJRT API, צריך להשתמש בגרסת התוכנה של TPU tpu-vm-tf-2.16.1-pjrt. אם אתם משתמשים בממשק stream executor API עם אותה גרסה של TensorFlow, אתם צריכים להשתמש בגרסת התוכנה של TPU tpu-vm-tf-2.16.1-se. בגרסאות TensorFlow ישנות יותר מ-2.15.0 יש תמיכה רק ב-stream
executor.
תמיכה ב-TensorFlow PJRT
החל מ-TensorFlow 2.15.0, ניתן להשתמש בממשק PJRT עבור TensorFlow על TPU. תכונות PJRT כוללות איחוי אוטומטי של זיכרון המכשיר ומפשטות את השילוב של חומרה עם מסגרות. מידע נוסף על PJRT זמין במאמר PJRT: Simplifying ML Hardware and Framework Integration.
| Accelerator | תכונה | תמיכה ב-PJRT | תמיכה בביצוע סטרימינג |
|---|---|---|---|
| TPU v2 - v4 | חישוב צפוף (ללא TPU embedding API) | כן | כן |
| TPU v2 - v4 | Dense compute API + TPU embedding API | לא | כן |
| TPU v2 - v4 | tf.summary/tf.print עם מיקום התקן רך | לא | כן |
| TPU v5e | חישוב צפוף (ללא TPU embedding API) | כן | לא |
| TPU v5e | TPU embedding API | לא רלוונטי | לא |
| TPU v5p | חישוב צפוף (ללא TPU embedding API) | כן | לא |
| TPU v5p | TPU embedding API | כן | לא |
המאמרים הבאים
- למידע נוסף על ארכיטקטורת TPU, אפשר לעיין במאמר בנושא ארכיטקטורת TPU.
- במאמר מתי כדאי להשתמש ב-TPU תוכלו לקרוא על סוגי המודלים שמתאימים ל-Cloud TPU.