【发布时间】:2016-03-06 12:59:15
【问题描述】:
我正在尝试设置内核的参数,当我尝试设置 arg-0 时,我不断收到 CL_INVALID_ARG_SIZE,这是界限。奇怪的是,如果我只是注释掉第一个 clSetKernelArgs 其他所有似乎都可以工作。我认为这可能是常量数组的问题,除了它适用于 rand_seeds。
success = clSetKernelArg(solver_kernel, 0, sizeof(cl_float) * 10, bounds);
if(success != CL_SUCCESS)
{
printf("%d\n", success);
exit(1);
}
success = clSetKernelArg(solver_kernel, 1, sizeof(cl_float) * 2, seeds);
if(success != CL_SUCCESS)
{
printf("%d\n", success);
exit(1);
}
success = clSetKernelArg(solver_kernel, 2, sizeof(cl_int), &trials);
if(success != CL_SUCCESS)
{
printf("%d\n", success);
exit(1);
}
success = clSetKernelArg(solver_kernel, 3, sizeof(cl_int), &start_temp);
if(success != CL_SUCCESS)
{
printf("%d\n", success);
exit(1);
}
这是我的内核的头文件
__kernel void solver_kernel
(
__constant float bounds[10],
__constant int rand_seeds[2],
int trials,
int start_temp
)
【问题讨论】: