[英]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/110和https://github.com/tensorflow/tensorflow/issues/527
如何在本地安裝缺少的依賴項,並讓bazel選擇正確的庫?
您應該能夠使用較新版本的Bazel從源代碼編譯導出LD_FLAGS,CXX和CC,並調整Bazel的tools / cpp / CROSSTOOL文件。 如果您還有其他問題,請在Bazel( https://github.com/bazelbuild/bazel/issues )上打開github問題。
我目前正在努力使這一切變得更容易。 對不起這個爛攤子。
如果有人需要手動執行此操作:
使用選項--disable-rpath
從源代碼編譯最新的glibc,gcc及其所有依賴項,以避免將glibc路徑硬編碼為系統默認值。 不要直接將glibc添加到LD_LIBRARY_PATH
,否則包括rm
在內的所有可執行文件都將停止工作。
用你的gcc編譯python,安裝pip和官方輪
./configure --prefix=$PWD/build --enable-unicode=ucs4 --with-cxx-main=g++ && make && make install
alias tensorflow='${GLIBC_PATH}/lib/ld-2.23.so --library-path ${GLIBC_PATH}/lib:${LD_LIBRARY_PATH}
哪個python '
能夠導入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.