【问题标题】:javacl - pass int2* (or any generic buffer of vectors ) to the kerneljavacl - 将 int2* (或任何通用的向量缓冲区)传递给内核
【发布时间】:2018-04-23 23:39:34
【问题描述】:

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

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

那么,是我遗漏了什么,或者这个库还没有实现这个功能吗?

【问题讨论】:

  • 如果您找到了解决方案,请将其发布为您的答案。
  • @geotavros:解决方案确实在我对帖子的第一次编辑中,日期为 4 月 13 日
  • 好的,但是这里人们在答案部分发布他们的解决方案并接受它

标签: java opencl


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多