1

Intel HD Graphics 4000 GPU で Intel SDK for OpenCL を使用して、OpenCL プログラムを正常に実行しています。Nvidia ライブラリもインストールされているので、Intel OpenCL ライブラリにリンクするようにしました。

ただし、カーネルに呼び出しを入れるprintf()と、OpenCL コンパイラ エラーが発生します。

エラー: 関数 'printf' の暗黙的な宣言は、OpenCL では許可されていません

また、Visual Studio 2012 プラグインで OpenCL カーネル デバッグを有効にし、次のオプションを clBuildProgram に渡しました。

"-g -s C:\\Path\\to\\my\\program.cl"

ただし、カーネル ブレークポイントはスキップされます。ブレークポイントにカーソルを合わせると、次のメッセージが表示されます。

ブレークポイントは現在ヒットしません。このドキュメントのシンボルは読み込まれていません。

私のカーネルは別の .cl ファイルにあり、C/C++ コードの場合と同じ方法でブレークポイントを設定しています。これは、Intel SDK for OpenCL デバッガーを使用してブレークポイントを設定する正しい方法ですか?

printf()呼び出しとブレークポイントが Intel SDK for OpenCL で機能しないのはなぜですか?

4

1 に答える 1

2

関数 printf() は、OCL バージョン 1.2 で導入されました。Intel がこのバージョンをリリースしたのはそれほど前のことではありません。まだ 1.1 バージョンを持っていると思います。

デバッガーに関しては、私はほとんど使用したことがありませんが、このドキュメントに基づいて、パスは次のように指定されるはずです:

"-g -s \"C:\\Path\\to\\my\\program.cl\""

また、デバッグするスレッドを選択する必要があります。

于 2013-08-15T08:36:26.130 に答える