私は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
パッケージがあるべきだろうかと思います。
なぜ発生したのか、どうして問題が解決したのか、正確にはわかりません。
まず第一に、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
その後、すべてがスムーズに動作します;)
Boincプロジェクトとしてgpugrid
を追加しようとしてイライラする2日間を過ごしました。 Boincのログにはno usable GPUs found
と書かれていますが、その理由を報告することはありません。それで、Boinc、Nvidia、Ubuntuが彼らの行動をまとめるまで、私は辞めてWindows 7に行きました(私は嫌いです)。
Webには整理すべき多くの誤解を招く情報があります。新しいグラフィックPPAを使用してNvidia 355.11ドライバーをインストールすることに成功しました。 GTX 960カードとドライバーが認識されていることを証明しました。ただし、 darktable グラフィックカードがコンピューターのビデオ出力デバイスとして正しく機能しているにもかかわらず、OpenCLが機能していないことを証明しました。欠落しているOpenCL機能を解決することは、グリッドコンピューティングの新しい貢献者全員に求めるには多すぎます。