我正在做一个家庭作业项目,比较快速傅立叶变换在 CPU 和 GPU 上的性能。我已经完成了 CPU 部分,但是对于 GPU,我遇到了问题。
麻烦的是内核运行时间为零,输入与输出图像相同。我在带有 AMD APP SDK 的 win7 上使用 VS2010。这是主机代码、内核、处理图像的附加标头 ,它们可以在 The OpenCL Programming Book (Ryoji Tsuchiyama...) 中找到
我猜错误是在我们将值从图像像素传递到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
}
}
所以希望大家帮帮我。任何想法将不胜感激。