0

如何在 Hadoop 中使用 OpenCL(用于 GPU 计算)?

我的数据集位于 HDFS 中。我需要计算 5 个指标,其中 2 个是计算密集型的。所以我想在 GPU 上使用 OpenCL 计算这 2 个指标,其余 3 个指标在 Hadoop 上使用 java map reduce 代码计算。

如何将数据从 HDFS 传递到 GPU?或者我的 opencl 代码如何从 HDFS 访问数据?

如何从我的 Java map reduce 代码中触发 OpenCL 代码?

如果有人可以分享示例代码,那就太好了。

4

1 回答 1

1

可以使用 jogamp (jocl) 从 java 调用 opencl,它基本上是原生 opencl 库的包装器。您需要首先使用 java/hadoop 库访问数据,将它们传输到 CLBuffers(这是包含用于与 opencl 通信的缓冲区的 java 对象),将它们复制到 gpu,调用内核,将结果从 gpu 复制回缓冲区。检查 jocl 示例。

另一种选择是使用 aparapi 库。这里的数据处理内核是一个简单的java函数(有一些限制),框架是从java bytecode-> opencl翻译过来的,所以opencl部分对程序员是隐藏的。当然,不是所有的东西都可以从 java->opencl 翻译过来,看看他们的例子。

于 2013-05-13T13:38:01.973 回答