タイトル長い
自分用メモです。参考にはいいと思いますが、この手順でやらないでください。
というのも、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
↑からダウンロードリンクを取得してダウンロードします。
$ wget ${ANACONDA_URL} $ bash Anaconda3-5.0.1-Linux-x86_64.sh $ source ~/.bashrc
docker install
手順はこちらから
$ 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