2017-08-27 319 views
1

我導致official tensorflow guide從源代碼安裝它,爲了解決警告,如The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations,好像他們已經省略了配置期間如何指定優化標誌的最重要部分(./configure)。tensorflow:gcc:error:無法識別的命令行選項'--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' 
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 

什麼是指定的優化參數的正確方法:用無效的配置(bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package)建設時

餵養它們錯誤地導致了下面的錯誤導致了這樣的錯誤?

回答

0

機會是你可能已經錯過了部分地方the guide規定:

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 .

而在gcc documentation,你會發現列表,如:

-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

也有類似的問題,把下面的在我的「./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 

As lin由gub doc中的reubenjohn ked'-march = whatever'與'-msse4.1'處於同一級別,因此'--copt ='必須被移除,因爲這些選項實際上直接饋送給GCC。

解決通過將改爲:

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 
相關問題