igpuをxserverに、nvidia gpuをcudaに設定する方法は?


12

Ubuntu 16.04

の出力uname -a

Linux HOST 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

デスクトップグレード:

  • CPU:Intel
  • GPU:361.42のNvidia

私が欲しいもの:

  • Intel GPUは、オンボードDPに接続されているxserverとモニターを実行します。
  • nvidia GPUは、CUDA固有の計算などにのみ使用されます。
  • nvidia GPUを完全に制御(リアルタイム、統計、温度ファン速度...)

私の問題:

  • どちらnvidia-sminvidia-settings仕事と私は私のnvidiaのGPUを(エラーはさらに下に引用されている)を制御することはできません

私の物語:

私の問題の短い要約の後、トピックに飛び込みたい。Ubuntu 16.04のリリース以来、私はいじくり回しており、次のことを達成できていません。

  • インテルGPU(i7 6700K)がXserverとそれに関連するすべてのものを駆動するようにします。
  • 専用のnvidia GPUは、Cudaベースの計算などにのみ使用したいです。
  • 問題を解決した後、システムに複数のnvidia GPUを追加します。

私の初期状態の短い要約:

apt-getを介してnvidiaおよびintel(intel-microcodeおよびnvidia-361.42)の専用ドライバーをインストールし、mokutul --disable-validationを介してセキュアブートを無効にしました。
次に、Intelカードを使用するようにnvidia-primeを設定します。
次に、xorg.confを編集して、intel gpuおよびintelドライバーを含む1つの画面のみを含めました。(必要に応じて詳細を尋ねてください)
BlenderでのレンダリングのためにGPUをテストすると、すべてが正常に見えましたが、gpuの統計情報を取得できず、nvidia-settingsが空に見えました。

エラー:

sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.

これまでのリリース以来のすべての試行と研究を通じて学んだこと(短いバージョン、いつでも詳細を尋ねる):

私の2つの問題は関連していますが、同じではありません。

Nvidia-settings Empty:

  • これは、nvidia GPUにXserverが接続されている場合にのみこれらの設定が表示されるためです
  • これに対する解決策は、xorg.confに新しい画面を追加して、未使用のxserverをnvidia GPUで実行することです
  • しかし、これは現時点では不可能であり(他の問題を参照)、望ましくありません。nvidiaGPUが純粋にCudaに焦点を合わせたいので

Nvidia-smiが機能しない:

  • 私のGPU(550ti)はそれをサポートしていないので、bbswitchは問題ではありません(dmesgのエラー)
  • nvidia primeは、x86_64-linux-gnu_gl_confのエントリを/usr/lib/nvidia-361/ld.so.conf(nvidia GPUを選択)または/usr/lib/nvidia-361-prime/ld.so.conf(intel GPUを選択)に変更します
  • インテル選択の構成には、nvidia選択のすべてのconfに存在する必須のnvidiaモジュールへの必須のパスがありません。
  • prime-selectを介してnvidiaに切り替えると、ディスプレイが統合GPUに接続されているためXserverがありませんが、仮想コンソールnvidia-smiでログインすると動作します

私の仮定:

  • Nvidiaプライムは悪く、私が望む方法を望んでいません。
  • 私は何らかの形で素数を克服し、システムを構成する必要があります(新しい構成を手動で作成する場合でも?)

私の試み:

  • nvidia-primeをアンインストールしようとしましたが、それが機能しないことを後でしか認識しませんでした。x86_64-linux-gnu_gl_confのconfファイルが削除されると、結果は純粋な混乱になります...
  • 不足しているパスをx86_64-linux-gnu_gl_confファイルに手動で追加しようとしましたが、自分が何をしているのかよく分からず、成功しませんでした。

私の質問:

1)nvidia-smi問題を解決するにはどうすればよいですか?私は正しい軌道に乗っていますか?誰かが私がどのように進めることができるかという指示を持っていますか?

