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」からインストールできます。
# pip install pandas
# pip install sklearn
#参考サイト
NVIDIA Driverインストール
- http://www.muo.jp/2016/05/nvidia-docker-tensorflow.html?spref=fb
- http://tleyden.github.io/blog/2014/10/25/cuda-6-dot-5-on-aws-gpu-instance-running-ubuntu-14-dot-04/
Dockerのインストール