web-dev-qa-db-ja.com

nVidiaディスクリートカード/ Intel Integrated Graphicsを搭載したラップトップでnVidia CUDAまたはOpenCLを動作させるにはどうすればよいですか?

背景:私は(趣味として)3Dアーティストであり、最近Ubuntu 7でデュアルブートとしてUbuntu 12.04 LTSの使用を開始しました。グラフィックスカード)。ただし、Intel Integrated Graphics(Ubuntuが使用していると思われます)も備えています。

そのため、Windowsで3Dシーンを画像にレンダリングするとき、CPUを使用するかnVidia GPUを使用するかを選択できます(高速)。 3Dアプリケーションから、CUDAまたはOpenCLを使用するようにGPUを設定できます。 Ubuntuでは、GPUオプションはありません。

LinuxとnVidia Optimusテクノロジーの問題について(多すぎる?)研究を行った後、私はもう少し啓発されましたが、もっと混乱しました。

バッテリーの寿命は決して私にとって問題ではないので、Optimusテクノロジーについては少しも気にしません。

私の質問は次のとおりです。UbuntuのnVidia GPUでCUDAを使用するプログラム(Blenderなど)を使用するにはどうすればよいですか? nVidiaドライバーが必要ですか? (LinuxのOptimusセットアップではうまく動作しないと聞きました。)少なくともUbuntuのGPUでOpenCLを使用する方法はありますか?

28
Peter Cassetta

