GCP の GPU インスタンスを使ってみよう[環境構築編]

あゆた機械学習担当の佐々木です。

前回の記事で GCP の GPU インスタンス作成までを行ったので、今回は Tensorflow のコードを動かすまでに必要な環境構築を行っていこうと思います。本記事では Ubuntu 16.04 LTS に Tensorflow 1.0.1 の GPU 版をインストールしていきます。


概要

まずは環境構築に必要な流れをざっくり俯瞰しておきましょう。必要な処理は以下になります。

  • cuDNN のインストール
  • Tensorflow のインストール

今回はインスタンス作成時のスタートアップスクリプトで CUDA と NVIDIA ドライバが入った状態になっているので、追加で入れる必要があるのは上記の2つだけです。


cuDNN のインストール

ファイルのダウンロード

cuDNN は CUDA を用いたニューラルネットワークの計算を最適化するライブラリです。

https://developer.nvidia.com/rdp/cudnn-download から cuDNN をダウンロードしてきます。CUDA 8.0 を使用している場合は、cuDNN 5.1 が必要です。ダウンロードするためには NVIDIA に会員登録する必要があります。

GCP のインスタンスに転送する

ダウンロードが完了したら、GCP インスタンスへ cuDNN のファイルを転送する必要があります。
ファイル転送の方法は多々あるのですが、SCP で送るとなぜか時間がかかるので(1時間くらい)、GCP Storage に置いてダウンロードしてくるのが速いです。

・GCP Storage にアップロードする
GCP Storage はコンソール左上にある3本線のアイコンを押すと表示されるメニューの中にあります。

Storage を選択すると Bucket の作成をアナウンスされるので、Create bucketをクリック!

適当に名前をつけて作成します。 Bucket を作成したら、上部にある UPLOAD FILESよりアップロードしたいファイルを選べば完了です。

・GCP ストレージからファイルをダウンロードする
ストレージからのダウンロードは gcloud コマンド一発なので簡単です。<bucket name> はファイルを置いた bucket の名前を入れます。

gsutil cp gs://<bucket name>/cudnn-8.0-linux-x64-v5.1.tar .  


cuDNN のインストール

cuDNN のファイルを展開し、CUDA のインストールしてあるディレクトリにコピーします。

tar xvf cudnn-8.0-linux-x64-v5.1.tar  
sudo cp -a cuda/lib64/* /usr/local/cuda-8.0/lib64/  
sudo cp -a cuda/include/* /usr/local/cuda-8.0/include/  
sudo ldconfig  

これで cuDNN のインストールは完了です。


Tensorflow のインストール

Tensorflow は 1.0 系から pip でインストール可能になったので、以前より導入がずっと楽になりました。ここで注意点として、1.0 系では AVX 等の CPU での演算を高速化する拡張命令がサポートされているのですが、pip からインストールするとこれらの拡張命令を使用しない汎用パッケージが入ります。今回は簡単に汎用パッケージをインストールしていきます。
※ 拡張命令が使用可能な Tensorflow 1.0.1 をインストールするには、自前でソースコードからビルドする必要があります。

$ sudo apt-get install python-pip python-dev python-virtualenv

まずは Virtualenv と pip をインストールします。

$ virtualenv --system-site-packages ~/tensorflow

virtualenv の環境を作成します。今回は ~/tensorflow というディレクトリに環境を作成します。

$ source ~/tensorflow/bin/activate # bash, sh, ksh, or zsh

作成した virtualenv の環境をアクティベートします。

 (tensorflow)$ pip  install --upgrade tensorflow     # for Python 2.7
 (tensorflow)$ pip3 install --upgrade tensorflow     # for Python 3.n
 (tensorflow)$ pip  install --upgrade tensorflow-gpu # for Python 2.7 and GPU
 (tensorflow)$ pip3 install --upgrade tensorflow-gpu # for Python 3.n and GPU

最後に、pip を使って Tensorflow をインストールします。上記のコマンドの中から、お求めの環境に合わせたもの叩けばおkです。
これで Tensorflow を動かすまでの環境作りは完了です。


参考文献

[1] http://qiita.com/JeJeNeNo/items/05e148a325192004e2cd
[2]https://www.tensorflow.org/install/