Introduction
1年以上前、ディープラーニング Caffe その1 環境構築という記事でにて、14.04でCPUを使ったCaffe環境を構築しました。
最近、会社でUbuntu 14.04にGeForce GTX 1080 Tiを2枚差すという、金に物を言わせたマシンが届き、そのテストをしています。
が、これが動かない。
具体的には、ドライバを入れるとGPUは認識し、Caffe、GPUのテストなどはクリアするが、ログイン画面が真っ黒になってしまう、という現象に陥る。
恐らく、オンボードのグラフィックボードを無効化したのが原因だと思われる。オンボードのグラッフィクドライバはnouveauを使っている? ネットのBlogだと、オングラフィックのIntelのグラフィックボードを無効にしろ、みたいなこと書いてあります。
でも、会社のマシンだと、1080 Tiには、出力端子がなかったんだよね… だから、画面を表示するには、オンボードのグラフィックを有効にしておかないといけない気がするんだけど、仕事のときは気づかなかった。
で、とりあえず、自宅の環境で、GeForece GTX 750 Tiを有効化した状態で、各所で発生する問題が起きるかを検証し、手順をメモします。
目標は
- ドライバのインストール
- Caffeのテストを全部Pass
- Nvidiaのデバイステストをパス
を達成することです。
検証環境は
- Dell Vostro 3800
- Ubuntu 14.04 LTSを新規インストールした直後
- Intel Core i3-4130 3.40Ghz
- メモリ16GB
- GeForece GTX 750 Ti
になります。
なお、モニタは、グラフィックボードのHDMI端子に接続しています。
また、記事中のコマンドでは、sudoは省略するために、sudo -s でrootになっています。
ソフトウェアの更新
OSインストール直後だと、ソフトウェアの更新通知が来ますので全て更新します。来ていないなら、「ソフトウェアの更新」を明示的に実行します。
ただし、Ubuntuそのものは最新版に更新しないでください。
なお、グラフィックドライバを導入していない状態で、ボードの端子で出力していると、画面の表示文字列が一部だけ欠如していたり、突然ロック画面に戻ったりと不安定になっています。
SSHサーバー導入
マシンの前にいるのはつらいので。
1 | apt-get install openssh-server |
下記のように更新
1 | + #PermitRootLogin without-password |
nouveau無効化
ひょっとすると、オンボードしかない場合は、ここをオフにすると、何も表示されない可能性があるので、このセクションは無視しても可
1 | vi /etc/modprobe.d/blacklist-nouveau.conf |
下記のように更新
1 | + blacklist nouveau |
1 | vi /etc/modprobe.d/nouveau-kms.conf |
下記のように更新
1 | + options nouveau modeset=0 |
更新後、設定を反映し、再起動。
1 | update-initramfs -u |
接続しているボードの確認
1 | 1080Ti等は、内部のデータベースに存在しないので、まずは更新 |
ドライバのインストール
1 | apt-add-repository ppa:xorg-edgers/ppa |
再起動後、ログインループなら、Ctrl+Alt+F1でCUIでログインし、下記のコマンドを実行。
1 | ユーザフォルダに存在する以下を削除することで、ループを回避できる可能性がある |
ドライバのバージョン確認
1 | cat /proc/driver/nvidia/version |
CUDA Toolkitのインストール
1 | Ubuntu 14.04 x86_64 network debを入手 |
検証
Caffeの検証
Caffeのソースをダウンロードしてきて、ビルド及びtestを実行します。
1 | wget https://github.com/BVLC/caffe/archive/1.0.zip |
GPUの検証1
1 | cd /usr/local/cuda-8.0/samples |
GPUの検証2
1 | nvidia-smi |
NVIDIA Cuda compiler
1 | /usr/local/cuda-8.0/bin/nvcc -V |
無事に動きました。