2011年6月17日金曜日

6/17 OpenCL kernel関数の罠

*今回の教訓
ドキュメントは隅々までちゃんと読むべし


OpenCLでは実行時にカーネルソースを読み込み、JITコンパイルする。
このカーネルソースのファイルへの思い込みのせいで1週間以上を無為に過ごしてしまった。


1.カーネルソース内では#includeできない
#PROGRAM_BUILD_FAILURE(-11)で盛大にこけます

2.カーネルソース内のカーネル関数には二重ポインタは渡せない
#同上でこけます
#そもそも今考えるとどうして二重ポインタを渡そうとしていたのかが謎

3.カーネルソース内ではC++のように好きなところで変数宣言はできない
#同上
#ちゃんと先頭で全て定義しましょう


以上を踏まえて書き直したところ、あっさりコンパイルが通って虚脱した。
心が折れそうだ。

0 件のコメント:

コメントを投稿