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