【发布时间】:2013-12-13 09:04:20
【问题描述】:
我有以下代码,它在一台机器上运行良好,但是当我尝试在另一台显卡更好的机器上运行它时,我遇到了错误:
global[0] = 512; global[1] = 512;
local [0] = 16; local [1] = 16;
ciErrNum = clEnqueueNDRangeKernel(commandQueue, myKernel, 2, NULL, global, local, 0, NULL, &event);
错误:
Error @ clEnqueueNDRangeKernel: CL_INVALID_KERNEL_ARGS
Error @ clWaitForEvents: CL_INVALID_KERNEL_ARGS
知道是什么问题吗?
【问题讨论】:
-
呃……那么……内核参数(以及内核本身)是什么?
-
@ChristianRau 我终于发现我在内核上使用的关键字
__constant只在我试过的三台机器中的两台上工作,我不知道为什么。当我在内核上将其更改为__global时,它可以在第三个上运行。 -
恒定内存是一种稀缺且有限的资源。也许您的第三台设备的固定内存很少。