AWSのGPUインスタンスにTensorFlowとJupyterを入れる

  • 24
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

AWSのEC2のGPUインスタンスにTensorFlowを構築して、ついでにJupyterも使えるようにするまでの手順。
ローカルでJupyter触りながらGPUが使えるとすごく便利です。

環境

  • インスタンス: g2.2xlarge
  • OS: Ubuntu Server 14.04 LTS

手順

NVIDIA Driver のインストール

GPUインスタンスにssh接続する。

apt-getのアップデートとアップグレード
(重要。この手順飛ばして、ハマりました)

$ sudo apt-get update
$ sudo apt-get -y upgrade

gcc等のパッケージを入れる

$ sudo apt-get -y install build-essential linux-image-extra-virtual linux-headers-generic linux-source
$ sudo update-initramfs -u

ドライバの競合を避けるためにNouveauをブラックリストに追加

$ cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off alias lbm-nouveau off
EOF
$ echo options nouveau modeset=0 | sudo tee -a

一旦、再起動

$ sudo reboot

再起動すると、ssh接続が切れるので、もう一度ssh接続する。

その後、NVIDIA Driverをダウンロード

$ wget http://us.download.nvidia.com/XFree86/Linux-x86_64/361.42/NVIDIA-Linux-x86_64-361.42.run

権限付与

$ chmod +x NVIDIA-Linux-x86_64-361.42.run

NVIDIA Driverのインストール実行

$ sudo ./NVIDIA-Linux-x86_64-361.42.run

Dockerのインストール

$ curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import

$ sudo apt-get update && sudo apt-get install apt-transport-https

$ sudo apt-get install -y linux-image-extra-virtual

$ echo "deb https://packages.docker.com/1.10/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list

$ sudo apt-get update && sudo apt-get install docker-engine

Dockerをインストールできたか確認

$ sudo docker info

NVIDIA Dockerをインストール

$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc/nvidia-docker_1.0.0.rc-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker_1.0.0.rc-1_amd64.deb && rm /tmp/nvidia-docker*.deb

NVIDIA Dockerの簡単な動作確認をおこなう

$ sudo nvidia-docker run --rm nvidia/cuda nvidia-smi

TensorFlow用のDockerインスタンスを立てる

$ sudo nvidia-docker run -it -p 8888:8888 -p 6006:6006 tensorflow/tensorflow:latest-gpu /bin/bash
  • Port 8888:Jupyter notebook用
  • Port 6006:Tensor board用

ここからはDocker内

# export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
# pushd /usr/lib/x86_64-linux-gnu
# ln -s libcudnn.so.4 libcudnn.so
# popd
# /run_jupyter.sh

/run_jupyter.sh実行した後に、ip:8888にブラウザから接続してJupyterの画面が表示されれば成功!

Docker内で各種pythonライブラリなどを簡単にインストールするには

Jupyter上の「New▼」→「Terminal」からインストールできます。
スクリーンショット 2016-06-13 23.13.59.png

ここでpandasやsklearnのインストール
スクリーンショット 2016-06-13 23.14.18.png

# pip install pandas
# pip install sklearn

参考サイト

NVIDIA Driverインストール

Dockerのインストール