Panduan ini menunjukkan cara memulai pengembangan proyek XLA.
Sebelum Anda memulai, selesaikan prasyarat berikut:
- Buka CONTRIBUTING.md dan tinjau proses kontribusi.
- Jika Anda belum melakukannya, tanda tangani Perjanjian Lisensi Kontributor.
- Instal atau konfigurasi dependensi berikut:
Kemudian, ikuti langkah-langkah di bawah ini untuk mendapatkan kode sumber, menyiapkan lingkungan, mem-build repositori, dan membuat permintaan pull.
Mendapatkan kode
- Buat fork repositori XLA.
Clone fork repo Anda, dengan mengganti
<USER>
dengan nama pengguna GitHub Anda:git clone <a href="https://github.com/">https://github.com/</a><USER>/xla.git
Ubah ke direktori
xla
:cd xla
Konfigurasikan repo upstream jarak jauh:
git remote add upstream <a href="https://github.com/openxla/xla.git">https://github.com/openxla/xla.git</a>
Menyiapkan lingkungan
Instal Bazel.
Untuk membuat XLA, Anda harus menginstal Bazel. Cara yang direkomendasikan untuk menginstal Bazel adalah menggunakan Bazelisk, yang otomatis mendownload versi Bazel yang benar untuk XLA. Jika Bazelisk tidak tersedia, Anda dapat menginstal Bazel secara manual.
Buat dan jalankan container Docker TensorFlow.
Untuk mendapatkan image Docker TensorFlow untuk CPU, jalankan perintah berikut:
docker run --name xla -w /xla -it -d --rm -v $PWD:/xla tensorflow/build:latest-python3.9 bash
Atau, untuk mendapatkan image Docker TensorFlow untuk GPU, jalankan perintah berikut:
docker run --name xla_gpu -w /xla -it -d --rm -v $PWD:/xla tensorflow/tensorflow:devel-gpu bash
Build
Build untuk CPU:
docker exec xla ./configure
docker exec xla bazel build --test_output=all --spawn_strategy=sandboxed //xla/...
Build untuk 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 pertama Anda akan memerlukan waktu cukup lama karena harus mem-build seluruh stack, termasuk XLA, MLIR, dan StableHLO.
Untuk mempelajari cara mem-build XLA lebih lanjut, lihat Mem-build dari sumber.
Membuat permintaan pull
Jika Anda sudah siap mengirim perubahan untuk ditinjau, buat permintaan pull.
Untuk mempelajari filosofi peninjauan kode XLA, lihat Peninjauan kode.