linux_compiler_tensorflow_avec_bazel
Ceci est une ancienne révision du document !
Table des matières
Linux Compiler Tensorflow avec Bazel
Aucun tuto correct, la doc de Google est minimaliste, aucun exemple, comment définir des config ? Mystère Si j'y arrive ce tuto va valoir de l'or !
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
Compilation: Création du package pip
sudo apt update && sudo apt install bazel-4.2.1 bazel build --config=cuda [--config=option] //tensorflow/tools/pip_package:build_pip_package
linux_compiler_tensorflow_avec_bazel.1639123085.txt.gz · Dernière modification : 2021/12/10 07:58 de serge