我是OpenCL的初学者。我试着运行一个非常简单的内核代码,为vector的每个值加1。一切运行正常,没有返回错误代码(我在每一步后检查了返回值)。源代码:
2
-16777216
65535
1
-1242789408
32767
4201449
0
2
0
结果有些奇怪,而应该是{2,3,4,5,6,7,8,9,10,11}:
__kernel void hello(__global int* a, __global int* b)
{
int sam = 0;
int gid = get_global_id(0);
b[gid] = sam + a[gid] +1 ;
}
我的内核:
Managers.AddParameters("@Manager_Username",
TXTUsername.Text.ToString)
Managers.AddParameters("@Manager_Password",
TXTPassword.Text.ToString)
Managers.MakeQuery("SELECT Manager_Username,
Manager_Password,
Manager_ID, Manager_Name FROM SaleManager WHERE
Manager_Username = @Manager_Username
AND Manager_Password = @Manager_Password")
有人可以解释原因吗?它突然爆发了几个小时!
答案 0 :(得分:3)
clEnqueueTask
相当于调用clEnqueueNDRangeKernel
work_dim = 1
,global_work_offset = NULL
,global_work_size[0]
设置为1
,local_work_size[0]
设置到1
。
所以请使用clEnqueueNDRangeKernel
。