גרסאות תוכנה של 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 כן לא

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