gpt4 book ai didi

c++ - OpenCL 中的 FFT 2D 内核运行时 =0

转载 作者:搜寻专家 更新时间:2023-10-31 01:51:42 25 4
gpt4 key购买 nike

我正在做一个家庭作业项目,比较快速傅里叶变换在 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 行)。我也无法访问 vector 组件来检查它,编译器不接受 .sX.xy,抛出一个错误。其他部分——内核、 header ……——我觉得还不错。

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
}
}

所以希望你们帮帮我。任何想法将不胜感激。

最佳答案

OpenCL 提供了很多不同的错误代码。
您已经通过在每次调用时执行 ret = clInstruction(); 来检索它们,但您没有对其进行分析。

如果此值等于CL_SUCCESS,请检查每次调用。
内存不足、硬件已在使用或源代码中存在简单错误的情况可能总是会发生。返回值会告诉你。

此外:请检查您的 cl_contextcl_program 等是否有 NULL 值。

关于c++ - OpenCL 中的 FFT 2D 内核运行时 =0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13579673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com