Przewodnik dla programistów XLA

Z tego przewodnika dowiesz się, jak rozpocząć tworzenie projektu XLA.

Zanim zaczniesz, spełnij te wymagania wstępne:

  1. Otwórz stronę CONTRIBUTING.md i sprawdź proces darowizny.
  2. Jeśli jeszcze jej nie masz, podpisz Umowę licencyjną dla współtwórców.
  3. Zainstaluj lub skonfiguruj te zależności:

Następnie wykonaj opisane poniżej czynności, aby pobrać kod źródłowy, skonfigurować środowisko, skompilować repozytorium i utworzyć żądanie pull.

Pobierz kod

  1. Utwórz rozwidlenie repozytorium XLA.
  2. Skopiuj rozwidlenie repozytorium, zastępując <USER> swoją nazwą użytkownika GitHuba:

    git clone <a href="https://github.com/">https://github.com/</a><USER>/xla.git
    
  3. Przejdź do katalogu xla: cd xla

  4. Skonfiguruj zdalne repozytorium nadrzędne:

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

Konfigurowanie środowiska

  1. Zainstaluj aplikację Bazel.

    Aby utworzyć XLA, musisz mieć zainstalowaną aplikację Bazel. Zalecanym sposobem zainstalowania aplikacji Bazel jest użycie programu Bazelisk, który automatycznie pobiera prawidłową wersję Bazela na XLA. Jeśli usługa Bazelisk jest niedostępna, możesz zainstalować ją ręcznie.

  2. Utwórz i uruchom kontener Dockera w TensorFlow.

    Aby pobrać obraz Dockera TensorFlow dla CPU, uruchom to polecenie:

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

    Aby pobrać obraz Dockera TensorFlow dla GPU, możesz też uruchomić to polecenie:

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

Kompilacja

Kompilacja dla procesora:

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

Kompilacja dla GPU:

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

Pierwsza kompilacja trochę potrwa, ponieważ musi skompilować cały stos, w tym XLA, MLIR i StableHLO.

Więcej informacji na temat tworzenia XLA znajdziesz w artykule Tworzenie na podstawie źródła.

Tworzenie żądania pull

Gdy zmiany będą gotowe do sprawdzenia, utwórz żądanie pobierania.

Więcej informacji o zasadach weryfikacji kodu XLA znajdziesz w artykule Weryfikacja kodu.