在JOCL中将int作为内核参数传递

时间:2012-12-02 18:54:33

标签: java opencl jocl

所以我有一个看起来像这样的内核:

__kernel void my_kernel( __global const uchar *array, const uint number, __global const uchar *result) {
...
}

我已经想出了如何通过创建缓冲区来传递数组(Java中的字节数组):

cl_mem memObjects[] = new cl_mem[2];
memObjects[0] = clCreateBuffer(context, 
    CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
    Sizeof.cl_uchar * dataSize, 
    Pointer.to(data), null
);

然后设置它:

clSetKernelArg(my_kernel, 0, Sizeof.cl_mem, Pointer.to(memObjects[0]));

我能弄清楚的是如何在Java中设置数字参数...这是一个简单的 int

1 个答案:

答案 0 :(得分:2)

你可以尝试:

clSetKernelArg(my_kernel, 1, Sizeof.cl_uint, Pointer.to(new int[]{123}));