Criar a partir da fonte

Este documento descreve como criar componentes do XLA.

Se você não clonou o repositório do XLA ou instalou o Bazel, consulte a seção "Primeiros passos" do documento README.

Linux

Configurar

As versões do XLA são configuradas pelo arquivo .bazelrc no diretório raiz do repositório. Os scripts ./configure ou ./configure.py podem ser usados para ajustar configurações comuns.

Se você precisar alterar a configuração, execute o script ./configure no diretório raiz do repositório. Esse script solicitará a localização das dependências do XLA e solicitará outras opções de configuração de build (sinalizações do compilador, por exemplo). Consulte a seção Sessão de exemplo para mais detalhes.

./configure

Há também uma versão Python desse script, ./configure.py. Se estiver usando um ambiente virtual, python configure.py prioriza caminhos no ambiente, enquanto ./configure prioriza caminhos fora dele. Em ambos os casos, é possível alterar o padrão.

Suporte para CPU

Recomendamos o uso de um contêiner do Docker adequado para criar/testar o XLA, como o contêiner do Docker do TensorFlow:

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

Usando um contêiner do Docker, é possível criar XLA com suporte para CPU usando os seguintes comandos:

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

Se você quiser criar destinos XLA com suporte para CPU sem Docker, instale gcc-10:

apt install gcc-10 g++-10

Em seguida, configure e crie destinos usando os seguintes comandos:

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/...

Suporte a GPUs

Recomendamos o uso de um contêiner do Docker de GPU para criar o XLA com suporte a GPUs, como:

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

Para criar XLA com suporte a GPU, use o seguinte comando:

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

Se você quiser criar destinos XLA com suporte a GPUs sem o Docker, será necessário instalar as seguintes dependências adicionais para dependências da CPU: cuda-11.2, cuDNN-8.1.

Em seguida, configure e crie destinos usando os seguintes comandos:

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/...

Para mais detalhes sobre imagens Docker de GPU do TensorFlow, consulte este documento.