仍然得到“您的CPU支持该TensorFlow二进制文件未编译为使用的指令:”,同时使用-march = native

问题描述 投票:1回答:1

我已经尝试编译Tensorflow 2.0,以获得诸如avx之类的额外cpu指令的好处,但无济于事。我已阅读How to compile Tensorflow with SSE4.2 and AVX instructions?,但我仍然感到困惑,因为除非您确定要为另一台PC进行构建,否则-march = native应该可以正常工作。我尝试使用不同的指令构建2次,但仍收到警告消息。我想我使用了以下内容,并且如果有人想提供帮助,我仍然保存了日志。“ bazel build // tensorflow / tools / pip_package:build_pip_packaged_pip_package --config = mkl“

“ bazel build -c opt --copt = -march = native --config = mkl // tensorflow / tools / pip_package:build_pip_package

这仅是为了了解正在发生的事情。我目前不需要优化将带来的好处,但是我不明白为什么我使用的方法在我完全遵循它时不起作用。

tensorflow sse bazel
1个回答
0
投票

正如我在您所链接问题的最高答案中的编辑所指出的那样,[bazel和/或TensorFlow的构建脚本似乎有错误。他们错误地处理了-march=native,无法将其传递给编译器。我猜想它的名字带有=的args会出错,因为像-mfma这样的args可以工作。

您是正确的,如果他们正确地将-march=native传递给编译器,则不会有问题,也不需要任何复杂性。

IDK为什么还没有人解决这个巨大的不便,而是让许多不是x86 CPU功能方面的专家的用户迷路了,试图弄清楚他们的CPU具有哪些功能以及如何为gcc / clang提供支持。这正是-march=native的目的,另外还有为正在编译的计算机设置适当的tuning选项的其他重要功能。

我看了一次,但是我实际上并没有使用TensorFlow并且不知道bazel,所以我陷入了该命令行和g++ ... foo.cpp的实际调用之间的构建机器迷宫中。

© www.soinside.com 2019 - 2024. All rights reserved.