これは、openCL のコンパイル時引数に関するものです。固定サイズの定数の配列があり、次のようにコンパイル時の引数として渡しています。
-DCOEFF=0.1f,0.2f,0.5f,0.2f,0.1f
そしてカーネルでは、私はそれを次のように読んでいます。
__kernel void Smoothing(__global const float *in, __global float *out)
{
float chnWeight[] = {COEFF};
}
このように intel-SDK を使用すると、係数を別の引数としてカーネルに渡す場合と比較して、パフォーマンスが大幅に向上します。
問題は AMD にあり、これはコンパイルされていません。次のエラーが表示されます。
0.2f:
Catastrophic error: cannot open source file "0.2f"
1 catastrophic error detected in the compilation of "0.2f".
Compilation terminated.
AMD (カンマ) では、コンパイル時の引数の区切り文字としても使用され、これがエラーの原因となっていることを理解しています。
この問題を解決するための助けをいただければ幸いです。前もって感謝します。