完全な回答は次のとおりです( Alex Falappa および Lekensteyn's 回答に基づく):

確かに、nVidia Optimus GPUを使用してUbuntuでCUDAを実行できます。

CUDAにはバンブルビーは必要ありません。 (詳細は BumblebeebuntuでサポートされているOptimusテクノロジーを搭載したNVIDIA GeForceですか?

ただし、OpenGLを使用してグラフィカルな例を表示する必要がある場合、doOptimusシステム用のBumblebeeのようなものが必要です。そうでない場合は、何も表示されません。エラーを表示または取得します。

ERROR: Support for necessary OpenGL extensions missing. 

Blenderのようなグラフィックを多用するプログラムを使用する必要がある場合、Bumblebeeは現在のところ良い方法です。

Bumblebeeをインストールしたくない場合(OpenGLが不要な場合)は、CUDAのインストールに進んでください.
それ以外の場合は、読んでください。

Bumblebeeのインストール

Nvidia Optimusを搭載したラップトップはどの程度動作しますか? の指示に従ってください。

これらは現在、Bumblebee開発者によって最新の状態に保たれています。

Bumblebeeをインストールして再起動したら、optirunプログラムを使用して、プログラムを起動するときに使用するグラフィックカードを選択できます。
例えば:

optirun blender

すべてが正しく機能するかどうかをすばやくテストするには、次を使用します。

optirun glxspheres

すべてが正常に機能している場合、カラフルな回転する球体を備えたプログラムが表示されます。

ターミナルのGLベンダー文字列にWordnvidiaが含まれていることを確認します。
glxspheresのみを実行すると、ベンダー文字列にIntelカードが含まれていることがわかります。

CUDAプログラムを実行する場合、CUDAツールキットとnvidiaドライバーをインストールする必要があります。プログラムをコンパイルする場合は、SDKも必要です。インストーラーは http://developer.nvidia.com/cuda-downloads にあります。Optimusラップトップを起動する前に、以下の手順をお読みください。

CUDAのインストール

Driver

Ubuntuのパッケージマネージャーからnvidiaドライバーをインストールすることをお勧めします。 Bumblebeeをインストールする場合、ドライバーについて心配する必要はありません。それ以外の場合、インストール後、disablehttps://askubuntu.com/a/107746/6969 で説明されているnvidiaライブラリを無効にします。そうしないと、3Dアクセラレーションが失われ、低解像度でスタックする可能性があります。

ツールキット

基本的に、インストーラーをダウンロードし、実行可能にして実行する必要があります。 -インストーラーをダウンロードします。 2013年1月9日現在、5.0.35が最新のドライバーです。 64ビットOSを使用しているため、64ビット11.10 Ubuntuパッケージを使用しています(12.10を実行していますが)-実行可能にし、/usr/local/cudaへのインストールを許可します。

chmod +x cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run
Sudo ./cudatoolkit_5.0.35_linux_64_ubuntu11.10-1.run

CUDAをインストールする場所を尋ねるインストールメッセージが表示されたら、Enterキーを押してデフォルトの/usr/local/cudaを受け入れます。

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

インストール後、ライブラリ検索パスにcudaライブラリディレクトリを配置することを提案するいくつかのメッセージが出力されます。

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

必要に応じてこの手順をスキップできますが、後でプログラムを実行するときにLD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHを設定する必要があります。

SDK

CUDAアプリケーションをコンパイルできるようにする場合は、上記と同様の方法でSDKをインストールできます。ダウンロードして実行可能にし、実行します(rootとしてではなく、Sudo!なしなど)。

CUDAを使用する

CUDAは、nvidia駆動のXサーバーが動作する必要はありません。その場合、次のようなランダムテストプログラムを実行できます。

LD_LIBRARY_PATH =/usr/lib/nvidia-current:/ usr/lib32/nvidia-current:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

ライブラリパスにCUDAを追加していない場合は、次のものが必要です。

LD_LIBRARY_PATH =/usr/lib/nvidia-current:/ usr/lib32/nvidia-current:/ usr/local/cuda/lib64:/ usr/local/cuda/lib:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

(プログラムが64ビットの場合、32ビットパスを削除できます)。

CUDAプログラムにOpenGLを使用して表示するものがある場合、optirunを使用する必要があります。

 optirun blender

または、デフォルトパスにCUDAを追加していない場合:

LD_LIBRARY_PATH =/usr/local/cuda/lib64:/ usr/local/cuda/lib:$ LD_LIBRARY_PATH optirunブレンダー

Blender Buildのインストール

(プリコンパイルされたCUDAカーネルを使用)

optirun blenderを実行すると、CUDAカーネルのコンパイルが失敗したことを示すメッセージと、次のようなターミナルのメッセージがBlenderから取得される場合があります。

Compiling CUDA kernel ...
nvcc warning : Option '--opencc-options (-Xopencc)' is obsolete and ignored, when
targeting compute_20, sm_20, or higher
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
CUDA kernel compilation failed, see console for details.

BlenderのGPUレンダリング機能を使用する場合は、プリコンパイルされたCUDAカーネルを使用したBlenderビルドが必要になる場合があります。 Blender.org からのビルドにはすべて、CUDAカーネルがプリコンパイルされています。 ppa:cheleb/blender-svnビルド( この質問の詳細 )はサポートしていません。

公式のBlenderビルドをインストールするには、 this answer に記載されている指示に従ってください。

Blenderを/usr/lib/blenderにインストールした場合、ターミナルからBlenderを実行し、GPUレンダリングを以下で使用できるはずです。

 optirun '/usr/lib/blender/blender'
15
Peter Cassetta

いくつかの実験を行ったところ、CUDAにはBumblebeeは必要ないというEric Applemanの声明を確認できます。 (詳細は BumblebeebuntuでサポートされているOptimusテクノロジーを搭載したNVIDIA GeForceですか?

ただし、OpenGLを使用してグラフィカルな例を表示する必要がある場合、doOptimusシステム用のBumblebeeのようなものが必要です。そうでない場合は、何も表示されません。エラーを表示または取得します。

ERROR: Support for necessary OpenGL extensions missing.

CUDAプログラムを実行する場合、CUDAツールキットとnvidiaドライバーをインストールする必要があります。プログラムをコンパイルする場合は、SDKも必要です。インストーラーは http://developer.nvidia.com/cuda-downloads にあります。Optimusラップトップを起動する前に、以下の手順をお読みください。

CUDAのインストール

Driver

Ubuntuのパッケージマネージャーからnvidiaドライバーをインストールすることをお勧めします。 Bumblebeeをインストールする場合、ドライバーについて心配する必要はありません。それ以外の場合、インストール後、disablehttps://askubuntu.com/a/107746/6969 で説明されているnvidiaライブラリを無効にします。そうしないと、3Dアクセラレーションが失われ、低解像度でスタックする可能性があります。

ツールキット

基本的に、インストーラーをダウンロードし、実行可能にして実行する必要があります。 -インストーラーをダウンロードします。この記事の執筆時点では、4.2.9が最新のドライバーです。 64ビットOSを使用しているため、64ビット11.04 Ubuntuパッケージを使用しています(12.04を実行していますが)-実行可能にし、/usr/local/cudaへのインストールを許可します。

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
Sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.run

CUDAをインストールする場所を尋ねるインストールメッセージが表示されたら、Enterキーを押してデフォルトの/usr/local/cudaを受け入れます。

......................................
Enter install path (default /usr/local/cuda, '/cuda' will be appended):

インストール後、ライブラリ検索パスにcudaライブラリディレクトリを配置することを提案するいくつかのメッセージが出力されます。

========================================

* Please make sure your PATH includes /tmp/cuda/cuda/bin
* Please make sure your LD_LIBRARY_PATH
*   for 32-bit Linux distributions includes /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions includes /tmp/cuda/cuda/lib64:/tmp/cuda/cuda/lib
* OR
*   for 32-bit Linux distributions add /tmp/cuda/cuda/lib
*   for 64-bit Linux distributions add /tmp/cuda/cuda/lib64 and /tmp/cuda/cuda/lib
* to /etc/ld.so.conf and run ldconfig as root

* Please read the release notes in /tmp/cuda/cuda/doc/

* To uninstall CUDA, remove the CUDA files in /tmp/cuda/cuda
* Installation Complete

必要に応じてこの手順をスキップしてもかまいませんが、後でプログラムを実行するときにLD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATHを設定する必要があります。

SDK

CUDAアプリケーションをコンパイルできるようにする場合は、上記と同様の方法でSDKをインストールできます。ダウンロードして実行可能にし、実行します(rootとしてではなく、Sudo!なしなど)。その一部をコンパイルするときに、NVIDIA_GPU_Computing_SDK/C/common/common.mkにいくつかの変更を加える必要がありました。

  • 189行目以降、OPENGLLIB := -lGL -lGLU -lX11 -lXi -lXmu、追加:

    OPENGLLIB += -L/usr/lib/nvidia-current -L/usr/lib32/nvidia-current
    
  • 行271について、次のように${RENDERCHECKGLLIB}${OPENGLLIB}と交換します。

    LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl -rdynamic
    
  • さらに数行(5行)、同じことをしますが、-lcudaも削除します。
  • さらに数行(271)で行ったのと同じことを行います。

CUDAを使用する

CUDAは、nvidia駆動のXサーバーが動作する必要はありません。その場合、次のようなランダムテストプログラムを実行できます。

LD_LIBRARY_PATH =/usr/lib/nvidia-current:/ usr/lib32/nvidia-current:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

ライブラリパスにCUDAを追加していない場合は、次のものが必要です。

LD_LIBRARY_PATH =/usr/lib/nvidia-current:/ usr/lib32/nvidia-current:/ usr/local/cuda/lib64:/ usr/local/cuda/lib:$ LD_LIBRARY_PATH someComputallyIntensiveProgram

(プログラムが64ビットの場合、32ビットパスを削除できます)。

CUDAプログラムにOpenGLを使用して表示するものがある場合、optirunを使用する必要があります。

 optirun blender

または、デフォルトパスにCUDAを追加していない場合:

LD_LIBRARY_PATH =/usr/local/cuda/lib64:/ usr/local/cuda/lib:$ LD_LIBRARY_PATH optirunブレンダー

27
Lekensteyn

Linuxでのハイブリッドグラフィックス(通常はIntel統合グラフィックスとNvidiaディスクリートグラフィックス)のサポートは、現在少し面倒です。 Xサーバーの分野では何かがゆっくりと動いていますが、息を止めないでください。

ご想像のとおり、バンブルビーは現在のところ良い方法です。

最近、Intel/Nvidiaグラフィックスを搭載したAsus N55ラップトップを購入し、Blender CyclesレンダラーでCUDAを使用できるようになりました。

Ubuntu 12.04をインストールしたとき、Intelグラフィックスドライバーを介してデフォルトで統合グラフィックスを使用しました。 noveauグラフィックスドライバーはインストールされません。

次に、ターミナルを開いて、次のことを行いました。

Sudo add-apt-repository ppa:bumblebee/stable
Sudo apt-get update
Sudo apt-get install bumblebee bumblebee-nvidia

その後、私はしました(インストール手順で推奨されているように):

Sudo usermod -a -G bumblebee $USER

その後、再起動しました。

プログラムの起動時に使用するドライバーを選択するには、optirunプログラムを使用します。次に例を示します。

optirun blender

すべてが正常に機能するかどうかをテストするには、次を使用します。

optirun glxspheres

GLベンダー文字列にWord Nvidiaが含まれていることを確認します。代わりに実行する場合:

glxspheres

ベンダー文字列にはIntel Wordが含まれている必要があります

2
Alex Falappa

Bumblebeeを使用してCUDAのすべての例を実行するには、ドライバー295.40を here からインストールする必要があり、インストール中にオーバーライドしないconfig x11

次に、同じドライバーを使用して例をコンパイルし、プログラムを実行する必要があります。

1
olmer