ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

【自分用メモ】AWSのp2インスタンスにdockerを使ったディープラーニングの環境を作る手順

スポンサードリンク

タイトル長い

自分用メモです。参考にはいいと思いますが、この手順でやらないでください。

というのも、dockerのコンテナ上ではGPUを認識してくれますが、何故かTensorflowがhostでGPUを認識してくれないのです。。。正確にはシンボリックエラーが発生しているっぽい。

今調べているけど、それまでは自分用ってことで。メモ。

GPU install 手順

環境

awsのp2インスタンスを立ち上げている(高い...) んで、ubuntuを選択しました。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

作業用ディレクトリ作成

$ mkdir work
$ cd work/

anaconda install

Downloads | Anaconda

↑からダウンロードリンクを取得してダウンロードします。

$ wget ${ANACONDA_URL}
$ bash Anaconda3-5.0.1-Linux-x86_64.sh
$ source ~/.bashrc

docker install

手順はこちらから

docs.docker.com

$ sudo usermod -aG docker $USER

cudaのインストール

なんでcudaが必要なのかわからないけど、とりあえずinstall.

$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
$ cat 7fa2af80.pub | sudo apt-key add -

$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
$ sudo apt update

$ sudo apt install linux-generic
$ sudo apt install cuda cuda-drivers

# 再起動が必要なので注意(利用するときは'#'を外してね)
$ # sudo reboot

$ sudo apt remove linux-virtual
$ sudo apt autoremove

$ rm 7fa2af80.pub cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
$ vim ~/.bashrc

vimを使って↓の内容を書き込み

export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
$ source ~/.bashrc

# installの確認
$ nvidia-smi

nvidia-dockerのインストール

$ sudo apt install nvidia-modprobe
$ wget https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
$ sudo dpkg -i nvidia-docker_1.0.1-1_amd64.deb

# docker上でGPUが認識しているか確認
$ nvidia-docker run --rm nvidia/cuda nvidia-smi

その他

$ pip install nvidia-docker-compose
$ pip install tensorflow  # 何故かhost側のgpuを認識しないため、cpu版?をinstall

参考にした記事

qiita.com qiita.com