p2インスタンス上にCUDA, cuDNNを用いたChainer環境を構築する

  • 0
    いいね
  • 0
    コメント

    やったこと

    AWSのp2.xlargeにCUDA, cuDNNを利用可能なChainer環境を作成してみました。

    前提

    以下のバージョンを利用しました。(実施時点のものです)

    version
    OS Ubuntu14.04
    pyenv 1.0.8
    Anaconda 4.3.0
    python 3.6.2
    CUDA 8.0
    cuDNN v5.1
    Chainer 1.2.21

    必要なライブラリのインストール

    sudo apt-get install -y git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
    

    pyenvのインストール

    pyenvのインストールは以下を参考にしました。
    http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c

    git clone https://github.com/yyuu/pyenv.git ~/.pyenv
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    source ~/.bashrc
    

    Anacondaのインストール

    Anacondaのインストールは以下を参考にしました。
    http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c

    pyenv install -l | grep anaconda
    pyenv install anaconda3-4.3.0
    pyenv rehash
    pyenv global anaconda3-4.3.0
    echo 'export PATH="$PYENV_ROOT/versions/anaconda3-4.3.0/bin/:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    conda update conda
    python --version
    

    CUDAのインストール

    wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64-deb
    sudo dpkg -i cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64-deb
    sudo apt-get update
    sudo apt-get install cuda -y
    echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CUDA_HOME}/lib64' >> ~/.bashrc
    echo 'export PATH=$PATH:${CUDA_HOME}/bin' >> ~/.bashrc
    

    cuDNNのインストール

    別途nvidiaのサイトから取得。

    mkdir .cudnn
    tar xvzf ./cudnn-8.0-linux-x64-v5.1.tgz
    mv ./cuda ./.cudnn
    mv ./.cudnn/cuda ./.cudnn/5.1
    sudo ln -s ~/.cudnn/5.1/include/cudnn.h /usr/local/cuda/include/cudnn.h
    sudo ln -s ~/.cudnn/5.1/lib64/libcudnn* /usr/local/cuda/lib64/
    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
    

    Chainerのインストール

    pip install chainer
    

    動作確認

    mkdir mnist
    wget https://raw.githubusercontent.com/pfnet/chainer/master/examples/mnist/train_mnist.py ./mnist
    # GPU使用
    time python ./mnist/train_mnist.py -g 0 -e 10
    # GPU不使用
    time python ./mnist/train_mnist.py -g -1 -e 10
    

    実行時間に差が出たら成功です。