Hướng dẫn cho nhà phát triển XLA

Hướng dẫn này sẽ hướng dẫn bạn cách bắt đầu phát triển dự án XLA.

Trước khi bắt đầu, hãy hoàn thành các điều kiện tiên quyết sau:

  1. Truy cập vào CONTRIBUTING.md rồi xem lại khoản đóng góp của chúng tôi.
  2. Nếu bạn chưa ký, hãy ký Thoả thuận cấp phép cộng tác viên.
  3. Cài đặt hoặc định cấu hình các phần phụ thuộc sau:

Sau đó, hãy làm theo các bước bên dưới để lấy mã nguồn, thiết lập môi trường, tạo kho lưu trữ và tạo yêu cầu kéo.

Lấy mã

  1. Tạo một nhánh của kho lưu trữ XLA.
  2. Sao chép nhánh phát triển của kho lưu trữ, thay thế <USER> bằng tên người dùng GitHub của bạn:

    git clone <a href="https://github.com/">https://github.com/</a><USER>/xla.git
    
  3. Thay đổi thành thư mục xla: cd xla

  4. Định cấu hình kho lưu trữ ngược dòng (upstream) từ xa:

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

Thiết lập môi trường

  1. Cài đặt Bazel.

    Để tạo XLA, bạn phải cài đặt Bazel. Cách cài đặt được đề xuất Bazel đang sử dụng Bazelisk, Tự động tải đúng phiên bản Bazel xuống cho XLA. Nếu Bazelisk không có sẵn, bạn có thể cài đặt Bazel theo cách thủ công.

  2. Tạo và chạy một Vùng chứa TensorFlow Docker.

    Để tạo hình ảnh TensorFlow Docker cho cả quá trình tạo CPU và GPU, hãy chạy lệnh sau đây:

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

Tạo

Bản dựng cho CPU:

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

Xây dựng cho 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/...

Bản dựng đầu tiên của bạn sẽ mất chút thời gian vì bạn phải tạo toàn bộ bao gồm XLA, MLIR và StableHLO.

Để tìm hiểu thêm về cách tạo XLA, hãy xem phần Tạo từ nguồn.

Tạo yêu cầu kéo

Khi bạn đã sẵn sàng gửi các thay đổi đi xem xét, hãy tạo một yêu cầu kéo.

Để tìm hiểu về triết lý xem xét mã XLA, hãy xem phần Quy trình xem xét.