2)gpuのXserverなしで(xorg.confのgpuの画面なしで)nvidia gpu(xorg.confのcoolbits)のファン制御と追加制御を有効にすることは可能ですか?

事前にご返信いただきありがとうございます。私は文字通りウェブをとかしました、くしは私の問題です。
重要なものを見逃した場合は、ログファイルなどを要求することをmeしないでください。

ありがとう

画像

追加のドライバータブの画像: ここに画像の説明を入力してください


:私はまた、ランチパッド・質問作成answers.launchpad.net/ubuntu/+question/294621を
winnetou

たぶん、インストールプロセスを正しく説明していませんでした:apt-getを介してnvidia-driversをインストールした後、あなたが言ったように追加のドライバーもチェックされ、正しいドライバーが既に選択されています。スクリーンショットを含めました。ドライバーが存在し、nvidia-primeをNvidia-Gpuに切り替えると、すべてが機能します。この設定を変更すると、ドライバー全体をインストールできず、実際にはドライバーの一部であり、存在しなくても機能しません
-winnetou

それはきれいなのUbuntu 16.04が更新I起動のたびにインストールすると、私は、最新の公式アップデートがインストールされていると思いますので、apt-getをアップグレードした
winnetou

nvidia GPUでCUDAを使用できるため、システムでドライバーが使用されていることを知っています。私は正しく私の問題を理解していればしかし、すべてのnvidia-モジュールが....そのNVIDIA-SMIので、例えば、ミスのLIBSのために、ブート時にロードされていない
winnetou

回答:


4

受け入れられた回答は、Xサーバーを使用してNvidiaデバイスを有効にします。これは必要ではなく、Xサーバーがカードのメモリを使用することを意味します。

代わりnvidia-modprobeに、ドライバのFAQで説明されているようにインストールする必要があります(以下のリンクで見つけることができます)。

私の推奨する解決策は次のとおりです。

1)and フラグを指定して、ftp://download.nvidia.com/XFree86/Linux-x86_64/のrunfileを介して最新のNvidiaドライバーをインストールします。 2)対応のインストールを介してバージョンとからftp://download.nvidia.com/XFree86/nvidia-modprobe/--no-opengl-files--dkms
nvidia-modprobemake allsudo make install

--dkms旗はあなたのカーネルをアップグレードする際に、カーネルモジュールが再コンパイルされることを確認します。


これは私のために働いた。これは最も単純な答えであり、受け入れられた答えでなければなりません。
マルコアヴリヤス

この解決策はうまくいきませんでした。代わりに、ドライバーを通常どおりインストールし、以下に示すようにnvidiaパスをLD_LIBRARY_PATHに追加しました。
逆転

3

私(この投稿の作成者)は、自分で必要なソリューションを見つけました!

同様の状況にあり、このヘルプを必要とする他の人のためのソリューションを説明します!

SOLUTION:
VIA THE RUNFILEがに設けたNVIDIAドライバをインストールhttp://www.nvidia.com/object/unix.html FLAG WITH "--no-openglの-ファイル" !!

これは、nvidia openglファイルが既存のmesaファイルを上書きするのを防ぐだけでなく、nvidia primeなしでドライバーをインストールします!!

したがって、リポジトリからドライバーをインストールするのではなく、ドライバーを手動でインストールするだけで、私の問題はすべて解決されます。リポジトリからのパッケージは「Optimus-Friendly」であるため、無駄なトラブルメーカーがすべてバンドルされています。

2回目

xorg.confを専用GPU用の別の画面で拡張して、nvidia-settingsにエントリがあるようにします。

私のはこんな感じ

Section "ServerLayout"
    Identifier     "Layout0"
    Screen 0       "intel" 0 0
    Screen 1       "nvidia550ti" 3000 0
EndSection

Section "Device"
    Identifier     "intel"
    Driver         "intel"
    BusID          "PCI:0@0:2:0"
EndSection

