21

OpenCL の使用を開始しようとしています。NVidia グラフィックス カードを 2 枚持っています。NVidia の Web サイトから「開発者用ドライバー」と SDK をインストールしました。デモをコンパイルしましたが、実行すると

./oclDeviceQuery

そうですか:

OpenCL ソフトウェア情報:

clGetPlatformIDs 呼び出しでエラー -1001 !!!

どうすれば修正できますか?nvidia カードが検出されないということですか? Ubuntu 10.10 を実行していますが、X サーバーは nvidia ドライバーで正しく動作します。

sudoでも機能しないため、問題はファイルのアクセス許可に関連していないと確信しています。

4

10 に答える 10

9

私の場合、ubuntu (utopic/multiverse) で利用可能なnvidia-modprobeパッケージをインストールすることで解決しました。そして、ドライバー自体 (v346) は
https://launchpad.net/~mamarley/+archive/ubuntu/nvidia

からインストールし ました。 uvm、nvidia-346、libcuda1-346。それらがすべて OpenCL に必要かどうかはわかりません。

于 2015-01-05T17:56:19.600 に答える
6

これは、Nvidia の openCL ランタイムの ICD 部分がインストールされていないことが原因です。異なるベンダーの複数の実装が共存できるため、ICD プロファイルは、システムにインストールされているさまざまな openCL 実装をアプリケーションに指示します。アプリケーションが ICD 情報を見つけられない場合、エラー -1001 が返されます。

于 2011-02-12T00:18:29.207 に答える
2

Linuxシステムでも同じ問題が発生します。解決策は、ユーザーをビデオグループに追加することです。

# sudo usermod -aG video your-user-name
于 2012-05-19T17:31:11.097 に答える
1

私はこれに数時間を費やしただけなので、共有しようと思いました: リモート デスクトップ (mstsc) ごとにマシンに接続していたため、エラーが発生しました。マシン自体では、すべてが正常に機能しました。

ちなみに、TeamViewerで動作するはずだと言われました。

于 2012-01-23T14:23:27.697 に答える
-1

これは、複数のスレッドが同時に clGetPlatformIDs を照会したことが原因である可能性があります

于 2015-07-14T00:36:19.140 に答える
-2

プラットフォームの数を取得し、プラットフォームにメモリを割り当て、このプラットフォームを再度取得してから、このプラットフォームからコンテキストを作成する必要があります。良い例があります: http://developer.amd.com/support/KnowledgeBase/Lists/KnowledgeBase/DispForm.aspx?ID=71

于 2011-02-28T01:25:37.480 に答える