完全な回答は次のとおりです(Alex FalappaとLekensteynの回答に基づいています)。
確かに、nVidia Optimus GPUを使用してUbuntuでCUDAを実行できます。
CUDAにはバンブルビーは必要ありません。(Bumblebeeの詳細:Optimusテクノロジーを搭載したNVIDIA GeForceはUbuntuでサポートされていますか?)
ただし、OpenGLを使用してグラフィカルな例を表示する必要がある場合は、Optimusシステム用のBumblebeeなどが必要です。そうしないと、ディスプレイに何も表示されないか、エラーが発生します。
ERROR: Support for necessary OpenGL extensions missing.
Blenderのようなグラフィックを多用するプログラムを使用する必要がある場合、Bumblebeeは現在のところ良い方法です。
Bumblebeeをインストールしたくない場合(つまり、OpenGLが不要な場合)、CUDAのインストールにスキップしてください。
そうでなければ、読み進めてください。
Bumblebeeのインストール
Nvidia Optimusを搭載したラップトップはどれくらいうまく機能しますか?の指示に従ってください。
これらは現在、Bumblebee開発者によって最新の状態に保たれています。
Bumblebeeをインストールして再起動すると、プログラムを使用してoptirun
プログラムを起動するときに使用するグラフィックカードを選択できるようになります。
例えば:
optirun blender
すべてが正しく機能するかどうかをすばやくテストするには、次を使用します。
optirun glxspheres
すべてが正常に機能している場合、カラフルな回転する球体を備えたプログラムが表示されます。
端末のGLベンダー文字列にnvidiaという単語が含まれていることを確認します。
のみを実行するとglxspheres
、代わりにベンダー文字列にIntelカードが含まれていることがわかります。
CUDAプログラムを実行する場合、CUDAツールキットとnvidiaドライバーをインストールする必要があります。プログラムをコンパイルする場合は、SDKも必要です。インストーラーはhttp://developer.nvidia.com/cuda-downloadsにあります。Optimusラップトップを起動する前に、以下の手順をお読みください。
CUDAのインストール
ドライバ
Ubuntuのパッケージマネージャーからnvidiaドライバーをインストールすることをお勧めします。Bumblebeeをインストールする場合、ドライバーについて心配する必要はありません。そうでない場合は、インストール後にhttps://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
、BlenderからCUDAカーネルのコンパイルに失敗したというメッセージと、端末に次のようなメッセージが表示される場合があります。
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ビルドをインストールするには、この回答に記載されている指示に従ってください。
にBlenderをインストールした場合/usr/lib/blender
は、ターミナルからBlenderを実行し、GPUレンダリングを以下で使用できるはずです。
optirun '/usr/lib/blender/blender'