最近、CUDAをバージョン9.2にアップグレードし、nvidiaドライバーをnvidia-396にアップグレードしました。Ubuntu16.04 Optimus対応のラップトップで定期的に自動更新し、Intelビデオアダプターをデフォルトでアクティブにし、NVidiaをbumblebee経由でアクセスしました。すぐ後に、CUDAアプリケーションを(optirun <command>
を使用して)実行しようとしましたが、動作しないことがわかりました。
私が最初にしたことは、/etc/bumblebee/bumblebee.conf
の「nvidia-390」のエントリをすべて390に置き換えて(navidia-396)に置き換えることでした。これは何度も役立ちました。
それでも動作しません(Cannot access secondary GPU - error: Could not load GPU driver
)。 dmesg
、および理由があります:
[ 314.733284] NVRM: The NVIDIA GeForce GT 520M GPU installed in this system is
NVRM: supported through the NVIDIA 390.xx Legacy drivers. Please
NVRM: visit http://www.nvidia.com/object/unix.html for more
NVRM: information. The 396.26 NVIDIA driver will ignore
NVRM: this GPU. Continuing probe...
はい、私のラップトップはかなり古いですが、SSDと12 Gb RAMを搭載しているので、交換する必要はあまりありません。 OK、nvidia-390と一緒に暮らさなければならないようです:
Sudo apt install nvidia-390
CUDA 9.2のすべてを含む、多くの依存パッケージがアンインストールされると言われました。くそー。おそらく、CUDA 9.0で立ち往生しています。したがって、すべてをアンインストールした後(nvidia-396またはcuda-9.2のパッケージがシナプスでチェックインされずに残っている)、私はそれを取り戻そうとしました:
Sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_AMD64.deb
Sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
Sudo apt-get update
Sudo apt-get install cuda
3つのコマンドは問題ありませんが、最後のコマンドは...ヒューストン、問題があります!
$ Sudo apt install cuda
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cuda
私はこれに関する回答から解決策を試しました buntu 16にCUDA 8をインストール:パッケージcudaが見つかりません 質問、つまり:
dpkg -l | grep '^rc' | awk '{print $2}' | Sudo xargs dpkg --purge
Cuda-9.2に関連するパッケージの一部を含む、本当にたくさんのものをきれいにしました。ただし、問題はまだあります-9.0または別のバージョンを試そうとしても、CUDAを再度インストールできません。
何か案は?
これは新しい問題です。
Ubuntu 396.26ドライバーパッケージのプレリリースを入手できる場合
Sudo apt-get install cuda
の代わりにシナプスに入り、小文字のcuda(存在する!)を検索し、インストールするようにマークし、その依存関係を更新します。Optimusカードを完全に認識するためのソリューションとしてのNVIDIAとCUDAの古い回避策は次のとおりです。
最初にインストールしたnvidia-driversをアンインストールし、nvidia-driversなしで再起動する必要があります。次に、次のリンクに記載されているようにここに進みます。謙虚ですが、これは古いチップセットの解決策として機能します。
まあ、しばらくして、私はこの問題を回避することができました。正確に私がやったこと:
cuda
を含むすべてをクリーンアップしました。cuda-drivers
パッケージバージョンを390.xxに強制しました。壊れた依存関係を解決するためにapt update
、次にdpkg --configure -a
、次にapt update
を再度実行しました。
その後、Sudo apt install cuda
は機能しましたが、ドライバーをロックしているにもかかわらず、プロセスでcuda 9.2をインストールし、nvidia-396
にアップグレードすることを提案しました。しかし、Sudo apt install cuda-9-1
は比較せず、nvidia-390
を使用してCUDA 9.1をインストールできました(9.1ドライバーはnvidia-390
でも動作することがわかったため、9.0ではありません)。
その後(および再起動)、すべてのCUDAアプリは今までoptirun
で動作します。 :)
後で私が遭遇した唯一の小さな悩みは、apt dist-upgrade
がまだnvidia-390
をアップグレードするように私に申し出たことです(しかし、通常のapt upgrade
はしませんでした)。 apt-mark hold nvidia-390
の問題を解決し、Synapticでもパッケージが「ロック」されているように見えるようになりました。さらに、apt install cuda
を手動で実行しようとしても、エラーがスローされます。
The following packages have unmet dependencies:
cuda : Depends: cuda-9-2 (>= 9.2.148) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
しかし、実際には壊れたパッケージパッケージはないので、間違ったバージョンのCUDAを誤ってインストールすることはもうないようです。