web-dev-qa-db-ja.com

Ubuntu 16.04でnvidiaドライバーのダウングレード後にCUDAをインストールできない

最近、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

https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_Arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

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を再度インストールできません。

何か案は?

1
pazhosch

これは新しい問題です。

  • nVIDIAが提供するdebファイルには、CUDA 9.2.88で必要なドライバー396.26が含まれています。
  • ubuntuによってインストールされるバージョンは396.24です。
  • ubuntuパッケージシステムは、nvidiaパッケージが新しいバージョンであっても、ubuntuによってインストールされたパッケージを上書きできないように依存関係を設定します。
  • Ubuntu 396.26ドライバーパッケージのプレリリースを入手できる場合

    1. ubuntuプレリリースをインストールできます(正しくインストールするにはシナプスでプレイする必要がある場合があります)
    2. 以下に示すように、debnetwork命令の最初の3つのステップを実行できます。
    3. Sudo apt-get install cudaの代わりにシナプスに入り、小文字のcuda(存在する!)を検索し、インストールするようにマークし、その依存関係を更新します。
    4. その後、必要なすべてのファイルが追加されますが、クリックしたcudaリンクは破損します(独自のバージョンの396.26をインストールできなかったため)。
    5. 大丈夫です。メタパッケージです。実際にインストールする必要はありません。削除のマークを付けます。適用を押すと、シナプスは死んだパッケージの残骸をonくことがあります。これは見た目は悪いですが、死体を取り除く副作用があります。もう一度試してみて、それが唯一の壊れたパッケージであった場合、インストールは機能します。
    6. 他に何をどの順番でインストールしたかに応じて、他の壊れたパッケージを削除して同様のロジックゲームをプレイすることができますが、それは実行可能です。順番に並べるまでリブートしないことを強くお勧めします。すぐに公式リリースが表示されるはずです。プレリリースコピーを見つけることができれば、それは素晴らしいでしょう...
      https://launchpad.net/~bstudent/+archive/ubuntu/nvidia-graphics-drivers-396.26-copy-of-staging-ppa-20180522
1
B Student

Optimusカードを完全に認識するためのソリューションとしてのNVIDIAとCUDAの古い回避策は次のとおりです。

最初にインストールしたnvidia-driversをアンインストールし、nvidia-driversなしで再起動する必要があります。次に、次のリンクに記載されているようにここに進みます。謙虚ですが、これは古いチップセットの解決策として機能します。

Nvidia Driver GT 520およびCuda 5.0をUbuntu13.04にインストールする方法は?

0
dschinn1001

まあ、しばらくして、私はこの問題を回避することができました。正確に私がやったこと:

  • Synapticでcudaを含むすべてをクリーンアップしました。
  • Synapticで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を誤ってインストールすることはもうないようです。

0
pazhosch