web-dev-qa-db-ja.com

Ubuntu 16.04(Dell xps 9560)で表示するためのCUDA用のNVIDIAカードとIntel統合カード

Ubuntu 16.04を使用しています。DellXPS 9560で、Linuxとの互換性が非常に高いラップトップです。このラップトップは2つのグラフィックカードを提供します。

  • NVIDIA GeForce GTX 1050
  • Intel HDグラフィックス630

NVIDIAカードにはCUDAにのみ使用したかったのは、グラフィカルユーザーインターフェイス用に4GBのRAMとIntelカードしか持っていないためです。

問題点:

  • 動作する場合、nvidiaカードは表示されなくなります。したがって、nvidia-smiを呼び出すと、ビデオカードは無効になります。
  • 動作しない場合、黒い画面が表示されます。
4
Marcus

ソリューションはこの投稿に基づいています: https://Gist.github.com/tomwwright/f88e2ddb344cf99f299935e1312da88

私のシステムの情報:

  • Dell XPS 9560
  • CUDA 9.2とNvidiaディスプレイドライバー396.37を既にインストールしました
  • Ubuntuカーネルは4.15.0-24-genericです
  • Gd3を使用しています

ステップ1

このファイルを編集してgrubを変更します。

Sudo vim /etc/default/grub

そして変更:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

沿って:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_rev_override=1"

最後に、次のコマンドを使用してgrubを更新します。

Sudo update-grub

必要に応じて、青色で強調表示されたテキストを追加することにより、ツールgrub-customizerを使用できます。

enter image description here

非常に重要なコンピュータを再起動してください!!

ステップ2

コンピューターの電源が切れたときにIntel GPUを選択するサービスを作成し、このために新しいファイルを作成します。

Sudo vim /etc/init.d/intel-gpu

この主張で:

#!/bin/bash
# /etc/init.d/intel-gpu

### BEGIN INIT INFO
# Provides:          intel-gpu
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Selects the intel GPU over the NVIDIA
### END INIT INFO

case "$1" in 
    start)
        ;;
    stop)
        /usr/bin/prime-select intel
        ;;
    *)
        echo "Usage: /etc/init.d/intel-gpu start|stop"
        exit 1
        ;;
esac

exit 0

実行権を追加します。

Sudo chmod +x /etc/init.d/intel-gpu

そして、新しいサービスを登録します。

Sudo update-rc.d intel-gpu defaults

ステップ3

前回コンピューターをオフにしたときにこのGPUを有効にしたので、コンピューターを起動するときにlightdm、gdm3などがIntel GPUを使用するようになりました。アカウントにログインするときに、NVIDIA GPUを有効にする必要があります。ただし、これを行うにはルートアクセスが必要であり、ログインするたびにパスワードを要求するウィンドウを表示する必要はありません。この問題を解決するには、コマンドエイリアスをSudo構成ファイルに作成します。

まず、次のコマンドを使用してSudo構成ファイルを開きます。

Sudo visudo

次に、このコンテンツをファイルの最後に追加します。

User_Alias ADMINS = <your_user>
Cmnd_Alias PRIME_SELECT = /usr/bin/prime-select
ADMINS ALL = NOPASSWD: PRIME_SELECT

ユーザー名はどこですか。

これにより、パスワードを入力せずにprime-selectを呼び出すことができます。

ステップ4

IntelのGPUの使用を開始した後、グラフィックカードをNVIDIAに変更する自動起動スクリプトを追加します。このため、このコマンドを追加して、次のような新しいファイルを作成します。

vim ~/.config/autostart/nvidia-gpu.desktop

そして、この主張を追加します:

[Desktop Entry]
Name=NVIDIA GPU
Exec=Sudo prime-select nvidia
Type=Application
Terminal=false

コンピューターを再起動します

これで、NVIDIA GPUのすべてのメモリを使用できます。それを確認するには、コマンドnvidia-smiを呼び出します。

enter image description here

3
Marcus

ログイン時に問題を回避し、場合によってはログインすることをお勧めします。手順4を回避することをお勧めします。また、必要なときにのみNVIDIAカードをアクティブにすると、ラップトップのバッテリー寿命を延ばすことができます。ただし、毎回端末を開いてSudo prime-select nvidiaを書く必要があるため、あまり実用的ではありません。この「問題」を克服するために、私はそれを行うgnome 3拡張を行いました。

動作させるには、このフォルダに移動するだけです。

cd ~/.local/share/gnome-Shell/extensions/

次に、このリポジトリのクローンを作成します。

git clone https://github.com/marcvivet/enable_cuda
mv enable_cuda [email protected]

次に、Alt + F2を押して「r」(デスクトップを再起動する)を入力するか、単に再起動します。

完了したら、gnome 3 Tweak Toolにアクセスして拡張機能を有効にします。

無効になっている場合、結果はNVIDIAグレーアイコンになります。

enter image description here

アイコンをクリックしてCUDAを有効にすると緑になります。

enter image description here

この拡張機能は非常に単純であり、NVIDIAカードの現在の状態を確認しません。したがって、このアイコンを使用する場合は、ターミナルを使用しないでください...

0
Marcus