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

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

CentOS 6.9にTensorflowをインストールする際に大きな問題があります。

Anaconda3(もちろん、Python 3の場合は正確にPython 3.5.3)を使用してCentOSにTensorflowをインストールする方法についての指示に従ってください。 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ファイルのいずれかの設定を実行しないので、binutilsを2.25にアップグレードしました。しかし、古いLinuxバージョンのGLIBCを設定する際に別の問題が発生しました。 Linux 3.2.0が必要で、Linux 2.6があります。

これが私の制約です。

  • Linuxのバージョンを変更できません。サーバーシステムであり、CentOS 6.9 Linuxを使用する必要があります。

私があなたに尋ねたい質問は次のとおりです。

  1. 明らかに、CUDA 8.0は5.3.1以降のGCCバージョンをサポートしていないので、私のGCCバージョンを6.3.0から5.0から5.2の間に変更したいと思う誘惑を受けます。と入力するとgcc --versionGCCバージョン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パッケージが必要ですか?最新のbinutilsパッケージを入手するためにdevtools-4-binutilsをダウンロードしましたが、最新のパッケージがLinux 2.6バージョンと同期していないかどうか心配です。

  4. この方法がすべて機能しない場合は、GCCを工場バージョン4.4.7にリセットし、binutilsを2.20にリセットする方法を教えてください。自分のコンピュータに適用したすべての修正をキャンセルできる場合は、GCCバージョン5.3.1をインストールし、Tensorflowインストール用に最新のGLIBCを設定できると思います。

答え1

基本的な pip パッケージと glibc を使用して CentOS6 用にビルドする際にいくつかの基本的な問題があったため、CentOS 6 で動作するようにソースから tensorflow pip パッケージを再構築する必要がありました。これに基づいて、私が書いたメモは次のとおりです。 (参考までに私は一ヶ月前にこれをしました)

  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. devtoolset-6の代わりにdevtoolset-2を有効にするには、~/.bashrcを修正してください。 Tensorflowは最新のgccで構築されておらず、最大gcc 4までしか構築されていません。

    ~/.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
    

関連情報