使用したグラボはGTX 1080 Ti、CUDAのバージョンは9.1です。
Ubuntuのログインループの原因はいろいろあるらしいですが、私の環境ではOpenGLを入れるとログインループする模様。なのでOpenGLを入れずにインストールしました。
Nouveauドライバの無効化
まず、nouveauが動いているかどうか確認を行います。
$ lsmod | grep -i nouveau
Nouveauが動いているとNVIDIAドライバと競合するので、あらかじめ無効化しておく必要があります。blacklist-nouveau.confを作成し、無効化します。
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
※blacklist-nouveau.confの中身
blacklist nouveau
options nouveau modeset=0
blacklist-nouveau.confを作成したらinitramfsを更新します。
$ sudo update-initramfs -u
これで、もう一度lsmodしてもnouveauは出てこなくなるはずです。
たぶん。
NvidiaドライバとCUDA Toolkitのインストール
今回は.runを使います。
まず、NVIDIAドライバとCUDA toolkitをダウンロードします。
次に、ダウンロードした.runの権限を変更しておきます、念のため。
$ chmod 755 NVIDIA-Linux-x86_64-390.42.run
$ chmod 755 cuda_9.1.85_387.26_linux.run
Xが起動しているとrun実行時エラーが出てくるので、GUIを止めておきます。
$ sudo service lightdm stop
以降はCUI(Ctrl + Alt + F1)で操作します。
Nvidiaドライバのインストール。OpenGLを入れないようにしておきます。
$ sudo ./NVIDIA-Linux-x86_64-390.42.run --no-opengl-files
いろいろ選択肢が出ますが、とりあえず全部OK的な選択で問題無しな模様。
※よくわかりませんでした(´・ω・`)
CUDA Toolkitのインストール。おなじくOpenGLは入れず、NVIDIAドライバ387.26もいらないのでCUDA toolkitのみインストール。
$ sudo ./cuda_9.1.85_387.26_linux.run --silent --no-opengl-libs --toolkit
インストールが終わったら.bashrcにCUDAのパスを追記します。
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_PATH=/usr/local/cuda
再起動してとりあえずインストールは終了です。
確認
とりあえずちゃんと入ったか確認しておきます。
Nvidiaドライバは
$ nvidia-smi
CUDA toolkitは
$ nvcc -V
で確認できます。
バージョンやらなんやら出てきたら成功です。
OpenGLを入れなかったせいか、ドライバ入れたにも関わらず画面解像度低いままです。
とりあえずCUDAは使えました。
以上。