Kompilacja ze źródła

W tym dokumencie opisano sposób tworzenia komponentów XLA.

Jeśli repozytorium XLA nie zostało skopiowane ani zainstalowane, zapoznaj się z sekcją „Rozpocznij” w dokumencie README.

Linux

Skonfiguruj

Kompilacje XLA są konfigurowane w pliku .bazelrc w katalogu głównym repozytorium. Skrypty ./configure lub ./configure.py mogą służyć do dostosowywania typowych ustawień.

Jeśli musisz zmienić konfigurację, uruchom skrypt ./configure z katalogu głównego repozytorium. Ten skrypt zapyta Cię o lokalizację zależności XLA i poprosi o dodatkowe opcje konfiguracji kompilacji (np. flagi kompilatora). Więcej informacji znajdziesz w sekcji Przykładowa sesja.

./configure

Istnieje również wersja tego skryptu w Pythonie: ./configure.py. Jeśli używasz środowiska wirtualnego, python configure.py nadaje wyższy priorytet ścieżkom w obrębie środowiska, a ./configure nadaje wyższy priorytet ścieżkom spoza tego środowiska. W obu przypadkach możesz zmienić wartość domyślną.

Obsługa procesora

Do kompilowania lub testowania XLA zalecamy użycie odpowiedniego kontenera Dockera, takiego jak kontener Dockera w TensorFlow:

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

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

docker exec xla ./configure
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ć gcc-10:

apt install gcc-10 g++-10

Następnie skonfiguruj i utwórz cele za pomocą tych poleceń:

yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=0 TF_CUDA_CLANG=0 ./configure

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

Obsługa GPU

Do tworzenia XLA z obsługą GPU zalecamy użycie kontenera Dockera GPU, takiego jak:

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

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

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

Jeśli chcesz tworzyć cele XLA z obsługą GPU bez Dockera, musisz zainstalować te zależności (cuda-11.2, cuDNN-8.1).

Następnie skonfiguruj i utwórz cele za pomocą tych poleceń:

yes '' | GCC_HOST_COMPILER_PATH=/usr/bin/gcc-10 CC=/usr/bin/gcc-10 TF_NEED_ROCM=0 TF_NEED_CUDA=1 TF_CUDA_CLANG=0 ./configure

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

Więcej informacji o obrazach Dockera procesorów graficznych TensorFlow znajdziesz w tym dokumencie.