גרסאות תוכנה של TPU
במאמר הזה אנחנו מסבירים איך לבחור את גרסת התוכנה המתאימה של TPU כשיוצרים יחידות Cloud TPU.
כשיוצרים משאבי TPU, מציינים את גרסת התוכנה, שנקראת גם גרסת זמן ריצה. גרסה זו מתייחסת לסביבת התוכנה שמותקנת מראש ב-TPU VM. האחסון כולל את מערכת ההפעלה Ubuntu, את Docker ותוכנות אחרות שנדרשות להרצת הקוד ב-TPU.
אם אתם משתמשים ב-Google Cloud CLI, אתם מציינים את גרסת התוכנה של ה-TPU באמצעות הפרמטר --version או --runtime-version. אם משתמשים במסוף, בוחרים גרסת תוכנה של TPU מתוך הרשימה TPU software version (גרסת תוכנה של TPU). 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 מרובת-מארחים. -
-{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 עם כמה מארחים, צריך להוסיף pod בסוף גרסת התוכנה של ה-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.