tensorflow:gcc:错误:无法识别的命令行选项'--copt = -msse4.2'

时间:2017-08-27 13:20:06

标签: gcc tensorflow compilation

我是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)。

错误地提供错误导致以下错误导致在使用无效配置构建时出现类似错误(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

指定优化标志的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

在我的" ./ configure":

中存在类似的问题
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

由reubenjohn链接,在gcc doc中,' -march = what'与' -msse4.1'处于同一水平,因此,' - copt ='必须删除,因为这些选项实际上是直接输入gcc。

通过改为解决:

replace(x = df$include,
        list = sapply(1:NROW(df), function(i)
            any(df$flag[c(max(1, i-2):max(1, i-1),
                          min(i+1, NROW(df)):min(i+2, NROW(df)))] == 1)), values = 0)
# [1] 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1

答案 1 :(得分:0)

您可能错过了the guide指定的部分:

  

我们建议接受默认值(-march = native),这将优化本地计算机CPU类型的生成代码。但是,如果要在一种CPU类型上构建TensorFlow,但在不同的CPU类型上运行TensorFlow,则考虑指定更具体的优化标志,如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