编写一些代码以通过javaCL绑定研究openCL,我到达了必须将int2缓冲区(__global int2 * seed)传递给内核的地方,但是我找不到在javaCL中执行此操作的方法,因为上下文对象不提供任何createInt2Buffer或模拟方法来创建[generic_vector_type] Buffer。

作为一种解决方法,我将内核重写为接受两个int缓冲区,但是问题仍然存在。

因此,我是否缺少某些东西,或者库尚未实现此功能?

最佳答案

根据要求,我发布我的答案:

在库博客作者的代码示例中找到了解决方案。在Javacl中,int2 * opencl缓冲区未映射为int [n] [2],而是映射为int [n * 2],其中元素n.x和n.y交错

n.x-> array[n*2];
n.y-> array[n*2+1];

09-12 11:47