web-dev-qa-db-ja.com

OpenCLがデフォルトではない理由(14.04、nVidia 331)

私はOpenCLを使用していないのですか、それともよくある問題ですか?

UPDATE:何かが/etc/OpenCL/vendors/nvidia.icdを削除したようです。これは nvidia-opencl-icd-331でインストールされているはずです 、しかしそうではありません。

BOINCから始まりました。 Milkyway GPU用に特別にフェッチされたデータの計算を拒否しました:

Starting BOINC client version 7.2.42 for i686-pc-linux-gnu
...
CUDA: NVIDIA GPU 0: GeForce GT 520 (driver version unknown, CUDA version 6.0,
 compute capability 2.1, 1023MB, 999MB available, 156 GFLOPS peak)
...
Requesting new tasks for CPU and NVIDIA
App version needs OpenCL but GPU doesn't support it
Scheduler request completed: got 2 new tasks
[error] App version uses non-existent NVIDIA GPU
[error] Missing coprocessor for task de_modfit_fast_simulated15_136_free_1_14
13455402_27741174_0; aborting

そこで、OpenCLがない理由を確認することにしました。 OpenCLのサポートを確認する「公式」な方法を見つけることができませんでしたが、人々が darktable を使用していることがわかりました。

$ darktable -d opencl
[opencl_init] opencl related configuration options:
...
[opencl_init] trying to load opencl library: '<system default>'
[opencl_init] opencl library 'libOpenCL' found on your system and loaded
[opencl_init] could not get platforms: -1001
[opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.

また、pyritで何かを検出しようとしました:

$ pyrit list_cores
Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+

The following cores seem available...
#1:  'CPU-Core (SSE2)'
#2:  'CPU-Core (SSE2)'

最後にclinfoを発見しました:

$ clinfo
I: ICD loader reports no usable platforms

そして OpenCLを14.10 + Nvidia 331.89ドライバーで動作させる方法

BOINCがnVidiaドライバーのバージョンを検出できない理由がまだわからないため、boincを削除して boinc-nvidia-cuda をインストールしましたが、問題は解決しませんでした。 openclが欠落しているものがあるかどうかも確認しようとしましたが、問題ないようです。

リンクされた質問は、nvidia-modprobeをインストールするように言っています。私は今それを試しています。しかし、私はこの魔法の薬がどのように機能するのかわかりません、そしてそれが機能する場合-なぜデフォルトで有効になっていないのですか?また、OpenCLを有効にするために必要なすべてを実行するvirtualパッケージがあるべきだろうかと思います。

6

なぜ発生したのか、どうして問題が解決したのか、正確にはわかりません。

まず第一に、nvidia-331-uvmは最初から有効化されていません(神はその理由を知っています)。それを有効にしましょう:

$ Sudo modprobe nvidia-331-uvm
$ Sudo mknod -m 666 /dev/nvidia-uvm c 249 0

その後、clinfoを実行すると、ICDローダーについて同じエラーが発生します。それでも、rootで実行する場合:

$ Sudo clinfo

良い結果が得られます(E:-30)。その後、非rootユーザーとしてコマンドを実行することもできます。短い話:

$ clinfo
I: ICD loader reports no usable platforms
$ Sudo clinfo 
E: -30
$ clinfo 
E: -30
# then you run anything as non-root user

そして、darktable -d openclもうまく機能します、またはopenclプログラム;)。

UPDATE

/etc/rc.localファイルに次の行を追加しました:

# begin opencl config
modprobe nvidia-331-uvm
mknod -m 666 /dev/nvidia-uvm c 249 0
clinfo
# end opencl config 

その後、すべてがスムーズに動作します;)

1
silgon

Boincプロジェクトとしてgpugridを追加しようとしてイライラする2日間を過ごしました。 Boincのログにはno usable GPUs foundと書かれていますが、その理由を報告することはありません。それで、Boinc、Nvidia、Ubuntuが彼らの行動をまとめるまで、私は辞めてWindows 7に行きました(私は嫌いです)。

Webには整理すべき多くの誤解を招く情報があります。新しいグラフィックPPAを使用してNvidia 355.11ドライバーをインストールすることに成功しました。 GTX 960カードとドライバーが認識されていることを証明しました。ただし、 darktableInstall darktable グラフィックカードがコンピューターのビデオ出力デバイスとして正しく機能しているにもかかわらず、OpenCLが機能していないことを証明しました。欠落しているOpenCL機能を解決することは、グリッドコンピューティングの新しい貢献者全員に求めるには多すぎます。

0