所以我有一个内核看起来是这样的:
__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]));我想不出的是如何设置数字parameter...which是一个简单的int (在Java中)?
发布于 2012-12-02 21:09:10
你可以试试:
clSetKernelArg(my_kernel, 1, Sizeof.cl_uint, Pointer.to(new int[]{123}));https://stackoverflow.com/questions/13672575
复制相似问题