0

Hadoop で OpenCL (GPU コンピューティング用) を使用するにはどうすればよいですか?

私のデータセットは HDFS にあります。5 つのメトリクスを計算する必要があり、そのうち 2 つは計算負荷が高いものです。したがって、OpenCL を使用して GPU でこれら 2 つのメトリックを計算し、Hadoop で Java map reduce コードを使用して残りの 3 つのメトリックを計算したいと考えています。

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 の例を確認してください。

もう 1 つの方法は、aparapi ライブラリを使用することです。ここで、データ処理カーネルは単純な Java 関数 (いくつかの制限あり) であり、フレームワークは Java バイトコード -> opencl から変換されるため、opencl の部分はプログラマーから隠されています。もちろん、java->opencl からすべてを翻訳できるわけではありません。それらの例を確認してください。

于 2013-05-13T13:38:01.973 に答える