מדריך למפתחים של XLA

במדריך הזה מוסבר איך להתחיל בפיתוח פרויקט XLA.

לפני שמתחילים, חשוב להשלים את הדרישות המוקדמות הבאות:

  1. היכנסו אל CONTRIBUTING.md ובדקו את תהליך הוספת התוכן.
  2. אם עדיין לא עשיתם זאת, עליכם לחתום על הסכם הרישיון של המומחים.
  3. מתקינים או מגדירים את יחסי התלות הבאים:

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

קבל את הקוד

  1. יוצרים מזלג (fork) של מאגר XLA.
  2. משכפלים את המזלג של המאגר ומחליפים את <USER> בשם המשתמש שלכם ב-GitHub:

    git clone <a href="https://github.com/">https://github.com/</a><USER>/xla.git
    
  3. עוברים לספרייה xla: cd xla

  4. מגדירים את המאגר המרוחק ב-upstream:

    git remote add upstream <a href="https://github.com/openxla/xla.git">https://github.com/openxla/xla.git</a>
    

הגדרת סביבה

  1. מתקינים את Bazel.

    כדי לפתח את כרטיס XLA, צריך להתקין את Bazel. הדרך המומלצת להתקין את Bazel היא באמצעות האפליקציה Bazelisk, שמורידה באופן אוטומטי את גרסת Bazel המתאימה ל-XA. אם Bazelisk לא זמין, אפשר להתקין את Bazel באופן ידני.

  2. יוצרים ומפעילים קונטיינר של TensorFlow Docker.

    כדי לקבל את תמונת TensorFlow Docker למעבד (CPU), מריצים את הפקודה הבאה:

    docker run --name xla -w /xla -it -d --rm -v $PWD:/xla tensorflow/build:latest-python3.9 bash
    

    אפשרות נוספת, כדי לקבל את תמונת TensorFlow Docker ל-GPU, מריצים את הפקודה הבאה:

    docker run --name xla_gpu -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:devel-gpu bash
    

פיתוח פתרונות

גרסת build למעבד (CPU):

docker exec xla ./configure
docker exec xla bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

Build עבור GPU:

docker exec -e TF_NEED_CUDA=1 xla_gpu ./configure
docker exec xla_gpu bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

כדי ליצור את גרסת ה-build הראשונה צריך הרבה זמן כי היא צריכה לבנות את כל ה-Stack, כולל XLA, MLIR ו-StableHLO.

למידע נוסף על בניית XLA, אפשר לעיין במאמר יצירה ממקור.

יצירה של בקשת משיכה

כשתהיו מוכנים לשלוח את השינויים לבדיקה, תצטרכו ליצור בקשת משיכה.

במאמר ביקורות על קודים תוכלו לקרוא מידע נוסף על פילוסופיית הבדיקה של הקוד XLA.