2

私は宿題プロジェクトに取り組んでおり、CPUとGPUでの高速フーリエ変換のパフォーマンスを比較しています。CPU部分は終わりましたが、GPUでは問題があります。

問題は、カーネルランタイムがゼロであり、入力が出力イメージと同じであるということです。私はAMDAPPSDKを使用してwin7でVS2010を使用しています。これがホストコードカーネル、画像を処理するための追加ヘッダー です。これらはOpenCLプログラミングブック(土山亮二…)にあります。

私の推測では、エラーは画像のピクセルからcl_float2 *xm(ホストコードの169〜174行目)に値を渡すフェーズにあります。ベクトルコンポーネントにアクセスしてチェックすることができません。コンパイラが受け入れない.sX.xy、エラーをスローします。他の部分–カーネル、ヘッダー…–私には問題ないようです。

for (i=0; i < n; i++) {  
    for (j=0; j < n; j++) {  
        ((float*)xm)[(2*n*j)+2*i+0] = (float)ipgm.buf[n*j+i];   //real
        ((float*)xm)[(2*n*j)+2*i+1] = (float)0; //imag
    }   
}   

だから皆さんが私を助けてくれることを願っています。任意のアイデアをいただければ幸いです。

4

1 に答える 1

3

OpenCLは多くの異なるエラーコードを提供します。呼び出しごとに
実行することですでにそれらを取得していますが、分析していません。ret = clInstruction();

この値がに等しいかどうか、各呼び出しを確認してくださいCL_SUCCESS
メモリが不足している、ハードウェアがすでに使用されている、またはソースコードに単純なエラーがあるなど、常に発生する可能性があります。戻り値からわかります。

また、値についてはcl_context、、cl_programなどを確認してください。NULL

于 2012-11-28T06:52:37.480 に答える