前回は最低限 Ubuntu が起動するまでの設定だったので、これから GPU で TensorFlow を実行するまでの環境を作っていきます。 移植性の高い方法で構築したいので Docker を使います。

前提

  • GPU (今回は GEFORCE GTX 1080) を積んだマシンがある
  • Ubuntu 16.04 LTS がインストールされている
  • Docker がインストールされている

構築環境

  • CUDA — Nvidia が提供する GPU 向けの統合開発環境
  • cuDNN — Nvidia が作ったディープラーニング用のライブラリ (SDK) で GPU をフル活用できるようになっている
  • NVIDIA Docker — Nvidia が提供している、コンテナから GPU を操作できるようにするもの
  • TensorFlow — Google が開発したオープンソースの機械学習ライブラリ

構築手順

CUDA インストール

1
$ sudo apt-get install nvidia-cuda-toolkit

cuDNN インストール

https://developer.nvidia.com/cudnn からユーザー登録をしてライブラリをダウンロードする。

1
2
3
4
5
$ tar xfzv cudnn-8.0-linux-x64-v5.1.tgz
$ cd cuda
$ sudo cp lib64/* /usr/lib/x86_64-linux-gnu
$ sudo cp include/cudnn.h /usr/include
$ sudo chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*

NVIDIA Docker インストール

1
2
3
4
5
6
# Install nvidia-docker and nvidia-docker-plugin
$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc.3/nvidia-docker_1.0.0.rc.3-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb

# Test nvidia-smi
$ nvidia-docker run --rm nvidia/cuda nvidia-smi

認識できているようだ。

nvidia-docker

Tensorflow インストール

Google 公式の Tensorflow に Docker イメージと実行方法が書いてある。イメージはもちろん GPU バージョンのものを使う。

1
$ nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu

Jupyter Notebook が起動するので http://ホストIPアドレス:8888/ にアクセスしてみる。

jupyter_tensorflow

MNIST サンプルコードを動かしてみる

MNIST サンプルコードを動かして計算させてみる。コードはこちらを利用させてもらった。

まず Jupyter Notebook を起動後、ターミナルを開いて $ pip install keras と打つ。

上記サンプルコードを Notebook で実行。

mnist_cnn

めっちゃ速い。

Docker 再起動で keras とか書いたコードとか消えちゃうので、イメージ作成とボリュームセットの構築が必要かな。 今回は提供されている Docker を利用しただけなので、次回は自前で Dockerfile 作成とイメージ作成をやっていきたいと思います。

次回は『Docker コンテナに Anaconda 環境を構築』します。