2

だから私はこのように見えるカーネルを持っています:

__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ですか?

4

1 に答える 1

2

あなたは試すことができます:

clSetKernelArg(my_kernel, 1, Sizeof.cl_uint, Pointer.to(new int[]{123}));
于 2012-12-02T21:09:10.980 に答える