アップグレードしたらnvidia-smi出来なくなった話
経緯
別件で環境構築している時にupgradeやらdist-upgradeしたらカーネルが新しくなってnvidia-smiが実行できなくなりました
解決に1日掛かったので一応メモ
こんな感じ
1$ nvidia-smi
2NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
3もしくは
4modprobe: ERROR: could not insert 'nvidia_367'
5...
6
7$ nvcc -V
8nvcc: NVIDIA (R) Cuda compiler driver
9Copyright (c) 2005-2015 NVIDIA Corporation
10Built on Tue_Aug_11_14:27:32_CDT_2015
11Cuda compilation tools, release 7.5, V7.5.17
アップデート前環境
当初以下の環境を組んでいました
- Ubuntu14.04 LTS(64bit)
- GTX980 Ti
- nvidia-361(361.42)
- CUDA (7.5)
ドライバ CUDA 共にnvidia公式からダウンロードしたものを使用して構築しました.
解決策
※多分ドライバ入れ直すだけで良い
アンインストール
一度関連するものを削除
1$ sudo apt-get remove nvidia-*
2$ sudo apt-get remove cuda-*
ドライバのダウンロード・インストール
最新のドライバを落としてくる
http://www.nvidia.com/Download/index.aspx
ここから環境に合わせて選ぶ
1$ wget http://jp.download.nvidia.com/XFree86/Linux-x86_64/375.20/NVIDIA-Linux-x86_64-375.20.run
2$ chmod +x NVIDIA-Linux-x86_64-375.20.run
3$ sudo ./NVIDIA-Linux-x86_64-375.20.run
CUDAのインストール
CUDAはレポジトリから7.5が取れるようになってるのでそちらを利用する
1$ sudo apt-get install nvidia-cuda-toolkit
エラー解決
以下メモ
You appear to be running an X server
XWindowが立ち上がってると怒られます
そういえばこのマシンは最初デスクトップ版をインストールしたので
1$ sudo service lightdm stop
して停止した上で再度実行します
Kernel preparation unnecessary for this kernel. Skipping...
全文は
1ERROR: Failed to run `/sbin/dkms build -m nvidia -v 4.4.0-53-generic`:
2Kernel preparation unnecessary for this kernel. Skipping...
エラーログが/var/log/nvidia-installer.log
にあるので確認すると以下のエラーログがある
unrecognized command line option ‘-fstack-protector-strong’
今回ハマってたのはここだった
gccのバージョンが古い(4.8以前)だとこのエラーが出るようです.
1$ gcc --version
2gcc (Ubuntu 4.8.x-2ubuntu1~16.04) 4.8.x
3$ sudo apt-get install gcc-4.9
4$ sudo update-alternatives --config gcc
5$ gcc --version
6gcc (Ubuntu 4.9.4-2ubuntu1~16.04) 4.9.4
7$ sudo ./NVIDIA-Linux-x86_64-375.20.run
4.9を選択した上で再度実行すると成功する