背景:私は(趣味として)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を使用する方法はありますか?
完全な回答は次のとおりです( Alex Falappa および Lekensteyn's 回答に基づく):
確かに、nVidia Optimus GPUを使用してUbuntuでCUDAを実行できます。
CUDAにはバンブルビーは必要ありません。 (詳細は Bumblebee : buntuでサポートされているOptimusテクノロジーを搭載したNVIDIA GeForceですか? )
ただし、OpenGLを使用してグラフィカルな例を表示する必要がある場合、doOptimusシステム用のBumblebeeのようなものが必要です。そうでない場合は、何も表示されません。エラーを表示または取得します。
ERROR: Support for necessary OpenGL extensions missing.
Blenderのようなグラフィックを多用するプログラムを使用する必要がある場合、Bumblebeeは現在のところ良い方法です。
Bumblebeeをインストールしたくない場合(OpenGLが不要な場合)は、CUDAのインストールに進んでください.
それ以外の場合は、読んでください。
Nvidia Optimusを搭載したラップトップはどの程度動作しますか? の指示に従ってください。
これらは現在、Bumblebee開発者によって最新の状態に保たれています。
Bumblebeeをインストールして再起動したら、optirun
プログラムを使用して、プログラムを起動するときに使用するグラフィックカードを選択できます。
例えば:
optirun blender
すべてが正しく機能するかどうかをすばやくテストするには、次を使用します。
optirun glxspheres
すべてが正常に機能している場合、カラフルな回転する球体を備えたプログラムが表示されます。
ターミナルのGLベンダー文字列にWordnvidiaが含まれていることを確認します。glxspheres
のみを実行すると、ベンダー文字列にIntelカードが含まれていることがわかります。
CUDAプログラムを実行する場合、CUDAツールキットとnvidiaドライバーをインストールする必要があります。プログラムをコンパイルする場合は、SDKも必要です。インストーラーは http://developer.nvidia.com/cuda-downloads にあります。Optimusラップトップを起動する前に、以下の手順をお読みください。
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
を設定する必要があります。
CUDAアプリケーションをコンパイルできるようにする場合は、上記と同様の方法でSDKをインストールできます。ダウンロードして実行可能にし、実行します(rootとしてではなく、Sudo
!なしなど)。
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ブレンダー
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'
いくつかの実験を行ったところ、CUDAにはBumblebeeは必要ないというEric Applemanの声明を確認できます。 (詳細は Bumblebee : buntuでサポートされているOptimusテクノロジーを搭載したNVIDIA GeForceですか? )
ただし、OpenGLを使用してグラフィカルな例を表示する必要がある場合、doOptimusシステム用のBumblebeeのようなものが必要です。そうでない場合は、何も表示されません。エラーを表示または取得します。
ERROR: Support for necessary OpenGL extensions missing.
CUDAプログラムを実行する場合、CUDAツールキットとnvidiaドライバーをインストールする必要があります。プログラムをコンパイルする場合は、SDKも必要です。インストーラーは http://developer.nvidia.com/cuda-downloads にあります。Optimusラップトップを起動する前に、以下の手順をお読みください。
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
を設定する必要があります。
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
-lcuda
も削除します。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ブレンダー
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が含まれている必要があります
Bumblebeeを使用してCUDAのすべての例を実行するには、ドライバー295.40を here からインストールする必要があり、インストール中にオーバーライドしないconfig x11
。
次に、同じドライバーを使用して例をコンパイルし、プログラムを実行する必要があります。