如何在GPU上运行Apache Spark?

9

我想将Apache Spark与GPU集成,但Spark是基于Java开发的,而GPU使用CUDA / OpenCL,那么我们该如何将它们合并。

2个回答

6

这取决于你想做什么。如果你想使用spark和GPU分发计算,你不一定需要使用java。你可以使用带有cuda模块的python(pyspark)和numba。

例如,如果你想让工作节点在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)

我建议您查看slideshare网址:https://fr.slideshare.net/continuumio/gpu-computing-with-apache-spark-and-python,特别是第34页。
每个工作节点只需要安装numba和cuda驱动程序。

0

有一些库可以帮助解决这个问题。

Databricks正在为Spark与TensorFlow提供解决方案,这将允许您使用集群或计算机的GPU。

如果您想了解更多信息,请参阅Spark Summit Europe 2016的演示文稿。此演示文稿将展示TensorFrames的工作原理。

此外,DataBricks博客中有一篇关于TensoFrames的文章。

如需更多代码信息,请参阅Tensorframes的Git


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接