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

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

כשיוצרים משאבי TPU, מציינים את גרסת התוכנה, שנקראת גם גרסת זמן ריצה. גרסה זו מתייחסת לסביבת התוכנה שמותקנת מראש ב-TPU VM. התוכנות האלה כוללות את מערכת ההפעלה Ubuntu, את Docker ותוכנות אחרות שנדרשות להרצת הקוד ב-TPU.

אם אתם משתמשים ב-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 מרובת-מארחים.
  • -{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 כן לא

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