2017-09-20 1 views
1

Lors de la construction de TensorFlow à partir de la source, nous vous demandons de définir --config=opt (qui activera par défaut le drapeau gcc -march=native) mais à travers le web, je vois beaucoup de gens utilisant -c opt à la place, mais selon la documentation de Bazel -c est en fait un raccourci pour --compilation_mode et non --config!Quelle est la différence entre -c opt et --config = opt lors de la construction de TensorFlow à partir de la source?

Confondamment, --compilation_mode prend également 'opt' comme valeur, mais je suppose que c'est juste une coïncidence? Quelqu'un pourrait-il clarifier la différence entre -c opt et --config=opt lors de l'exécution bazel build lors de la compilation TensorFlow?

Répondre

3

L'indicateur -c opt indique à Bazel de construire avec les paramètres d'optimisation activés et sans informations de débogage. Comme vous l'avez mentionné --compilation_mode opt. Ceci est lié aux drapeaux utilisés pour compiler n'importe quel code.

Le --config=opt indique à Bazel de regarder dans le fichier .bazelrc pendant la compilation et de lire les paramètres correspondant à la configuration opt. Après avoir exécuté votre script configure avec tensorflow, vous devriez avoir un fichier .bazelrc à la racine de votre espace de travail qui définit les paramètres pour plusieurs configurations. Pour la configuration opt, il ajoute le supplément -march-native pour la compilation.

Donc, c'est un peu une coïncidence qu'ils soient nommés de la même manière. Mais --config est un outil flexible pour choisir les paramètres Bazel à partir d'un fichier .bazelrc. -c est vraiment juste pour construire du code avec des optimisations.

3

--config Définissez une configuration qui se développe dans un ensemble d'indicateurs défini dans un fichier .rc. Par exemple. Si le fichier rc contient build:opt -c opt, le paramètre --config opt sur la ligne de commande s'étendra à -c opt. Le fichier tensorflow rc set -c opt mais ne définit aucune configuration opt. Donc, le réglage --config opt ne fera rien. ADDENDUM: ./configure de TensorFlow ajoute des options C++ sur le fichier .bazelrc de la configuration opt (il va donc se développer dans les options C++).

+0

Je pense qu'après avoir exécuté ./configure un nouveau fichier .tf_configure.bazelrc est généré qui contient une configuration opt – zlalanne

+0

En effet, lorsque zlalanne met sa réponse, le script configure définit des options C++ dans le fichier rc local. –