2

プラットフォーム、GPUを取得し、4つのカーネルをコンパイルするOpenCLプログラムを実行するAMD C ++バインディングとSDK(最新のもの)を使用すると、起動時に上記のエラーが発生します。GPUが1.1までしかサポートしていない私のコンピューターでは正常に動作しますが、他のコンピューターでは上記のエラーが発生しているようです。これは、コンパイル(のように、いくつかのマクロを定義する必要があります)、ドライバー、C ++バインディング、または他の何かの欠如の問題ですか?自分のコードでclRetainDeviceを明示的に呼び出さない—それはどこかのバインディングの一部ですか?

4

1 に答える 1

2

OpenCL 1.2 ヘッダーで C++ バインディング ヘッダー ファイルを使用すると発生します。たとえば、AMD SDK (OpenCL 1.2) でコンパイルされたアプリケーションを NVIDIA プラットフォーム (OpenCL 1.1 のみ) で実行するとします。

高速で汚い回避策として、AMD SDK cl.h ヘッダーと undef "CL_VERSION_1_2" プリプロセッサ シンボルを編集するだけです。1.2 の機能に興味がない場合は、問題が解決するはずです。

于 2013-03-17T14:59:14.650 に答える