簡體   English   中英

如何在Red Hat 6.7上安裝bazel和tensorflow

[英]How to install bazel and tensorflow on Red Hat 6.7

我想從源代碼安裝bazel,並使用bazel在運行redhat 6.7的集群上編譯tensorflow。 當我嘗試安裝bazel時,glibc版本(2.12)太舊了。 我沒有對群集的root訪問權限。 在這種情況下是否可以安裝tensorflow?

我的系統信息:

-bash-4.1$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.7 (Santiago)
-bash-4.1$ which gcc
/usr/bin/gcc
-bash-4.1$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) 
-bash-4.1$ ldd --version
ldd (GNU libc) 2.12

該系統還安裝了更新的gcc。 我試過用它,bazel仍然不會編譯。

-bash-4.1$ /usr/local/gcc/4.8.4/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/gcc/4.8.4/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc/4.8.4/libexec/gcc/x86_64-unknown-linux-gnu/4.8.4/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc/4.8.4
Thread model: posix
gcc version 4.8.4 (GCC) 

當我編譯bazel時,我收到以下錯誤:

bazel-0.1.1/_bin/build-runfiles: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found

有些人還報告了這個問題: https//github.com/tensorflow/tensorflow/issues/110https://github.com/tensorflow/tensorflow/issues/527

如何在本地安裝缺少的依賴項,並讓bazel選擇正確的庫?

您應該能夠使用較新版本的Bazel從源代碼編譯導出LD_FLAGS,CXX和CC,並調整Bazel的tools / cpp / CROSSTOOL文件。 如果您還有其他問題,請在Bazel( https://github.com/bazelbuild/bazel/issues )上打開github問題。

我目前正在努力使這一切變得更容易。 對不起這個爛攤子。

如果有人需要手動執行此操作:

  1. 使用選項--disable-rpath從源代碼編譯最新的glibc,gcc及其所有依賴項,以避免將glibc路徑硬編碼為系統默認值。 不要直接將glibc添加到LD_LIBRARY_PATH ,否則包括rm在內的所有可執行文件都將停止工作。

  2. 用你的gcc編譯python,安裝pip和官方輪

./configure --prefix=$PWD/build --enable-unicode=ucs4 --with-cxx-main=g++ && make && make install

  1. 使用以下命令啟動python以加載正確的glibc,其中$ {GLIBC_PATH}是glibc的安裝位置,創建一個別名

alias tensorflow='${GLIBC_PATH}/lib/ld-2.23.so --library-path ${GLIBC_PATH}/lib:${LD_LIBRARY_PATH}哪個python '

  1. 導入tensorflow以檢查沒有發生錯誤

能夠導入tensorflow模塊后沒有任何錯誤,您可以使用任何其他計算機(可能是PC上的ubuntu VM)編譯具有機器特定選項的自定義輪,並按照指南將其復制到您的群集

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --copt=-msse4.1 //tensorflow/tools/pip_package:build_pip_package

暫無
暫無

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

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