簡體   English   中英

從源構建Tensorflow時出現非法指令錯誤

[英]illegal instruction error when building Tensorflow from source

我正在使用bazel從源代碼構建tensorflow,如下所述: https://www.tensorflow.org/install/install_sources ://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

這里接受的答案和安裝文檔中的注釋“將--cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0"到gcc 5及更高版本的構建命令中”。

但是, import tensorflow as tf導致錯誤

illegal instruction (core dumped), exiting python.

我還試過: conda update libgcc無濟於事。

如何使用gcc 5.0從源代碼構建tensorflow?

錯誤消息告訴我你的程序是用你的處理器沒有的指令編譯的,看看你的構建字符串讓我懷疑-mavx2-mfma哪個AFAIK只在最近(和高端)的CPU中實現。 請注意, gcc將使用標志進行編譯,以獲得CPU不支持的指令,但程序將無法在您的計算機上運行

要確保您的CPU支持這些標志,請在bash中運行gcc -march=native -Q --help=target | grep enabled gcc -march=native -Q --help=target | grep enabled並檢查輸出是否包含您要使用的所有構建標志( -mfpmath除外,它不顯示為啟用或禁用,因為它允許輸出列表。為此,您需要檢查完整gcc -march=...命令輸出)。

為了回答你的最終評論,沒有辦法“啟用”這些指令,它們是用硬件實現的,它們可以在你的CPU上使用,或者它們不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM