2017-02-19 5 views

Antwort

0

Es gibt ein paar Bibliotheken, die mit diesem Dilemma hilft.

Die Databricks arbeiten in einer Lösung für Spark mit TensorFlow, mit der Sie die GPUs Ihres Clusters oder Ihrer Maschine verwenden können.

Wenn Sie mehr darüber finden möchten, gibt es eine Präsentation von Spark Summit Europe 2016 Diese Präsentation wird ein wenig zeigen, wie TensorFrames funktioniert.

Andere dies ist ein Beitrag über TensoFrames in DataBricks Blog.

Weitere Codeinformationen finden Sie unter Git of Tensorframes.

2

Es hängt davon ab, was Sie tun möchten. Wenn Sie Ihre Berechnungen mit GPUs unter Verwendung von Spark verteilen möchten, müssen Sie nicht unbedingt Java verwenden. Sie könnten python (pyspark) mit numba verwenden, die ein cuda-Modul haben.

Zum Beispiel können Sie diesen Code anwenden, wenn Sie möchten, dass Ihre Worker-Knoten die Operation (hier gpu_function) für jeden Block Ihrer RDD berechnen.

rdd = rdd.mapPartition(gpu_function) 

mit:

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

und:

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

ich Ihnen raten, einen Blick auf die Slide URL zu nehmen: https://fr.slideshare.net/continuumio/gpu-computing-with-apache-spark-and-python, schieben specificly 34.

Sie brauchen nur Numba und Cuda Treiber installieren auf jedem Arbeiterknoten.