独自のドライバ331.89からOpenCLが提供されません。(テスト/更新の両方を試してみました)しばらくの間、動作するバージョン304.123がありましたが、現在のドライバーが必要でしたが、現在はダウングレードできません。
とにかく-回避策でダウングレードできますが、331.89が機能することを望みます。
テストalosがdarktableにシンボリックリンクを追加したため、「darktable -d opencl」を使用しましたが、これは331.89には役立ちません。
独自のドライバ331.89からOpenCLが提供されません。(テスト/更新の両方を試してみました)しばらくの間、動作するバージョン304.123がありましたが、現在のドライバーが必要でしたが、現在はダウングレードできません。
とにかく-回避策でダウングレードできますが、331.89が機能することを望みます。
テストalosがdarktableにシンボリックリンクを追加したため、「darktable -d opencl」を使用しましたが、これは331.89には役立ちません。
回答:
私も参加者がデバッグを行うVirtual Lighttableに関する一連のフォーラム投稿を見つけるまで、この困惑する問題に戸惑っていました。NVIDIAドライバーには、いずれかnvidia-331
またはopenclドライバーと共にデフォルトでインストールされないカスタムmodprobeルールが必要であることがわかりました。これらのルールはnvidia-modprobe
パッケージに含まれています。
NVIDIAドライバーを使用してUbuntu 14.10でOpenCLを動作させるために必要なすべてのパッケージのリストを以下に示します。
sudo apt-get install nvidia-331 nvidia-331-uvm nvidia-opencl-dev nvidia-modprobe
編集:Ubuntu 15.04とNVIDIA 346.59ドライバーで同様の問題が発生した場合、問題を修正するコマンドはほぼ同じです。
sudo apt-get install nvidia-346 nvidia-346-uvm nvidia-opencl-dev nvidia-modprobe
Ubuntu 15.10
sudo apt-get install nvidia-352 nvidia-352-dev nvidia-prime nvidia-modprobe nvidia-opencl-dev
sudo ln -s /usr/include/nvidia-352/GL /usr/local/include
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/local/lib/libOpenCL.so
次に、次を使用してコンパイルします。
gcc -o main main.c -lOpenCL
そして、ヘッダーを次のように使用します。
#include <CL/cl.h>
ノート:
nvidia-current
パッケージをインストールしないでください。古いです。apt-cache search nvidia
最新のものを入手するか、software-properties-gtk
「追加ドライバー」タブを使用します。これを機能させるには、15.10にアップグレードすることをお勧めします。
テスト済み:
Ubuntu 14.04の場合、nvidia-modprobeはシステムを台無しにしました。しかし、nvidia-331-uvmは最初からアクティブ化されていないことに気付きました(神はその理由を知っています)。それを有効にしましょう:
$ sudo modprobe nvidia-331-uvm
$ sudo mknod -m 666 /dev/nvidia-uvm c 249 0
その後:
$ sudo clinfo
そうすれば、root以外のユーザーとしてもopenclを使用できます。このような理由は、Virtual Lighttableメーリングリストで説明されています。
したがって、最終的に次の行を/etc/rc.local
ファイルに追加しました。
# begin opencl config
modprobe nvidia-331-uvm
mknod -m 666 /dev/nvidia-uvm c 249 0
clinfo
# end opencl config
その後、すべてがスムーズに動作します;)
deviceQuery
CUDAテストプログラムを実行すると次のエラーが発生しますoptirun --bridge primus ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL