初心者必見 GPU環境構築〜UbuntuインストールからNvidia・Cuda・Cudnn・深層学習ライブラリインストールまで〜
mac から ubuntu 18.04の環境構築
デスクトップのGPUサーバーをGETしたのですが, 無知すぎて, ネットで検索しまくって数日かけてようやく環境構築が終了しました.とても苦労したので, 一連の流れをまとめました. ところどころ詳細については, 他の方がとても丁寧に解説しているのでそちらのサイトを紹介しています.
マシンスペック
僕のGPUサーバーのスペックです.GPU2枚(GeForce GTX 1080)・6コア12スレッド (Core i7-8700K)です.
GPUサーバーの組み立てについては, 割愛させて頂きます.
組み立て終えたところから, UBuntuのインストールから基本的な環境構築までのお話をします.
USBを使ってGPUサーバにUbuntuを入れる
ブートUSB作成
組み立てた直後は, OSが何も入っていないのでまずはOSをインストールします. そのために, まず, 別のPCからUSBにUbuntu OSの情報をダウンロードします (ブートUSB・ライブUSBと呼ぶ). その次に, ブートSBをサーバーに接続してUbuntuをインストールします. ブートUSBの作成は, 以下の手順を追えば, スムーズにできます.ブートUSBの作成 (for mac)
MacでUbuntu18.04LTSのブートUSBを作成する - Qiita
ブートUSBの作成 (for windows)
WindowsにUbuntuをインストールするのは気持ち良いゾイ!!~導入編~ - Qiita
UEFI BIOSの設定
ブートUSBの作成後は, サーバーにUSBを接続して起動させます. ただし, サーバーがUSBを読み込んでくれるように, UEFI BIOSで設定を行う必要があります. UEFI BIOSを起動させるためには, 電源起動後すぐにF2 or ESCを押し続れば画面が切り替わります (機種によって異なる可能性あり). 以下のようなカッコイイ画面になればUEFI BIOSが起動しています.次に, Advanced modeをクリックします.
そうしたら, Bootに移動し, Boot MenuからブートUSBを選択します.
最後に, Ezmodeで先ほどの画面に戻り, Save & Exitをクリックすれば, 再起動してUbuntuがインストールされます.
その後は, Ubuntu 18.04 LTSインストールガイド 3.3章から順に進めれば, 初期設定は完了です.
アプリケーションインストール
まず初めに必ず以下のアプリケーションでソフトウェアの更新を行いましょう!必要なアプリPICK UP!
機械学習系で使いそうなものを中心にPICK UPします.Google Chrome
Google Chrome ウェブブラウザEmacs
以下のコマンドでインストール可能sudo apt install emacs
Vscode
Download Visual Studio Code - Mac, Linux, WindowsPycharm
Download PyCharm: Python IDE for Professional Developers by JetBrainsインストールがやや面倒なので以下を参照
参照:UbuntuでPyCharmインストールからHello Worldまでやってみた - Qiita
※pycharmがアプリケーションに表示されていない場合
./pycharm.sh実行後ConfigureのCreate Desktop Entryで表示できるようになる.
Guake (ターミナル)
以下のコマンドでインストール可能sudo apt-get install guake
F12でターミナルを即座に表示・非表示できて非常に便利!もちろん設定で透過もできる!
Slack
ダウンロード | SlackLine
Linuxでは, アプリ版はないためGoogle Chromeの拡張機能をインストールします.「LINE」をLinuxで使う方法 | LFI
もっと色々設定したいという方は以下を参照してください.
参照:Ubuntu 18.04 LTSのインストール直後にやっておきたいことまとめ | LFI
GPUを使うために・・・
ここからが本題です. GPUを使用するためには, 主にNvidia driverとcudaをインストールする必要があります.Nvidia driverインストール
以下のコマンドを実行 (Ubuntu18.04でだいぶ簡単になった模様). nvidia-smiでNvidiaが正常にインストールされたか確認できます. また, GPU Nameで名前が確認でき, 枚数も把握できます (2枚の場合GPUの0と1が存在)sudo ubuntu-drivers autoinstall #再起動 sudo reboot #挙動確認・以下の図のように表示されれば問題ない nvidia-smi
Minicondaのインストール
Minicondaのインストールをします. Anaconda, MinicondaどちらでもOK. AnacondaやMinicondaが分からない・どちらが良いか迷っている方は以下を参照してください.参照:AnacondaとMinicondaの比較、どちらで環境構築するべきか | 生物・化学系でもIT()したい
Minicondaのインストールは以下のコマンドを実行
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh #インストールの最後に,pathを.bashrcに追加するか聞かれるのでYESとする bash Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc
仮想環境構築
condaで仮装環境を構築します. 仮装環境について分からない場合は以下を参照してください.参照:【初心者向け】Anacondaで仮想環境を作ってみる - Qiita
pythonのバージョンを指定して仮装環境py36を作成します (今回はpython 3.6を指定)
conda create -n py36 python=3.6
cudaインストール
以下を参考にさせて頂きました.参考:Tensorflow GPU Installation Made Easy: Use conda instead of pip
まずは, NVIDIA driverのversionを確認します.
#NVIDIA driverのversion確認 nvidia-smi
次に, cudaとNVIDIA driverの対応を確認します.
(NVIDIA driverとcudaのバージョンの相性が悪いと最悪フリーズして, OSインストールからやり直しになるので, 必ず対応を確認しましょう!)
参照:Release Notes :: CUDA Toolkit Documentation
cudaのインストール (対応するバージョンを指定)
#対応するバージョンを指定 conda install cudatoolkit==X.X
cudnnのインストール
cudaと対応するバージョンのcudnnがインストールされるはずです.conda install cudnn
深層学習ライブラリインストール
ライブラリをインストールします. 今回は, Tensorflow-gpuとKeras-gpuをインストールします. ただし, condaとpipをどちらかに統一しましょう.参考:condaとpip:混ぜるな危険 - onoz000’s blog
#tensorflow-gpu conda install tensorflow-gpu #keras-gpu conda install keras-gpu
最終確認
TensorflowでGPUを認識するか確認します. 下記のように表示されれば問題なく終了です!python >>>import tensorflow as tf >>> tf.test.gpu_device_name() ... ... ... ... ... ... ... ... ... '/device:GPU:0'
※CUDA driver version is insufficient for CUDA runtime version
と表示された場合は,CUDAのバージョンがNVIDIA driverのバージョンに対応していない可能性が高いです
conda仮装環境の使用
最後にcondaで作った仮装環境のよく使うコマンドを紹介します.環境の作成
conda create -n 環境名 python=x.x インストールするパッケージ名
環境の削除
conda remove -n 環境名 --all
作成した環境の一覧を見る
conda info -e
環境を切り替える
source activate 環境名
環境を出る
conda deactivate