NVIDIA PrimeでCUDAを使用する方法


10

ウェブ上でこれに関する6ダースの投稿を見つけましたが、実際に質問に答えている人はいません。

ディスプレイを駆動するのではなく、計算のみを実行するようにnvidia GPUをセットアップしたい。しかし、nvidia-prime構成でIntel GPUを使用するように切り替えると、nvidiaモジュールをロードできなくなります。

modprobe: ERROR: could not insert 'nvidia_352': No such device

モジュールがないと、CUDAは明らかに機能しません。

それでは、nvidia-primeがモジュールをロードすることを不可能にする正確なことは何ですか?ブラックリストに載っていません。xorg.confファイルがないので、システムはディスクリートGPUの代わりにインテルGPUを使用することをどのようにして知っていますか?

私は、工場出荷時にUbuntu 14.04がインストールされたDell 5510 Precisionを使用しており、GPUはQuadro M1000Mです。

マルハナバチの使用を提案する人もいますが、純粋な計算負荷では必要ありません。

また、明らかにbumblebeeはモジュールをロードできます。それで正確には何をしているのでしょうか?

更新:それで、何時間もそれを理解しようと試みた後、私が最後に質問を投稿したとき、なぜ私はいつも答えを見つけるように見えるのですか?これは実際には部分的な答えにすぎませんが、私は何かに取り組んでいます。

これまでのところ、primeは少なくとも2つのことを行うと判断しました。

  • bbswitchを使用してGPUをオフにします。
  • /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf の代替を変更します。

bbswitchを使用してGPUをオンに戻すことで、NVIDIAモジュールをロードできるようになりました。

しかし、問題はまだ残っています。計算にのみNVIDIAカードを使用するようにシステムを構成する最良の方法は何ですか?

Intel GPUを使用するようにnvidia-primeを設定し、CUDAを機能させるために何が行われたかを手動で解明する必要がありますか?

システムが引き続きディスプレイにIntel GPUを使用していることを確認するにはどうすればよいですか?

NVIDIAプライムを無効にして、すべて手動で構成するにはどうすればよいですか?

または、バンブルビーとオプティランを使用して使用する必要がありますか?もしあれば、これの欠点は何ですか?

何かお勧めですか?


NVIDIA Xサーバー設定アプリでGPUの表示を無効にできますか?
Roger Dahl、

NVIDIAユーティリティでは、IntelとNVIDIA GPUのどちらかしか選択できません。ディスプレイに使用するカードなど、きめ細かい設定は提供しません。
orodbhen 2016年

回答:


5

私の場合、NVidiaカードが実際にはオフになっていないことがわかりました。CUDAコードを実行するために実際に必要なことは、次のとおりです。

export LD_LIBRARY_PATH=/usr/lib/nvidia-352

私がそれを実行したいシェルで(私は代替設定をグローバルに変更するとcompizなどが壊れると思います...)

この時点に到達するには(Ubuntu 14.04、CUDA 7.5、およびGTX 980を搭載したDell Optiplex 7010で)、手順は次のとおりであると思います。

  1. [PRIMEプロファイル]タブを使用してIntelを選択します
  2. 再起動し、BIOSでデフォルトとしてIntelを選択します
  3. コンピューターをシャットダウンしなさい
  4. モニターをオンボードビデオに接続します:)

これまでのところすべてが正常に機能しているようです(nvidia-smiがカードを確認し、cudaサンプルが実行され、theanoがカードを使用するなど)。


1
ええ、残念ながら、一貫した解決策はないようです。そのため、内部で何が起こっているのかを本当に理解したかったのです。
orodbhen 2016年

2

元の投稿の更新で説明されているように、これに対する少なくともおおまかな解決策を見つけたと思います。私が見つけた解決策は本当に2つありますが、他にも解決策があると確信しています。

1-PrimeモードのIntelモードで、bbswitchを介してNVIDIAカードを再度有効にしてから実行modprobe nvidiaし、モジュールをロードしてデバイスノードを作成します。

2-Bumblebee optirunを使用して、すべてのCUDAを実行できる場所からbashセッションを起動します。

これらのソリューションはどちらも、NVIDIAカードを計算負荷に使用しながら、オンボードグラフィックスをディスプレイに使用できるようにします。optirunソリューションはより用途が広いように見えますが、私はそのミニマリズムのために最初のソリューションを好みます。

私はより多くの理解を持つ誰かがこの答えを改善することを望んでいます。


最初のオプションをより明確に説明できますか?bbswitchを使用してカードをオンまたはオフにする方法
Abonec 2017

私は実際にマルハナバチをうまく機能させる方法を見つけました、そして、私は時間になったら私の答えを更新します。私は基本的にこれに従いました。これは非常に単純なので、これがあまり文書化されていないことにイライラします。
orodbhen 2017

2

私はCUDAの実行にのみNVIDIAカードを使用しており、このアプローチを見つけました。

いつも私はインテルカードを使っており、それはコマンドで確認されていlspci | grep -E "VGA|3D"ます:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

NVIDIAカードの対応する行(rev ff)では、オフになっていることを示します。

カードをオンにしてCUDA計算に使用するには、次の2つのコマンドを使用します。

sudo prime-select nvidia
sudo prime-switch

そのコマンドの後にlspci | grep -E "VGA|3D"

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

対応する行では(rev a2)なく(rev ff)、に注意してください。計算の準備ができたカード。

計算後、私は後方アクションを使用します:

sudo prime-select intel
sudo prime-switch

そしてlspci | grep -E "VGA|3D"レポート:

