まんぼう日記

takataka's diary

GPGPUマシンの更新(1) 〜 Ubuntu 16.04 をインストールして NVIDIA ドライバを入れる 〜

GPGPU用のマシンを手に入れました - まんぼう日記 のマシンのOSを入れかえて,CUDA等も更新しました.その結果,こういう環境になりました.

  • OS: Ubuntu 16.04 LTS
  • CUDA 7.5 & cuDNN 5.0RC
  • Theano 0.8.2

というわけで,作業メモ.

この(1)は,OSのインストールの話.それから,デフォルトのグラフィクスドライバではとんでもない状況になったので,NVIDIAのドライバをインストールする話も.

 

ちなみに,以前このマシンに Ubuntu 14.04 LTS を入れた時のメモが GPGPU用マシンに Ubuntu をインストールして Theano を使えるようにする - まんぼう日記 にあります.

 

目次

 

Ubuntu 16.04 LTS のインストールと設定

Homepage | Ubuntu Japanese Team から Ubuntu 16.04 LTS 日本語 Remix のISOイメージをダウンロードして DVD-R に焼きます.いまどき DVD-R かよってとこですが,こういう時に使わへんといっこうにストック減らへんからね.

 

で,ブート.その際,GRUB の画面で「↓」キーを押してほげほげ(具体的な手順をメモり忘れました…),nomodetest を有効にしてからインストールを開始します.対象マシンが NVIDIA のグラフィックスカードを使ってるためか,こうしないとうまく起動しません.ちなみに,後で /etc/default/grub を確認したら次のようになってました.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="nomodeset"

 

インストールが完了し無事ディスクから起動したのでログインしてみたら,画面の描画がものすごく遅くて(端末内の文字さえも)なんじゃこりゃ状態.使いものになりません.たぶんグラフィックスドライバの問題やろなあとは思うものの,この状態のままドライバのインストール作業なんかやってられへんので,

$ sudo apt install openssh-server

して,あとは ssh 経由で.とりあえず

$ sudo apt update
$ apt list --upgradable
$ sudo apt upgrade

しときました.

 

NVIDIA のドライバのインストール

というわけで,NVIDIA のドライバを入れましょう.UbuntuにCUDAを入れようとしたらハマった - Qiita という記事によると,まずは nouveau ドライバを無効化すべし,ということのようです./etc/modprobe.d/blacklist-nouveau.confというファイルを作って以下の内容とします.

blacklist nouveau
options nouveau modeset=0

この状態で再起動してみると,ウィンドウ移動時等のグラフィカルな効果がなくなってしょぼい感じになりましたが,描画が遅いのはそのまま.

 

さて,NVIDIA のドライバのインストールです. NVIDIAドライバダウンロード にお伺いをたててみると,対応してる最新バージョンは,Tesla K20 が 352.99, Quadro K620 が 367.35 やそうで….がんばって自分で 367.35 入れたらええんでしょうが,ここはひよって

$ apt search nvidia

して出てきた nvidia-XYZ って候補の中で一番近そうなんを選択.

$ sudo apt install nvidia-361

で,再起動したら,描画もまともになりました.

 

nvidia-smi コマンドの出力も,とりあえず問題なさそうです.

$ nvidia-smi
Mon Aug  8 16:10:36 2016
+------------------------------------------------------+
| NVIDIA-SMI 361.42     Driver Version: 361.42         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K620         Off  | 0000:05:00.0      On |                  N/A |
| 34%   42C    P8     1W /  30W |    227MiB /  2047MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla K20c          Off  | 0000:09:00.0     Off |                    0 |
| 30%   38C    P8    17W / 225W |     13MiB /  4799MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

 

やれやれ.

 

おまけ

CTRLとCaps Lockの入れかえ

UbuntuTips/Desktop/HowToSetCapsLockAsCtrl - Ubuntu Japanese Wiki は 

対象とするUbuntuのバージョンが 14.04 LTS となってますが,16.04 LTS でもこれでよいみたいです.問題なく入れかえできました.

 

「デスクトップ」等のディレクトリ名を英字に

デフォルトでは,ホームディレクトリに「デスクトップ」とか「ダウンロード」とかそういう日本語名のディレクトリが作られてとってもいやんな感じです.Ubuntuでホームディレクトリの中身を英語にする - Qiita の記事の通りに

$ LANG=C xdg-user-dirs-gtk-update

とやったら "Desktop" とか "Downloads" とかに変更することができました.ただし,再度ログインするとカレントのロケールで上記コマンドが再度実行されちゃうみたいで,日本語にするか尋ねるダイアログが出てきます.そこで「もう尋ねるな」と言ってやる必要があります.

 

Dropboxを使う

真面目に実験したりするんやから何かちゃんとしたファイル共有の仕組みを用意した方がええとは思いつつ,Dropbox で済ませることにします.Dropbox を Linux (CUI環境)で利用する [Tipsというかメモ] という記事を参考にしました.以下,Dropbox のアカウントは既に持ってると仮定してます.

 

まずは,https://www.dropbox.com/install?os=lnx から Ubuntu (.deb) 64-bit のパッケージをダウンロードしてインストールします(ファイルブラウザでダブルクリックでもok).

$ dpkg  -i  dropbox_2015.10.28_amd64.deb

これで,/usr/bin/dropbox というコマンドが使えるようになります(実体は上記リンク先にある dropbox.py と同じみたい).

$ dropbox
Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

 status       get current status of the dropboxd
 throttle     set bandwidth limits for Dropbox
 help         provide help
 puburl       get public url of a file in your dropbox's public folder
 stop         stop dropboxd
 running      return whether dropbox is running
 start        start dropboxd
 filestatus   get current sync status of one or more files
 ls           list directory contents with current sync status
 autostart    automatically start dropbox at login
 exclude      ignores/excludes a directory from syncing
 lansync      enables or disables LAN sync
 sharelink    get a shared link for a file in your dropbox
 proxy        set proxy settings for Dropbox

で,

$ dropbox start -i

とすると,~/.dropbox-dist を作って Dropbox のデーモン dropboxd をダウンロード&インストールしてくれます.その後,Dropbox の青いウィンドウが出てきて,サインインを促されます(もう一度 dropbox start 実行した時やったかも).その後は,勝手に ~/Dropbox 作って同期しはじめます.