带hadoop的opencl

iq0todco  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(359)

如何将opencl(用于gpu计算)与hadoop结合使用?
我的数据集驻留在hdfs中。我需要计算5个度量,其中2个是计算密集型的。所以我想用opencl在gpu上计算这2个指标,用javamap-reduce在hadoop上计算其余3个指标。
如何将数据从hdfs传递到gpu?或者我的opencl代码如何从hdfs访问数据?
如何从java map reduce代码中触发opencl代码?
如果有人能分享一个示例代码就太好了。

8fq7wneg

8fq7wneg1#

可以使用jogamp(jocl)从java调用opencl,它基本上是本地opencl库的 Package 器。您需要首先使用java/hadoop库访问数据,将它们传输到clbuffers(这是包含用于与opencl通信的缓冲区的java对象),将它们复制到gpu,调用kernel,将结果从gpu复制回您的缓冲区。查看jocl示例。
另一种选择是使用Aparabi库。这里的数据处理内核是一个简单的java函数(有一些限制),框架从java字节码->opencl转换而来,因此opencl部分对程序员是隐藏的。当然,并不是所有的东西都可以从java->opencl中翻译出来,请查看他们的示例。

相关问题