Compila con el código fuente

En este documento, se describe cómo compilar componentes de XLA.

Si no clonaste el repositorio de XLA ni instalaste Bazel, consulta la sección “Primeros pasos” del documento README.

Linux

Configurar

Las compilaciones de XLA se configuran con el archivo .bazelrc en el directorio raíz del repositorio. Las secuencias de comandos ./configure o ./configure.py se pueden usar para ajustar opciones de configuración comunes.

Si necesitas cambiar la configuración, ejecuta la secuencia de comandos ./configure desde el directorio raíz del repositorio. Esta secuencia de comandos te solicitará la ubicación de las dependencias de XLA y opciones de configuración de compilación adicionales (por ejemplo, marcas del compilador). Consulta la sección Sesión de muestra para obtener más detalles.

./configure

También hay una versión de Python de esta secuencia de comandos, ./configure.py. Si usas un entorno virtual, python configure.py prioriza rutas de acceso dentro del entorno, mientras que ./configure prioriza rutas fuera de este. En ambos casos, puedes cambiar el valor predeterminado.

Compatibilidad con CPU

Te recomendamos usar un contenedor de Docker adecuado para compilar o probar XLA, como el contenedor de Docker de TensorFlow:

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

Con un contenedor de Docker, puedes compilar XLA compatible con CPU. Para ello, usa los siguientes comandos:

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

Si deseas compilar destinos de XLA compatibles con CPU sin Docker, debes instalar gcc-10:

apt install gcc-10 g++-10

Luego, configura y compila los destinos con los siguientes 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/...

Asistencia de GPU

Recomendamos usar un contenedor de Docker de GPU para compilar XLA compatible con GPU, por ejemplo:

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

Para compilar XLA compatible con GPU, usa el siguiente comando:

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

Si deseas compilar destinos de XLA compatibles con GPU sin Docker, debes instalar las siguientes dependencias adicionales a las dependencias de CPU: cuda-11.2 y cuDNN-8.1.

Luego, configura y compila los destinos con los siguientes 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 obtener más información sobre las imágenes de Docker de GPU de TensorFlow, puedes consultar este documento.