はじめに
本格的にDeep Learningを学んでみようということで、自宅ワークマシンとして Ubuntu+GPU環境を構築してみた。ロボットの認識や行動計画に応用できればよいなぁ〜
(息子のリハビリ計画や行動把握に応用できれば尚良しだが、そこは使い方をしっかり考えないと…)
[環境]
・CPU : Intel Core i7-7700
・メモリ : 16GB
・GPU : GTX1080
・OS : Ubuntu16.04 LTS
以下は導入手順を、備忘録も兼ねて記載していく
Ubuntu16.04導入
ここの手順は省略。
・ USBメモリにBootファイルを書き込む
・ USBメモリを挿入してUbuntu起動。画面手順にしたがってUbuntu
(日本語版を選択)
・apt-get update → apt-get upgrade で最新に更新
あとは、日本語版Ubuntuはディレクトリ名が初期状態では日本語になっているのが個人的には気持ち悪いので、これを英語に変更しておく
$ LANG=C xdg-user-dirs-gtk-update $ LANG=ja_jp.UTF8
ROS kineticのインストール
ROS Wiki
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
にしたがってインストール
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install ros-kinetic-desktop-full $ sudo rosdep init $ rosdep update $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
完了したらroscoreを起動する事を確認できればOK!
GTX1080ドライバのインストール
リポジトリを登録してドライバをインストールします。GTX1080に限らず NVidia GPUは共通ドライバになっている様だ。現状の最新は 396 (2018-6-4)のため、これをインストールする。
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-396 sudo apt-get install mesa-common-dev sudo apt-get install freeglut3-dev
ここで 再起動した後、nvidia-smiコマンドを叩いて、GPU情報が表示されればOK
$ nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 396.26 Driver Version: 396.26 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1080 Off | 00000000:01:00.0 On | N/A | | N/A 40C P8 11W / N/A | 261MiB / 8111MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1295 G /usr/lib/xorg/Xorg 181MiB | | 0 1874 G compiz 77MiB | +-----------------------------------------------------------------------------+
Cuda9.2のインストール
現在の最新版は Cuda9.2なので、これを入れてみる
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list sudo apt-get update sudo apt-get -o Dpkg::Options::="--force-overwrite" install cuda-9-2 cuda-drivers echo 'export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc
cudnn7.1のインストール
現在の最新版はcudnn7.1なので、これを入れてみる。
https://developer.nvidia.com/rdp/cudnn-download からcuDNN 7.1 for CUDA 9.2のdebパッケージをダウンロードする。
以下の3つを使用する
・cuDNN v7.1.* Runtime Library for Ubuntu16.04 (Deb)
・cuDNN v7.1.* Developer Library for Ubuntu16.04 (Deb)
・cuDNN v7.1.* Code Samples and User Guide for Ubuntu16.04 (Deb)
ダウンロードしたフォルダで以下のコマンドを実行して、cuDNNをインストールする
sudo dpkg -i libcudnn7_7.1*+cuda9.2_amd64.deb sudo dpkg -i libcudnn7-dev_7.1*+cuda9.2_amd64.deb sudo dpkg -i libcudnn7-doc_7.1*+cuda9.2_amd64.deb
GPU動作確認
ここらで一度動作確認してみたいと思う。
/usr/local/cuda/samples/
に移動すると、Cuda動作確認のためのサンプルコードがあるので、これを動かしてみる。
良く見かけるケムリのシミュレーション表示をさせるコードを動かしてみる
cd 5_Simulations/smokeParticles make ./smokeParticles
この様にケムリがフワフワ動く動画が確認できる
ここで先ほどの nvidia-smi コマンドを動かしてGPU使用率が動いていることを確認する
nvidia-smi -l 1 (1秒ごとに表示) | 0 GeForce GTX 1080 Off | 00000000:01:00.0 On | N/A | | N/A 49C P2 44W / N/A | 440MiB / 8111MiB | 23% Default |
ちなみに、ノートPC(GEFORCE MX150搭載)にも同様の環境を構築して、ケムリシミュレーション時のGPU負荷を見たところ、常に100%状態だった。如何に GTX1080の処理性能が高いかを実感した。(まだまだ序の口だとは思いますが)
CPU/GPUの負荷&温度確認
これから先の検討の中で、どの程度の負荷状態かを把握しておきたいと思ったところ、簡易なGUI表示ツールである psensor を見つけた。
sudo apt-get install psensor
でインストールして、psensorで起動。
CPU/GPUの負荷%や温度がグラフ化されるので便利!
まとめ
とりあえず、ワークマシンにUbuntu16.04+GTX1080+Cuda9.2+cudnn7.1+ROS Kineticを構築した。OSインストールの機会はまたありそうなので、その時への備忘録として残しておく。
次はワークマシンに対して、DeepLearning環境を構築していきたいと思う。