nvidia-smi
を実行すると、次のメッセージが表示されます。
Failed to initialize NVML: Driver/library version mismatch
1時間前、同じメッセージを受け取り、cudaライブラリをアンインストールしたところ、nvidia-smi
を実行することができ、以下の結果が得られました。
この後、私は 公式NVIDIAページ からcuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_AMD64.deb
をダウンロードし、そして単に:
Sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_AMD64.deb
Sudo apt-get update
Sudo apt-get install cuda
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
今、私はcudaをインストールしました、しかし、私は言及されたミスマッチエラーを得ます。
いくつかの潜在的に有用な情報:
cat /proc/driver/nvidia/version
の実行
NVRM version: NVIDIA UNIX x86_64 Kernel Module 378.13 Tue Feb 7 20:10:06 PST 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
Ubuntu 16.04.2 LTSを実行しています。
カーネルのリリースは4.4.0-66-ジェネリックです。
ありがとうございます。
驚いたことに、再起動することで問題は解決しました(私はすでに試したことがあると思いました)。
コメントでRobert Crovellaが述べた解決策は、他の人にとっても役に立つかもしれません。それは私が最初に問題を解決したときに解決したこととよく似ているからです。
@etalが言ったように、再起動することでこの問題を解決することができますが、再起動しない手順が役に立つと思います。
中国語の場合は、私のブログをチェックしてください - > 中文版
エラーメッセージ
NVML:ドライバとライブラリのバージョンの不一致
nvidiaドライバのカーネルモジュール(kmod)のバージョンが間違っているので、このドライバをアンロードしてから、正しいバージョンのkmodをロードしてください。
まず、どのドライバがロードされているのかを知る必要があります。
lsmod | grep nvidia
あなたが得るかもしれません
nvidia_uvm 634880 8
nvidia_drm 53248 0
nvidia_modeset 790528 1 nvidia_drm
nvidia 12312576 86 nvidia_modeset,nvidia_uvm
最後の目標はnvidia
modをアンロードすることです。そのため、nvidia
に依存するモジュールをアンロードする必要があります。
Sudo rmmod nvidia_drm
Sudo rmmod nvidia_modeset
Sudo rmmod nvidia_uvm
その後、nvidia
をアンロードします。
Sudo rmmod nvidia
カーネルモジュールが使用中であることを示すrmmod: ERROR: Module nvidia is in use
などのエラーが発生した場合は、kmodを使用しているプロセスを強制終了する必要があります。
Sudo lsof/dev/nvidia *
それからそれらのプロセスを殺し、そしてkmodsを降ろし続ける
これらのkmodを正常にアンロードしたことを確認します
lsmod | grep nvidia
あなたは何も得ないはずです、そしてあなたが正しいドライバをロードできることを確認してください
nvidia-smi
正しい出力が得られるはずです
これはUbuntu 16.04でnvidia-348
パッケージ(Ubuntu 16.04の最新のnvidiaバージョン)を使っても起こりました。
しかし、 Proprietary GPU Drivers PPA を介してnvidia-390
をインストールすることで問題を解決できました。
そのため、Ubuntu 16.04で説明されている問題を解決するには、次のようにします。
Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt-get update
Sudo apt-get install nvidia-390
注: このガイドはクリーンなUbuntuインストールを前提としています。以前のドライバを再インストールしたことがある場合は、すべてのカーネルモジュールをリロードする必要があります。
私は私のnvidia-gpu-temperature-indicatorからエラーfailed to initialize NVML: Driver/Library version mismatch
を得ました。そしてnvidia-smiは情報を印刷できませんでした。私のubuntuに他のバージョンのnvidiaドライバがインストールされているかどうか確認しようとしました。しかし、私はちょうどnvidia-driver-390を見つけました。結局、reboot
は私が問題を解決するのを助けました。
だから私はこの問題を抱えていた、他の救済策のどれもうまくいきませんでした。エラーメッセージは不透明ですが、dmesgをチェックすることが重要でした。
[ 10.118255] NVRM: API mismatch: the client has the version 410.79, but
NVRM: this kernel module has the version 384.130. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
しかし、私は384バージョンを完全に削除し、残りのカーネルドライバnvidia-384*
をすべて削除しました。しかし、再起動した後でも、私はまだこれを受けていました。これを見ると、カーネルは384を参照するようにコンパイルされたままであることを意味していましたが、410しか検出されていませんでした。
# uname -a # find the kernel it's using
Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# update-initramfs -c -k 4.13.0-43-generic #recompile it
# reboot
そしてそれはうまくいった。
384を削除した後、私はまだ384のファイルを/var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module /lib/modules/4.13.0-43-generic/に置いていました。カーネル/ドライバ
毎回ファイルシステムを検索するのではなく、locate
コマンド(デフォルトではインストールされません)を使用することをお勧めします。
問題もありました。 (私はubuntu 18.04を実行しています)
私がしたこと:
dpkg -l | grep -i nvidia
次にSudo apt-get remove --purge nvidia-381
(および重複するすべてのバージョン、私の場合は381、384、および387)
次に、Sudo ubuntu-drivers devices
を使用して、使用可能なものをリストします
そして、Sudo apt install nvidia-driver-430
を選択します
その後、nvidia-smi
は正しい出力を提供しました(再起動する必要はありません)。しかし、疑わしいときに再起動できると思います。
また、 このインストール に従ってcuda + cudnnを再インストールしました。