web-dev-qa-db-ja.com

Apache SparkをGPUで実行するにはどうすればよいですか?

Apache sparkをGPUと統合したいのですが、sparkはJavaで動作しますが、gpuはCUDA/OpenCLを使用しているので、どうすればよいですか?それらをマージします。

6

それはあなたが何をしたいかによります。 sparkを使用してGPUで計算を分散したい場合は、Javaを使用する必要はありません。python(pyspark)をnumbaで使用できます。 cudaモジュール。

たとえば、ワーカーノードでRDDのすべてのブロックで操作(ここではgpu_function)を計算する場合は、このコードを適用できます。

rdd = rdd.mapPartition(gpu_function)

と:

def gpu_function(x):
    ...
    input = f(x)
    output = ...
    gpu_cuda[grid_size,block_size](input,output)
    return output

および:

from numba import cuda
@cuda.jit("(float32[:],float32[:])")
def gpu_cuda(input,output)
    output = g(input)

スライドシェアのURLを確認することをお勧めします: https://fr.slideshare.net/continuumio/gpu-computing-with-Apache-spark-and-python 、具体的にはスライド34。

すべてのワーカーノードにnumbaとcudaドライバーをインストールするだけで済みます。

4
Adrien Forbu

このジレンマに役立つライブラリがいくつかあります。

Databricksは、クラスターまたはマシンのGPUを使用できるようにするTensorFlowを使用したSparkのソリューションで機能しています。

詳細については、 Spark Summit Europe 2016 のプレゼンテーションがあります。このプレゼンテーションでは、TensorFramesがどのように機能するかを少し説明します。

その他これは、DataBricksブログの TensoFrames に関する投稿です。

また、コード情報の詳細については、 Git of Tensorframes を参照してください。

0
Thiago Baldim