5

OpenCL カーネルで #include ステートメントを使用したいのですが、Apple の OpenCL コンパイラがカーネルをキャッシュしているようです。そのため、インクルード ファイルの内容を変更し、インクルードを実行するファイルを変更しない場合、プログラムは実行間で変更されません。

これを説明する例をコード化しました: http://github.com/enjalot/adventures_in_opencl/tree/master/experiments/inc/

コンパイルして実行すると、正常に動作するはずです。次に、inc.cl の構造体定義をコメントアウトしても、問題なく実行されます (または lvl2.cl の何かを変更します)。

Ubuntu で NVIDIA コンパイラを使用すると、期待どおりの動作が得られます。

では、clBuildProgram にカーネルを再コンパイルさせる方法はありますか?

4

1 に答える 1

3

perfoptimization-dev@apple.comメーリングリストから回答を得ました

sudo killall cvmsServ

あまり優雅ではないようですが、まあ

于 2010-10-01T16:11:36.473 に答える