[ 
https://issues.apache.org/jira/browse/SPARK-3785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14163326#comment-14163326
 ] 

Mridul Muralidharan commented on SPARK-3785:
--------------------------------------------

[~sowen] We had prototyped a solution for doing just this - the way we did it 
was to add a new StorageLevel - which was "higher" than ProcessLevel - and 
maintain information about which card hosted the data in an executor, and other 
handles/metadata required to offload computation to the accelerator card (so 
not just gpu).
And we set appropriate level delays so that in case the rdd had gpu data, no 
other computation level is allowed (unless there is a loss of executor).

It was a prototype - so we did not solve all issues which arise - including how 
to expose eviction of data from gpu back to main memory/disk in case of memory 
pressure, more efficient failure modes, moving data between gpu's to balance 
the memory and computational load/rdd replication between gpus in an executor, 
multi-tennancy, etc : our initial target usecases just required running various 
(expensive) closures on the data and the result was to be pulled off the card 
(which was fairly 'small') - so not all of these needed to be solved alteast 
for the prototype :-)
I cant get into the gory details or the actual benchmark numbers though, 
apologies.

In general, is it worth it ? For very specific cases, I would say it is a 
phenomenal - allowing 2 - 3 orders of performance boost vertically !
But for cases where it is not a good fit, it is terrible - even for cases where 
it was intutively supposed to work, inefficiencies we incur make it terrible at 
times.

> Support off-loading computations to a GPU
> -----------------------------------------
>
>                 Key: SPARK-3785
>                 URL: https://issues.apache.org/jira/browse/SPARK-3785
>             Project: Spark
>          Issue Type: Brainstorming
>          Components: MLlib
>            Reporter: Thomas Darimont
>            Priority: Minor
>
> Are there any plans to adding support for off-loading computations to the 
> GPU, e.g. via an open-cl binding? 
> http://www.jocl.org/
> https://code.google.com/p/javacl/
> http://lwjgl.org/wiki/index.php?title=OpenCL_in_LWJGL



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to