Outils pour utilisateurs

Outils du site


linux_compiler_tensorflow_avec_bazel

Ceci est une ancienne révision du document !


Linux Compiler Tensorflow avec Bazel

Les téléchargements sont très gros: ce sont des paquets de 500 Mo !

Ressources

Contexte

  • Ubuntu Mate 20.04
  • python 3.8
  • venv

L'objectif est de compiler Tensorflow avec les options AVX2 et FMA !

Cuda

CudNN

sudo apt install libcudnn8 libcudnn8-dev

TensorRT

sudo apt install libnvinfer8 libnvinfer8-dev

Bazel et Tensorflow

# Bazel
 
sudo apt install apt-transport-https curl gnupg
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update
 
sudo apt install bazel
 
# Dépendances
python3 -m pip install numpy wheel
python3 -m pip install keras_preprocessing --no-deps
 
# Récupération des sources de tensorflow
mkdir src
cd src/
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
./configure

Des questions et des réponses: il faut absolument répondre non à ROCm (non à Rocky) et oui à download a fresh release of clang: j'ai perdu 3 heures à la faire moi-même. Conclusion: faites confiance aux machines !

./configure 
WARNING: current bazel installation is not a release version.
Make sure you are running at least bazel 4.2.1
Please specify the location of python. [Default is /usr/bin/python3]: 
 
 
Found possible Python library paths:
  /usr/lib/python3/dist-packages
  /usr/local/lib/python3.8/dist-packages
Please input the desired Python library path to use.  Default is [/usr/lib/python3/dist-packages]
 
Do you wish to build TensorFlow with ROCm support? [y/N]: n
No ROCm support will be enabled for TensorFlow.
 
Do you wish to build TensorFlow with CUDA support? [y/N]: y
CUDA support will be enabled for TensorFlow.
 
Do you wish to build TensorFlow with TensorRT support? [y/N]: y
TensorRT support will be enabled for TensorFlow.
 
Found CUDA 11.5 in:
    /usr/local/cuda-11.5/targets/x86_64-linux/lib
    /usr/local/cuda-11.5/targets/x86_64-linux/include
Found cuDNN 8 in:
    /usr/lib/x86_64-linux-gnu
    /usr/include
Found TensorRT 8 in:
    /usr/lib/x86_64-linux-gnu
    /usr/include/x86_64-linux-gnu
 
 
Please specify a list of comma-separated CUDA compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Each capability can be specified as "x.y" or "compute_xy" to include both virtual and binary GPU code, or as "sm_xy" to only include the binary code.
Please note that each additional compute capability significantly increases your build time and binary size, and that TensorFlow only supports compute capabilities >= 3.5 [Default is: 3.5,7.0]: 
 
 
Do you want to use clang as CUDA compiler? [y/N]: y
Clang will be used as CUDA compiler.
 
Do you wish to download a fresh release of clang? (Experimental) [y/N]: y
Clang will be downloaded and used to compile tensorflow.
 
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]: --config=AVX2 --config=FMA
 
 
Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n
Not configuring the WORKSPACE for Android builds.
 
Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details.
	--config=mkl         	# Build with MKL support.
	--config=mkl_aarch64 	# Build with oneDNN and Compute Library for the Arm Architecture (ACL).
	--config=monolithic  	# Config for mostly static monolithic build.
	--config=numa        	# Build with NUMA support.
	--config=dynamic_kernels	# (Experimental) Build kernels into separate shared objects.
	--config=v1          	# Build with TensorFlow 1 API instead of TF 2 API.
Preconfigured Bazel build configs to DISABLE default on features:
	--config=nogcp       	# Disable GCP support.
	--config=nonccl      	# Disable NVIDIA NCCL support.
Configuration finished
linux_compiler_tensorflow_avec_bazel.1639070980.txt.gz · Dernière modification : 2021/12/09 17:29 de serge