Outils pour utilisateurs

Outils du site


linux_compiler_tensorflow_avec_bazel

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux_compiler_tensorflow_avec_bazel [2021/12/09 07:46] – [Linux Compiler Tensorflow avec Basel] sergelinux_compiler_tensorflow_avec_bazel [2021/12/20 11:13] (Version actuelle) – [La version Intel de Tensorflow] serge
Ligne 1: Ligne 1:
 ====== Linux Compiler Tensorflow avec Bazel ====== ====== Linux Compiler Tensorflow avec Bazel ======
 +<WRAP center round box 60% centeralign>
 +**L'objectif est de compiler Tensorflow avec les options AVX2 et FMA et sans GPU**\\
 +Voir **[[movenet|]]**
 +</WRAP>
  
 +=====La version Intel de Tensorflow=====
  
 +**[[https://pypi.org/project/intel-tensorflow/|intel-tensorflow]]**
 +<code bash>
 +python3 -m pip install intel-tensorflow
 +</code>
 +
 +Donne toujours le message AVX2 et FMA. Mais c'est normal.\\
 +Bienvenue dans le monde de Tensoflow: c'est un Warning, mais ce n'est pas forcément vrai !\\
 +Mon FPS a augmenté de 10 à 20 % :-P
 +
 +**Il est inutile de compiler** 8-)
 =====Ressources===== =====Ressources=====
   * **[[https://www.tensorflow.org/install/source|Compiler à partir de la source]]**   * **[[https://www.tensorflow.org/install/source|Compiler à partir de la source]]**
-{{tag>ia linux python sb tensorflow}}+  * **[[https://www.intel.com/content/www/us/en/developer/articles/guide/optimization-for-tensorflow-installation-guide.html|Build TensorFlow from Source with Intel oneAPI oneDNN library]]**
  
 +Sur les internets, ça en cause:
 +  * https://docs.bazel.build/versions/main/install-ubuntu.html
 +  * https://technofob.com/2019/06/14/how-to-compile-tensorflow-2-0-with-avx2-fma-instructions-on-mac
 +  * https://github.com/tensorflow/tensorflow/issues/7660
 +  * https://ai-pool.com/d/proper-way-to-compile-tensorflow-with-sse4-2-and-avx
 +  * https://github.com/GTGraphics3/tensorflow-1.4.2-AVX-MKL
  
-===Contexte=== +=====Installation de Bazel===== 
-  * Ubuntu Mate 20.04 +Bazel est le compilateur de Google
-  * python 3.8 +<code bash> 
-  * venv+# 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-4.2.1 
 +</code>
  
 +=====Sans GPU sur Debian=====
 +Désinstaller les packages python tensorflow si ils sont installés.
 <code bash> <code bash>
-python3 -m pip install numpy wheel+pip3 list 
 +# Dans la list, chercher ce qu'il faut désinstaller ... 
 +python3 -m pip uninstall tensorflow intel-tensorflow 
 +... 
 +</code> 
 +Installation du nécessaire: 
 +<code bash> 
 +python3 -m pip install numpy wheel protobuf
 python3 -m pip install keras_preprocessing --no-deps python3 -m pip install keras_preprocessing --no-deps
 +</code>
  
 +Récupération des sources de tensorflow:
 +<code bash>
 +cd /votre/dossier/src
 +git clone https://github.com/tensorflow/tensorflow 
 +./configure
 +</code>
  
 +Cela génère un fichier .tf_configure.bazelrc dans le dossier tensorflow (c'est un fichier caché: Ctrl+h).\\
 +Répondre entrée ou N partout, nous allons corriger le fichier à la main:
 +<code bash>
 +build --action_env PYTHON_BIN_PATH="/usr/bin/python3"
 +build --action_env PYTHON_LIB_PATH="/usr/lib/python3/dist-packages"
 +build --python_path="/usr/bin/python3"
 +build:opt --copt=-march=native
 +build:opt --host_copt=-march=native
 +test --flaky_test_attempts=3
 +test --test_size_filters=small,medium
 +test:v1 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial
 +test:v1 --build_tag_filters=-benchmark-test,-no_oss,-gpu
 +test:v2 --test_tag_filters=-benchmark-test,-no_oss,-gpu,-oss_serial,-v1only
 +test:v2 --build_tag_filters=-benchmark-test,-no_oss,-gpu,-v1only
 +</code>
  
 +
 +
 +====Compilation de tensorflow====
 +<code bash>
 +sudo ln -s /usr/bin/python3 /usr/bin/python
 +bazel build -j 4  --copt=-mavx2 --copt=-mfma  //tensorflow/tools/pip_package:build_pip_package
 +./bazel-bin/tensorflow/tools/pip_package/build_pip_package /media/data/tensorflow_pkg
 </code> </code>
 +
 +===Consommation mémoire===
 +Sur un i5 à 8 threads et 8 Go de Ram: -j 2 pour limiter la consommation de mémoire, sinon Swap de 8 Go insuffisante.
 +
 +===Stop et reprise===
 +Bazel reprend là où il s'est arrêté.  Pour nettoyer avant de reprendre: bazel clean
 +
 +===Success===
 +<code bash>
 +INFO: Elapsed time: 19106.040s, Critical Path: 196.86s
 +soit 5.3 heures, perso je trouve 7 heures!
 +INFO: 11460 processes: 1325 internal, 10135 local.
 +INFO: Build completed successfully, 11460 total actions
 +</code>
 +
 +====Nettoyage pour recommencer====
 +<code bash>
 +bazel clean
 +</code>
 +
 +====Installation====
 +<code bash>
 +cd /media/data/3D/projets/grande_echelle_move
 +source mon_env/bin/activate
 +python3 -m pip uninstall tensorflow
 +python3 -m pip install /media/data/src/tensorflow-2.8.0-cp38-cp38-linux_x86_64.whl
 +</code>
 +
 +====Utilisation====
 +Le message d'info AVX2 et FMA est toujours là !
 +
 +{{tag>ia linux python sb tensorflow}}
linux_compiler_tensorflow_avec_bazel.1639035985.txt.gz · Dernière modification : 2021/12/09 07:46 de serge