失敗したNvidiaドライバのロードを修復する方法は?

失敗したNvidiaドライバのロードを修復する方法は?

独自のNvidiaドライバがインストールされているサーバー(Debian 9 Stretchを実行)があります。科学コンピューティングには頭がありません。

したがって、CUDAを使用するためにNvidiaドライバをインストールします(Nvidiaホームページからダウンロードしたパッケージファイルを使用してCUDAをインストールしていますcuda_10.0.130_410.48_linux.run)。以前はうまくいきました。

2日前に、ハイパースレッディングを無効にするためにシステムをBIOSに再起動しました。再起動後、Nvidiaドライバはロードされません。システムを何度も再起動しても同じ問題が発生します。

どのように再インポートできますか?

以下は参考にできるいくつかの情報です。

# lspci -v|grep VGA
05:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6G
B] (rev a1) (prog-if 00 [VGA controller])

# nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Ma
ke sure that the latest NVIDIA driver is installed and running.

# modprobe nvidia
modprobe: FATAL: Module nvidia not found in directory /lib/modules/4.9.0-9-amd64

# nvidia-settings

ERROR: libgtk-3.so.0: cannot open shared object file: No such file or directory
       libnvidia-gtk3.so: cannot open shared object file: No such file or
       directory
       libgtk-x11-2.0.so.0: cannot open shared object file: No such file or
       directory
       libnvidia-gtk2.so: cannot open shared object file: No such file or
       directory


ERROR: A problem occured when loading the GUI library. Please check your
       installation and library path. You may need to specify this library when
       calling nvidia-settings. Please run `nvidia-settings --help` for usage
       information.

答え1

この場合、Nvidia Webサイトで提供されているスクリプトからNvidia独自のドライバをインストールしないでください。あなたはフランケンデビアンあなたはそれを壊した。

Debianに必要なパッケージをインストールし、GPUのCUDA機能を使用する最も簡単で安全な方法は、リポジトリの公式の排他的なドライバとNvidiaツールキットをcontrib使用することです。non-free

最新バージョンが入手できないので、これは大きな欠点のようです。 (しかし、以下を使用して取得できます。)backportsリポジトリ)、しかしCUDAの場合、特にヘッドレスサーバーでは意味があります。

したがって、サーバーをバックアップして実行するには(より安定したことは言うまでもありません)、Nvidia Webサイトから以前にインストールしたドライバをアンインストールし、NvidiaドライバとCUDAツールキットをパッケージ化したDebianコミュニティパッケージをインストールすることをお勧めします。

1) 以前のドライバ、CUDA、その他のリンクされたNvidiaパッケージを削除します。

# apt purge nvidia-*

2) Debian リポジトリをシステムに追加しますcontrib(まだ実行していない場合)。次のようにする必要があります。non-free/etc/apt/sources.list

deb http://deb.debian.org/debian stretch main contrib non-free deb-src 
http://deb.debian.org/debian stretch main contrib non-free

deb http://deb.debian.org/debian-security/ stretch/updates main contrib non-free  
deb-src http://deb.debian.org/debian-security/ strech/updates main contrib non-free

deb http://deb.debian.org/debian stretch-updates main contrib non-free 
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free

リポジトリが必要な場合backportsは、残りの後ろに次を追加してください。

deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free

3)aptキャッシュ更新:

# apt update

4)Nvidia独自のドライバ(およびカーネルヘッダファイル)をインストールします。

# apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//') nvidia-driver

最新バージョンが必要で、backportsリポジトリのバージョン(現在のバージョンはそれぞれ375.66と390.48)を使用する場合は、前のコマンドの代わりにこのコマンドを使用してください。:

# apt-get install -t stretch-backports nvidia-driver

5)CUDAツールキットをインストールします。

# apt-get install nvidia-cuda-dev nvidia-cuda-toolkit

これはCUDA 8でのみサポートされており、gcc 5.3.1コンパイルするにはコマンドラインにstretch追加する必要があります。-ccbin clang-3.8nvcc

CUDA 9を使用するには、backportsインストール前に行ったようにリポジトリのバージョンを使用できますnvidia-driver

# apt-get install -t stretch-backports nvidia-cuda-dev nvidia-cuda-toolkit

使用しているものを確認するには、変更ログを確認することをお勧めしますbackports

6) 機械を再始動して下さい

この時点で、目に見えるパフォーマンスに影響を与えることなく、すべてが以前と同様に正常に実行される必要があります。

関連情報