Kompilacja ze źródła

Ten dokument zawiera informacje o tworzeniu komponentów XLA.

Jeśli nie skopiowałeś repozytorium XLA ani nie zainstalowałeś Bazel, zapoznaj się z pierwszymi sekcjami przewodnika dla programistów XLA.

Linux

Skonfiguruj

Kompilacje XLA są konfigurowane przez plik .bazelrc w katalogu głównym repozytorium. Do dostosowywania typowych ustawień możesz użyć skryptu ./configure.py.

Jeśli musisz zmienić konfigurację, uruchom skrypt ./configure.py z katalogu głównego repozytorium. Ten skrypt zawiera flagi dla lokalizacji zależności XLA i dodatkowych opcji konfiguracji kompilacji (np. flagi kompilatora). Więcej informacji znajdziesz w sekcji Przykładowa sesja.

Obsługa procesora

Zalecamy użycie odpowiedniego kontenera Dockera do kompilowania i testowania XLA, na przykład kontenera Dockera TensorFlow:

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

Za pomocą kontenera Dockera możesz skompilować XLA z obsługą procesora za pomocą tych poleceń:

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

Jeśli chcesz utworzyć cele XLA z obsługą procesora bez Dockera, musisz zainstalować clang. Obecnie XLA kompiluje się w ramach CI za pomocą clang-17, ale powinny działać też starsze wersje:

apt install clang

Następnie skonfiguruj i utwórz cele, używając tych poleceń:

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

Obsługa GPU

Zalecamy użycie tego samego kontenera Dockera, aby skompilować XLA z obsługą GPU:

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

Aby skompilować XLA z obsługą GPU, użyj tego polecenia:

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

Więcej informacji o obrazach Dockera dla GPU w TensorFlow znajdziesz w tym dokumencie.

Możesz też tworzyć cele XLA z obsługą GPU bez Dockera. Skonfiguruj i skompiluj cele za pomocą tych poleceń:

./configure.py --backend=CUDA

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

Więcej informacji o hermetycznej architekturze CUDA znajdziesz w tym dokumencie.