Section "Device"
    Identifier     "nvidia550ti"
    Driver         "nvidia"
    BoardName      "GeForce GTX 550ti"
    BusID          "PCI:2@0:0:0"
EndSection

Section "Screen"
    Identifier     "intel"
    Device         "intel"
EndSection

Section "Screen"
    Identifier     "nvidia550ti"
    Device         "nvidia550ti"
    Option         "AllowEmptyInitialConfiguration" "on"
    Option         "Coolbits" "4"
    Option         "ConstrainCursor" "on"
EndSection

1
こんにちは。leezuからの回答はより単純で、おそらくあなたはそれを受け入れるべきですか?
マルコアヴリヤス

私の目にはとても有望に見えますが、私はまだリーズの答えを確認できません。それが機能していると報告する人がもっといる場合、または最終的に彼の答えをテストして確認できる場合は、受け入れられた答えを変更します。彼は、nvidia-modprobeがそのカードで実行されているxサーバーなしでは機能しないという問題を修正しました。
winnetou

既存のnvidiaドライバーをすべて削除して、最初からやり直す場合、これは機能しません。これを言う NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
-AfzalivE

1

私はあなたが望む設定を得ました(私もそれが欲しかった;)):

  • Intel GPUは、オンボードDPに接続されているxserverとモニターを実行します。
  • nvidia GPUは、CUDA固有の計算などにのみ使用されます。
  • nvidia GPUを完全に制御(リアルタイム、統計、温度ファン速度...)

を使用してbumblebee

ただし、詳細を説明する前に、nvidia-settingsまたはxorg.confまたはnvidia primeの構成を変更する場合、システムを再起動する必要があることを警告する必要があります(おそらく既に知っています)。再起動しないと、システムが一貫性のない状態になる可能性があります。


私の構成では、私は触れませんでしたxorg.conf。私にとってそうすることは、常に痛みの原因でした。元の状態のままにしてください。新規インストールを実行したくない場合は、/etc/X11/ls /etc/X11/xorg.conf*)でいくつかのバックアップを見つけることができます。

最初のステップは、nvidia-settings機能させることです。そうすることに成功した場合は、すでに述べたように、nvidia PRIMEを使用してIntel GPUに切り替えることができます。NVIDIA GPUをCUDA計算にのみ使用する場合は、Intel GPUへのnvidiaプライムポイントが必要です(cudaデバッガーを使用する場合は特に必要ですcuda-gdb)。

その後、bumblebeeをインストールしてみてください:

sudo apt install bumblebee

リブート。を使用してバンブルビーの状態を監視できます

sudo service bumblebeed status

または

bumblebeed -vv

bumblebeeは、NVIDIA GPUをアクティブにし、必要な場合にのみカーネルにnvidiaドライバーを挿入しようとします。optirun実行するコマンドの前に保留することにより、bumblebeeを使用できます。

マルハナバチを機能させるには、手動で編集/etc/bumblebee/bumblebee.confして、nvidiaドライバーの名前とパスを正しく設定する必要がありました。

[...]
Driver=nvidia
[...]
KernelDriver=nvidia_361
[...]
LibraryPath=/usr/lib/nvidia-361:/usr/lib32/nvidia-361

その後、sudo service bumblebeed restart私はバンブルビーシステムをアクティブにすることができました。

実際にnvidia-smi戻ります

$ nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.

しかし optirun nvidia-smi

$ optirun nvidia-smi
Fri Jun 17 11:47:48 2016       
+------------------------------------------------------+                       
| NVIDIA-SMI 361.42     Driver Version: 361.42         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 970M    Off  | 0000:01:00.0     Off |                  N/A |
| N/A   53C    P1    18W /  N/A |     18MiB /  3071MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     20678    G   /usr/lib/xorg/Xorg                               4MiB |
+-----------------------------------------------------------------------------+

お役に立てれば。


