ubuntu+CUDA8.0で機械学習する際の設定メモ。anaconda(numpy/matplotlib), scikit-learn, chainerを入れます。
PC仕様
- PC: GTune NEXTGEAR i650PA7-SP3
- MB: Z170-S01 MSI
- CPU: Intel Core i7-6700K CPU 4.0GHz x 8
- GPU: Geforce GTX1080
- Memory: 32GB
- SSD: 256GB
- HDD: 2TB
- OS: Ubuntu 16.04 64bit + Windows 10 Home 64bit
ubuntuインストール手順
- ubuntu16.04 LTSをDLしてisoファイルを作成
- UEFI (BIOS)に入る
- UEFI menuでsecure bootをことごとく無効化する
- DVDからubuntuインストール
- ブート選択画面でinstall ubuntuのラインで「e」を押して以下を変更、その後F10で起動
- 変更前: quiet splash
- 変更後:nomodeset
- install
- boot: 128 MB(少ないかも), ext4
- swap: メモリ量の1〜2倍(e.g. 64000 MB), swap
- /: 残り全て, ext4
- ブートローダーをインストールするHDD: bootを入れたdev/sdc
ubuntu基本セットアップ
- 環境を最新にする
terminal
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt-get install git
sudo apt-get install python-pip
- ディレクトリを英語表記にする
terminal
LANG=C xdg-user-dirs-gtk-update
- vimで矢印キーを押すとABDなどが出る問題を解消
terminal
touch ~/.vimrc
vi ~/.vimrc
set nocompatible #vimrcに追記
- 内蔵HDDを自動マウント
terminal
sudo fdisk -l # /dev/sda2が当該HDD
sudo blkid /dev/sda2 # UUID確認
# fstabにUUIDを追記
sudo vi /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/USER/HDD2TB ext4 defaults 0 0 #fstab
-
USB Wifiドライバをインストール(自分が使っているのはWI-U3-866D)
-
macからSSH接続したいので、ubuntuにopensshを入れる。
terminal
sudo apt-get install openssh-server
OSX_terminal
rm ~/.ssh/known_hosts # Host key verification failed.エラーの回避
ssh IP_ADDRESS # これでつながるはず
- dropboxインストール。ここからubuntuのdebファイルをDLしてインストール。なおSSDの容量が足りなかったので別の内蔵HDDに同期するようにした。
terminal
sudo dpkg -i dropbox_2015.10.28_amd64.deb
dropbox start -i
CUDAインストール
- 最初にやること
terminal
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
- CUDA 8.0 をDL(deb)し、インストール
terminal
sudo dpkg -i ダウンロードしたファイル名.deb
sudo apt-get update
sudo apt-get install cuda
- cuDNN 5.1 をDLしてインストール。DLする前に登録が必要。
terminal
tar -zxf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
- .bashrcにてCUDAとcuDNNへのパスを通す
.bashrc
# CUDA Toolkit
export CUDA_ROOT=/usr/local/cuda
export PATH=/usr/local/cuda/bin:${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CPATH=/usr/local/cuda/include:$CPATH
# cuDNN
export LIBRARY_PATH=/usr/local/cuda/lib64:$LIBRARY_PATH
- bashrc反映
terminal
source .bashrc
- GPUの動作確認。ちゃんとSamplesのmakeが通ることを確認すること。makeの際にcuda_runtime.hがないとか言われたら sudo -E でmakeするとうまくいくかもしれない。
terminal
nvidia-smi # GTX-1080と表示されるはず
nvcc -V # エラーなしを確認
./NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery/deviceQuery # Result=PASSとなることを確認
cd NVIDIA_CUDA-8.0_Samples/5_Simulations/nbody
make
./nbody -benchmark -numbodies=256000 -device=0
その他開発環境
- pyenvインストール
terminal
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インストール
terminal
pyenv install -l | grep ana # 最新版を確認。anaconda2-4.1.1
pyenv install anaconda2-4.1.1
pyenv rehash
pyenv global anaconda2-4.1.1
echo 'export PATH="$PYENV_ROOT/versions/anaconda2-4.1.1bin/:$PATH"' >> ~/.bashrc
source ~/.bashrc
- scikit-learnインストール
terminal
sudo apt-get install python-sklearn
- ffmpegインストール
terminal
sudo add-apt-repository ppa:jonathonf/ffmpeg-3
sudo apt update && sudo apt install ffmpeg libav-tools x264 x265
ffmpeg -version # ffmpeg 3.1.4.1
- chainerインストール
terminal
pip install chainer
# MNISTで動作確認
wget https://github.com/pfnet/chainer/archive/v1.16.0.tar.gz
tar xzf v1.16.0.tar.gz
python chainer-1.16.0/examples/mnist/train_mnist.py #CPUモードOK
python chainer-1.16.0/examples/mnist/train_mnist.py -g=0 #GPUモードOK
後日やること
- Caffe+OpenCVインストール