从sou生成Tensorflow时出现非法指令错误

2024-06-16 18:34:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用bazel从源代码构建tensorflow,如下所述: https://www.tensorflow.org/install/install_sources

按照安装文档,我成功地编译了以下内容:

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both \
--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"--config=cuda \
-k //tensorflow/tools/pip_package:build_pip_package

接受的答案here和安装文档中的注释的组合,“将--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"添加到gcc5及更高版本的构建命令”。在

但是,import tensorflow as tf会导致错误

^{pr2}$

我还试过:conda update libgcc但没有成功。在

如何使用gcc5.0从源代码构建tensorflow?在


Tags: installpip文档httpsbuildpackage源代码use
1条回答
网友
1楼 · 发布于 2024-06-16 18:34:24

错误消息告诉我你的程序是用你的处理器没有的指令编译的,看看你的构建字符串,我怀疑-mavx2和{},这两个AFAIK只在最近(和高端)的cpu中实现。 请注意,gcc可以很好地编译CPU不支持的指令标志,但程序不会在您的机器上运行。在

为了确保您的CPU支持这些标志,请在bash中运行gcc -march=native -Q help=target | grep enabled,并检查输出是否包含您想要使用的所有构建标志(除了-mfpmath,它没有显示为enabled或disabled,因为它允许输出列表。为此,您需要检查完整的gcc -march=...命令输出)。在

为了回答您的最终意见,没有办法“启用”这些指令,它们是在硬件中实现的,它们要么在您的CPU上可用,要么不可用

相关问题 更多 >