TensorFlowソースコンパイル-Ubuntuに基づいて15.04
3377 ワード
Ubuntu/Linux直接設置:
クローンTensorFlow倉庫
Linuxインストール
Bazelを取り付けます
まず教程に従ってBazelをインストールします。次の命令でBazelのソースコードをダウンロードしてコンパイルします。
実行経路
インストールの他の依存性
コンパイルしてGPUを利用できるTensorFlowを実行するためには、まずNVIDIAが提供するCuda Toolkit 7.0とCUDNN 6.5 V 2をインストールする必要があります。
TensorFlowのGPU特性はNVidia Compute Capability>=3.5のグラフィックカードしかサポートされていません。 NVidia Titan NVidia Titan X NVidia K 20 NVidia K 40 Cuda Toolkitをダウンロードしてインストールします。
ダウンロード
CUDNN Toolkit 6.5をダウンロードしてインストールします。
ダウンロード
CUDNNファイルを解凍してCda Toolkit 7.0にインストールする経路でコピーします。Cuda Toolkit 7.0を
ソースツリーのルートから実行:
ターゲットプログラムをコンパイルして、GPUサポートをオープンします。
ソースツリーのルートから実行:
既知の問題は同じソースツリーの下でCudaのサポートとCudaのサポートを無効にするバージョンをコンパイルすることができますが、私達はやはりこの2つの異なるコンパイル構成を切り替える時に、「bazel clean」を使って環境を整理することをお勧めします。 バーゼルコンパイルを実行する前にまずconfigurを実行しなければなりません。そうしないとコンパイルが失敗してエラーメッセージが表示されます。将来的には、configurステップをコンパイルプロセス全体に含めることで、前提はbazelが新しい特性サポートを提供することができます。
# CPU
$ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
# GPU ( CUDA sdk)
$ pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
ソースコンパイル:クローンTensorFlow倉庫
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
--recurse-submodules
パラメータは、TesorFlow依存のプロトbufライブラリを取得するために必要である。Linuxインストール
Bazelを取り付けます
まず教程に従ってBazelをインストールします。次の命令でBazelのソースコードをダウンロードしてコンパイルします。
$ git clone https://github.com/bazelbuild/bazel.git
$ cd bazel
$ git checkout tags/0.1.0$ ./compile.sh
上のコマンドで引き出したコードラベルは0.1.0
で、Tensorflowの現在のバージョンに対応しています。BazelのHEAD
バージョン(最新バージョン)はここでは不安定かもしれません。実行経路
output/bazel
を$PATH
環境変数に追加する。インストールの他の依存性
$ sudo apt-get install python-numpy swig python-dev
オプション:CUDAをインストールする(LinuxでGPUサポートをオープンする)コンパイルしてGPUを利用できるTensorFlowを実行するためには、まずNVIDIAが提供するCuda Toolkit 7.0とCUDNN 6.5 V 2をインストールする必要があります。
TensorFlowのGPU特性はNVidia Compute Capability>=3.5のグラフィックカードしかサポートされていません。
ダウンロード
/usr/local/cuda
のような経路にツールを取り付けます。CUDNN Toolkit 6.5をダウンロードしてインストールします。
ダウンロード
CUDNNファイルを解凍してCda Toolkit 7.0にインストールする経路でコピーします。Cuda Toolkit 7.0を
/usr/local/cuda
にインストールすると仮定して、以下のコマンドを実行します。tar xvzf cudnn-6.5-linux-x64-v2.tgz
sudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
sudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64
TensorFlowを配置するCubaオプションソースツリーのルートから実行:
$ ./configure
Do you wish to bulid TensorFlow with GPU support? [y/n] y
GPU support will be enabled for TensorFlow
Please specify the location where CUDA 7.0 toolkit is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
Please specify the location where CUDNN 6.5 V2 library is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Configuration finished
これらの構成はシステムCudaライブラリのシンボリックリンクに確立されます。Cudaライブラリのパスが変更されるたびに、上記のステップを再実行しなければならない。そうでなければ、Bazelコンパイルコマンドを呼び出すことができません。ターゲットプログラムをコンパイルして、GPUサポートをオープンします。
ソースツリーのルートから実行:
$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu# . GPU 2x2 (major eigenvalue).# .000009/000005 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000006/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000009/000009 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
なお、GPUサポートはコンパイルオプション「--config=cuda」で開く必要があります。既知の問題