尝试从源代码构建Tensorflow,我想针对特定的CPU(x5-Z8350)对其进行优化。但是,由于我不知道要提供给bazel build
的特定标志,因此我只使用了-march=native
选项。问题是我需要在另一台更快的计算机上进行编译。
作为参考,我遵循的构建指南是Tensorflow的官方指南:Build from source。
因此,我想知道是否有任何方法可以获取设置-march=native
时使用的隐式标志?另外,答案是否与操作系统无关?
这是我要记住的全局步骤:
-march=native
bazel build [...]
,以开始Tensorflow编译-march=native
答案 0 :(得分:0)
def set_cc_opt_flags(environ_cp):
"""Set up architecture-dependent optimization flags.
Also append CC optimization flags to bazel.rc..
Args:
environ_cp: copy of the os.environ.
"""
if is_ppc64le():
# gcc on ppc64le does not support -march, use mcpu instead
default_cc_opt_flags = '-mcpu=native'
elif is_windows():
default_cc_opt_flags = '/arch:AVX'
else:
default_cc_opt_flags = '-march=native'
question = ('Please specify optimization flags to use during compilation when'
' bazel option "--config=opt" is specified [Default is %s]: '
) % default_cc_opt_flags
cc_opt_flags = get_from_env_or_user_or_default(environ_cp, 'CC_OPT_FLAGS',
question, default_cc_opt_flags)
for opt in cc_opt_flags.split():
write_to_bazelrc('build:opt --copt=%s' % opt)
# It should be safe on the same build host.
if not is_ppc64le() and not is_windows():
write_to_bazelrc('build:opt --host_copt=-march=native')
write_to_bazelrc('build:opt --define with_default_optimizations=true')
configure.py 中所写,-march = native是默认选项:
default_cc_opt_flags = '-march=native'
因此您可以运行
cd tensorflow
yes "" | ./configure
使用所有默认选项自动配置构建。
然后您可以检查 .tf_configure.bazelrc 来查看
build:opt --copt=-march=nativ
已设置。