גרסאות תוכנה של TPU

במאמר הזה אנחנו מסבירים איך לבחור את גרסת התוכנה המתאימה של TPU כשיוצרים Cloud TPU.

כשיוצרים משאבי TPU, מציינים את גרסת התוכנה, שנקראת גם גרסת זמן ריצה. גרסה זו מתייחסת לסביבת התוכנה שמותקנת מראש במכונה הווירטואלית של ה-TPU. הוא כולל את מערכת ההפעלה 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

מידע נוסף על התקנה ועל תחילת העבודה עם 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 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 או 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 כן לא

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