所以我有一个看起来像这样的内核:
__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 ?