במסמך הזה מוסבר איך לבנות רכיבי XLA.
אם לא שכפלתם את המאגר של XLA או התקנתם את Bazel, עיינו בקטע "תחילת העבודה" במסמך README.
Linux
הגדרה
גרסאות build XLA מוגדרות באמצעות הקובץ .bazelrc
בספריית השורש של המאגר. אפשר להשתמש בסקריפטים ./configure
או ./configure.py
כדי לשנות את ההגדרות הנפוצות.
כדי לשנות את ההגדרות האישיות, מריצים את הסקריפט ./configure
מספריית השורש של המאגר. הסקריפט יציג את המיקום של יחסי תלות של XLA ויבקש אפשרויות הגדרה נוספות ל-build (לדוגמה, דגלי הידור). פרטים נוספים מופיעים בקטע סשן לדוגמה.
./configure
קיימת גם גרסת python של הסקריפט הזה, ./configure.py
. אם אתם משתמשים בסביבה וירטואלית, ב-python configure.py
ניתנת עדיפות לנתיבים בתוך הסביבה, בעוד שב-./configure
ניתנת עדיפות לנתיבים מחוץ לסביבה. בשני המקרים תוכלו לשנות את ברירת המחדל.
תמיכה במעבד (CPU)
מומלץ להשתמש בקונטיינר עגינה שמתאים לבנייה או לבדיקה של XLA, כמו מאגר ה-Docker של TensorFlow:
docker run --name xla -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:latest-gpu bash
באמצעות קונטיינר של Docker, אפשר לפתח גרסת XLA עם תמיכה במעבד (CPU) באמצעות הפקודות הבאות:
docker exec xla ./configure
docker exec xla bazel build //xla/... --spawn_strategy=sandboxed --test_output=all
אם אתם רוצים לבנות יעדי XLA עם תמיכה במעבד (CPU) ללא Docker, תצטרכו להתקין את gcc-10:
apt install gcc-10 g++-10
לאחר מכן, מגדירים ויוצרים יעדים באמצעות הפקודות הבאות:
yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=0 TF_CUDA_CLANG=0 ./configure
bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
תמיכה ב-GPU
אנחנו ממליצים להשתמש בקונטיינר GPU ל-Docker כדי לפתח XLA עם תמיכה ב-GPU, למשל:
docker run --name xla_gpu -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:devel-gpu bash
כדי לפתח XLA עם תמיכה ב-GPU, יש להשתמש בפקודה הבאה:
docker exec -e TF_NEED_CUDA=1 xla_gpu ./configure
docker exec xla_gpu bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
אם רוצים ליצור יעדי XLA עם תמיכה ב-GPU ללא Docker, צריך להתקין את יחסי התלות הבאים בנוסף ליחסי תלות של מעבד (CPU): cuda-11.2
, cuDNN-8.1
.
לאחר מכן, מגדירים ויוצרים יעדים באמצעות הפקודות הבאות:
yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=1 TF_CUDA_CLANG=0 ./configure
bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
למידע נוסף על התמונות של מעגן GPU של TensorFlow, כדאי לעיין במסמך הזה.