00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev ff)

つまり、基本的に、ディスプレイを実行しているGPUを切り替えたい場合は、primeで切り替えた後に再度ログインする必要がありますか?私はそれを考えていませんでしたが、それは理にかなっています。もちろん、ログアウトまたは再起動する前に、元に戻っていることを確認する必要があります。
orodbhen 2017

私はこのアプローチを使用しています。XorgとfirefoxがGPUを使用しないように、Intelプロファイルをアクティブにしてログインします。次に、nvidiaプロファイルに切り替えて、すべてのCUDA作業をGPUで実行します。メモリに関しては、FirefoxやXorgと競合する必要はありません:)!
John

0

承認された回答の手順を実行しても問題が解決しない場合は、次のことを試してください。

echo "install bbswitch /bin/true" > /etc/modprobe.d/blacklist-bbswitch.conf
update-initramfs -u

bbswitchを完全に無効にします。欠点は、省電力のためにNVIDIAカードをオフにできないことです(Xorgは、統合グラフィックスを引き続き使用しますprime-select intel)。


0

私は、作業中に暗号通貨をマイニングするように設定されたegpuのthinkpad T420で1070 tiを使用しています。理論的には、GPUは数か月後にこの方法で元が取れます。

nvidia 387を使用すると、LD_LIBRARY_PATH = / usr / lib / nvidia-387がcudaを使用してethminerで動作することがわかりました。

ただし、「prime-select intel」の後でシステムを動作させ続ける唯一の方法は、選択を行ってログオフするときに2番目のモニターをカードに接続していた場合でした。そうしないと、「システムが低グラフィックモードで実行されています」というエラーが表示されるか、画面に何も表示されないことがあります。もちろん、インテルグラフィックスを使用してログインすると、GPUに接続されているモニターに何も表示されないため、GPUからプラグを抜いてシステムに再度接続する必要があります(DVIドック出力)デュエルモニターのセットアップを実行します。

これは、gpu-managerがbbswitchが機能しないことを検出し、xorg構成を削除したためと考えられます。

私はこれを投稿して、同様の状況にある可能性のある数人の回避策を示すだけでなく、再起動のたびにケーブルを移動する必要があるので、誰かがこれを起こさないようにするアイデアがあるかどうかを確認しています不便。

log_file:/var/log/gpu-manager.log

last_boot_file:/ var / lib / ubuntu-drivers-common / last_gfx_boot new_boot_file:/ var / lib / ubuntu-drivers-common / last_gfx_boot ca n't access / run / udc-fglrx-was-loaded file / libでfglrxモジュールを探しています/modules/4.4.0-104-generic/updates/dkms /lib/modules/4.4.0-104-generic/updates/dkmsでnvidiaモジュールを探していますnvidiaモジュールが見つかりました:nvidia_387_drm.ko nvidiaがロードされていますか?はいnvidiaはアンロードされましたか?nvidiaはブラックリストに登録されていますか?はいfglrxがロードされていますか?いいえfglrxはアンロードされましたか?いいえfglrxはブラックリストに載っていますか?インテルがロードされていますか?はいradeonがロードされていますか?いいえradeonはブラックリストに載っていますか?amdgpuがロードされていますか?amdgpuはブラックリストに登録されていますか?nouveauはロードされていますか?nouveauはブラックリストに登録されていますか?はいfglrxカーネルモジュールは利用できますか?nvidiaカーネルモジュールはありますか?はいベンダー/デバイスID:8086:126 BusID "PCI:0 @ 0:2:0" is boot vga?はいベンダー/デバイスID:10de:1b82 BusID "PCI:conf現在のコアの代替:(null)現在のeglの代替:/usr/lib/nvidia-387-prime/ld.so.conf nvidiaは有効ですか?nvidia eglは有効ですか?いいえfglrxは有効ですか?メサは有効ですか?いいえmesa eglは有効ですか?pxpressは有効になっていますか?プライムは有効ですか?はいプライムeglは有効ですか?はいnvidiaは利用できますか?はいnvidia eglは利用できますか?fglrxはありますか?fglrx-coreはありますか?メサはありますか?はいmesa eglは利用できますか?はいpxpressは利用できますか?プライムはありますか?はいプライムエグルは利用できますか?Intel IGPが検出されなかったIntelハイブリッドシステムNvidiaドライバーバージョン387.34が検出されました/ sys / class / dmi / id / product_version = "ThinkPad T420" / sys / class / dmi / id / product_name = "4236L23" 1回目の試行:奇妙な動作のないbbswitch "load_state = -1 unload_state = 1"パラメータエラー:できます ' t / proc / acpi / bbswitchを開き、xorg.confを削除します。パス:/etc/X11/xorg.confは/usr/share/gpu-manager.d/hybrid-power-savingにアクセスできません現在のbbswitchステータスを変更する必要はありません

この後にxorg.confをnanoすると、空になります。マイナーバックグラウンドでマイニングが行われている状態で、モニタースイッチトリックを実行した後でこれを投稿していますが、xorg.confはまだ空です。したがって、私の推測では、何らかの理由で、lightdmの再起動時にモニターをGPUに接続したままにしておくと、xorg.confが削除されても問題はないと思います。何か案は?


また、上記のようにbbswitchをブラックリストに登録しました。これは、起動時に継続的にエラーが発生するためです。nvidia-384を1回または2回使用してintelモードで起動することはできましたが、それでマイニングを行うのに問題があり、nvidia-387で1070 tiサポートが追加されたためと考えられます。
2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.