web-dev-qa-db-ja.com

CentOS 6.9へのTensorflowのインストール(GCC、GLIBC、およびbinutilsの問題)

CentOS6.9にTensorflowをインストールするのに非常に問題があります。

Anaconda3を使用してCentOSにTensorflowをインストールする手順に従おうとしました(当然、Python 3、Python 3.5.3))。ほとんどのパッケージがインストールされています。 Tensorflowを除いて正しく。一部のパッケージをインストールするには、GCCバージョンを4.4.7から6.3.0にアップグレードする必要がありましたが、Python画面に4.4.7と表示されます。

とにかく、私は指示に従ってTensorflowをインストールしましたが、このメッセージImportError: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by /home/k/anaconda3/envs/h/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)をスローするため、使用できませんでした。

そこで、GLIBCを2.14よりも新しいものにアップグレードしようとしたので、binutils 2.20は新しいGLIBCファイルの1つの構成を実行しないため、binutilsを2.25にアップグレードしました。しかし、古いLinuxバージョンであるGLIBCの構成中に別の問題が発生しました。 Linux 2.6を使用している場合は、Linux3.2.0が必要でした。

これが私の制約です。

  • Linuxのバージョンを変更できません。これはサーバーマシンであり、CentOS 6.9Linuxを使用している必要があります。

これらは私が皆に尋ねたい質問です:

  1. どうやらCUDA8.0は5.3.1以降のGCCバージョンをサポートしていないので、GCCバージョンを6.3.0から5.0から5.2の間のどこかに変更したいと思います。 _gcc --version_と入力すると、GCCバージョン6.3.0が表示されますが、python 3に入ると、[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linuxが表示されます。どうすればよいですか。それについて?

  2. プラットフォームでTensorflowを実行するように、GLIBCをアップグレードしたいと思います。私が超える必要のあるGLIBCバージョンはGLIBC_2.14だと思いますが、それでTensorflowを実行するのに十分かどうかはわかりません。サーバーでTensorflowを実行できるように、GLIBCのアップグレードを手伝ってください。

  3. 上記のタスクを実行するには、どのbinutilパッケージが必要ですか? devtools-4-binutilsをダウンロードして最新のbinutilsパッケージを入手しましたが、最新のパッケージがLinux2.6バージョンと同期していない可能性があります。

  4. このいずれも機能しない場合は、GCCを工場出荷時のバージョン4.4.7にリセットし、binutilsを2.20にリセットする方法を教えてください。マシンに適用したすべての変更を元に戻すことができれば、GCCバージョン<5.3.1をインストールして、Tensorflowインストール用に新しいGLIBCを構成できると思います。

2
HOON

CentOS 6で機能させるには、tensorflow pipパッケージをソースから再構築する必要がありました。これは、デフォルトのpipパッケージにいくつかの基本的な問題があり、CentOS6用にどのglibcを使用したかが原因です。これが私が作ったメモです。 (これは1か月前に行ったことに注意してください)

  1. bazel-4.5-dist.Zipをダウンロードし、次の手順に従ってインストールします。2017-09-04以降、新しいバージョンのbazelは機能しません。

    ~$ cd  
    ~$ wget https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.Zip  
    ~$ cd /usr/src  
    ~$ mkdir bazel-0.4.5-dist.Zip  
    ~$ cd bazel-0.4.5-dist  
    ~# mv ~/bazel-0.4.5-dist.Zip ./  
    ~# unzip bazel-0.4.5-dist.Zip  
    ~# ./compile.sh
    
  2. 〜/ .bashrcを変更して、devtoolset-6ではなくdevtoolset-2をアクティブにします。 Tensorflowは新しいgccではビルドされず、gcc4までしかビルドされません

    〜/ .bashrcで

    source /opt/rh/devtoolset-2/enable
    #source /opt/rh/devtoolset-6/enable
    
  3. Tensorflowを/ usr/srcに複製します

    ~$ cd /usr/src  
    ~# git clone https://github.com/tensorflow/tensorflow
    
  4. テンソルフローを構成する

    ~$ cd tensorflow  
    ~# ./configure
    

CUDAを除くすべてのサポートオプションで「いいえ」を選択します。他のすべてはデフォルトである必要があります

  1. / usr/src/tensorflow/third_party/gpus/crosstoolに移動し、CROSSTOOL_clang.tplとCROSSTOOL_nvcc.tplを変更して、「toolchain」というラベルの付いたセクションに次の行を追加します。

    linker_flag : "-B/opt/rh/devtoolset-2/root/usr/bin"
    
  2. テンソルフローを構築する

    ~$ cd /usr/src/tensorflow  
    ~# bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
    
  3. Pipパッケージを作成する

    ~# bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    
  4. カスタムpipパッケージをインストールする

    ~# Sudo pip install /tmp/tensorflow_pkg/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl
    
2
S. Pan