いい答えです!しかし、ubuntu 15.10と同じハードウェアでBumblebeeを疲れさせて、それが台無しになった。あまりにも多く、16.04が利用可能になった後、フレッシュインストールを行いました。本当に悪かった。リカバリモードでも正しく起動しませんでした...。bumblebeeのもう1つの問題は(これをどのように回避したかわかりません)、専用のgpuがbbswitchをサポートしていないため、エラーが発生し、gpuが正しくオフにならないこと
でした-winnetou

しかし、これは理論的には可能な答えです!しかし、私が探しているものではありません:(
。– winnetou

別のしかし:(これが私の試みでうまくいったなら、私はもう知りません)nvidia-settingsはあなたにGPU(もちろんsudo optirun nvidia-settings)を表示しますか?ファンの速度、電圧などを制御できますか?正しく思い出せば、これらの設定は、xorg.confファイルでcoolbitsを有効にした後、nvidia-settingsでのみ可能です。nvidia-smiはモニターのみを提供します.....間違っている場合は修正してください
winnetou

また、別の大きな疑問符は次のとおりです。専用のGPUが複数ある場合、Bumblebeeは正常に動作しますか?このユースケース(igpu + gpu)は、モバイル以外のgpusでのbumblebeeには既に推奨されていませんが、d-gpuを複数持つことは、bumblebeeにとっては新しい話です。
winnetou

@winnetou複数のGPUについて絶対に正しい-それは良い質問です。もう1つの問題は、nvidia-dockerが予想どおりに動作しない可能性が最も高いことです。
-vskubriev

1

上記のソリューションで述べたように、openglなしでnvidiaドライバーを再インストールしましたが、うまくいきませんでした。さらに、これらのソリューションは、ドライバの一部の機能(opengl)を削除することを意味するため、非常に不十分です。

ドライバーを再インストールする必要のない、はるかに簡単なソリューションを見つけました。

  • nvidiaドライバーを正常にインストールしました
  • nvidia-settings gui、PRIME untunderプロファイルでは、Intel GPUをメインGPUとして選択します
  • 再起動後、nvidia-smiは機能しませんが、ライブラリパスに/ usr / lib / nvidia-387を追加して修正しました。
    export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH

インストールされているドライバーによっては、ライブラリパスに別のフォルダー、たとえば/ usr / lib / nvidia-384を追加する必要がある場合があることに注意してください。
このコマンドをファイル〜/ .bashrcに追加して、新しいbashをロードするときにパスを自動的にエクスポートできます。


nvidiaドライバーをアップグレードするとどうなりますか?ライブラリパスを手動で変更する必要がありますか?
リャン

ドライバーがまだ同じフォルダーにある場合、これは問題になりません。フォルダが変更された場合、おそらくライブラリパスを変更する必要があります。
REVERS

0

主にリマインダーとして:ubuntu 18.04でレンダリングにigpuを使用し、cudaにnvidia gpuを使用し、デフォルトのnvidiaドライバーをインストールし、nvidia-settingsを開き、intel gpuを使用するように設定します。その後、nouveauドライバーとnvidiaドライバーの一部をブラックリストに追加します。

/etc/modprobe.d/blacklist-nvidia.confを開き、次のように行をコメントします。

#blacklist nvidia
blacklist nvidia-drm
#blacklist nvidia-modeset
#alias nvidia off
alias nvidia-drm off
#alias nvidia-modeset off

その後、/ etc / modprobe.d / blacklist-nvidia-nouveau.confを開き、次の行を追加します。

blacklist nouveau
options nouveau modeset=0

nouveauが無効になっていることを本当に確認するには、/ etc / modprobe.d / blacklist.confでそれらをブラックリストに追加することもできます。最後に以下を追加します。

#Blacklist nouveau drivers
blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

その後、再起動します。

タイプnvidia-smiNVIDIAがロードされている確認して、入力するlspci -nnk | grep -iA2 3D使用中のドライバを確認するためには、NVIDIAはなくヌーボーです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.