2017-08-27 2 views
1

J'ai été conduit à l'official tensorflow guide pour l'installer à partir de la source, afin de résoudre les avertissements tels que The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations, il semble qu'ils ont laissé la partie la plus importante en ce qui concerne la façon dont les drapeaux d'optimisation doivent être spécifiés lors de la configuration (./configure).tensorflow: gcc: erreur: option de ligne de commande non reconnue '--copt = -msse4.2'

les nourrir a mal conduire à des erreurs suivantes ont donné lieu à des erreurs comme celles-ci lors de la construction avec des configurations non valides (bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package):

... 
gcc: error: unrecognized command line option '--copt=-mavx' 
gcc: error: unrecognized command line option '--copt=-mavx2' 
gcc: error: unrecognized command line option '--copt=-mfma' 
gcc: error: unrecognized command line option '--copt=-msse4.1' 
gcc: error: unrecognized command line option '--copt=-msse4.2' 
gcc: error: unrecognized command line option '--copt=-mavx' 
gcc: error: unrecognized command line option '--copt=-mavx2' 
gcc: error: unrecognized command line option '--copt=-mfma' 
gcc: error: unrecognized command line option '--copt=-msse4.1' 
gcc: error: unrecognized command line option '--copt=-msse4.2' 
Target //tensorflow/tools/pip_package:build_pip_package failed to build 

Quelle est la bonne façon de spécifier les options d'optimisation?

Répondre

0

Il y a des chances que vous avez manqué la partie où the guide spécifie:

We recommend accepting the default (-march=native), which will optimize the generated code for your local machine's CPU type. However, if you are building TensorFlow on one CPU type but will run TensorFlow on a different CPU type, then consider specifying a more specific optimization flag as described in the gcc documentation .

Et dans le gcc documentation, vous trouverez les annonces telles que:

-mmmx -mno-mmx -msse -mno-sse -msse2 -mno-sse2 -msse3 -mno-sse3 -mssse3 -mno-ssse3 -msse4.1 -mno-sse4.1 -msse4.2 -mno-sse4.2 -msse4 -mno-sse4 -mavx -mno-avx -maes -mno-aes -mpclmul -mno-pclmul -msse4a -mno-sse4a -mfma4 -mno-fma4 -mxop -mno-xop -mlwp -mno-lwp -m3dnow -mno-3dnow -mpopcnt -mno-popcnt -mabm -mno-abm

1

eu un problème similaire mettant ce qui suit dans mon "./configure":

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: 
--copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.1 --copt=-msse4.2 

Comme lin ked par reubenjohn, dans le doc gcc, « -march = tout » est au même niveau que dire « -msse4.1 », donc, « --copt = » doit être supprimée car ces options sont en fait directement alimenté gcc.

en mettant à la place Résolu:

Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: 
-mavx -mavx2 -mfma -mfpmath=both -msse4.1 -msse4.2