【发布时间】:2013-07-03 14:54:18
【问题描述】:
我正在做一个家庭作业项目,比较快速傅立叶变换在 CPU 和 GPU 上的性能。我已经完成了 CPU 部分,但是使用 GPU,我遇到了问题。
问题是内核运行时间为零,输入与输出图像相同。我在带有 AMD APP SDK 的 win7 上使用 VS2010。这里是主机 code 、 the kernel ,另外还有一个 header 来处理 image ,它们可以在 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
}
}
所以希望你们帮助我。任何想法将不胜感激。
【问题讨论】:
-
请在您的问题中输入所有相关代码(当然不能更多)。如果您不能对此感到困惑,至少将您的代码格式化为有点可读性,因为阅读大量缩进严重的代码并不是我们许多人喜欢的事情。
-
哦;对不起 。我使用 Opera 作为主浏览器,似乎它没有保持代码的格式:(