מדריך למפתחים בנושא XLA

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

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

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

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

קבל את הקוד

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

        
            git clone https://github.com//xla.git
        
    

  3. עוברים לספרייה xla: cd xla

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

        
            git remote add upstream https://github.com/openxla/xla.git
        
    

הגדרת סביבה

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

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

  2. יצירת קונטיינר של TensorFlow ב-Docker והפעלה שלו.

    כדי לקבל את קובץ האימג' של TensorFlow ב-Docker ל-CPU ול-GPU, מריצים את הפקודה הבאה:

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

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

פיתוח ל-CPU:

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

פיתוח ל-GPU:

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

bazel build --test_output=all --spawn_strategy=sandboxed //xla/...

ה-build הראשון יימשך לא מעט זמן כי הוא צריך לבנות את כל המקבץ, כולל XLA, MLIR ו-StableHLO.

מידע נוסף על פיתוח XLA זמין במאמר פיתוח מקוד מקור.

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

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

במאמר תהליך הבדיקה מוסבר על הפילוסופיה של בדיקת הקוד ב-XLA.