Live data from Hacker News

BigDL: Distributed Deep Learning on Apache Spark

github.com

11–20 of 39 posts

Re: BigDL: Distributed Deep Learning on Apache Spark

#11
Deeplearning4j does this already. It has a huge community, a Scala API and does model import from Keras. It's important to note that Spark is not an efficient computation later -- it's best if used for fast ETL. If you get that wrong, your going to be training slow.

https://deeplearning4j.org https://github.com/deeplearning4j/ScalNet https://deeplearning4j.org/model-import-keras https://gitter.im/deeplearning4j/deeplearning4j

Re: BigDL: Distributed Deep Learning on Apache Spark

#12

Isn't spark more versatile than tensorflow at this point? It does graph processing and deep learning. Plus it's built for distributed processing. Pyspark makes it easy to use.

(Heavy Spark user here)

Comparing Spark and TensorFlow is sort of like comparing Numpy and Pandas. There is some overlap, but they are pretty different things.

Spark is a big data manipulation tool, which comes with a somewhat-adequate machine learning library. TensorFlow is an optimised math library with machine learning operations built on it.

Spark doesn't support GPU operations (although as you note Databricks has proprietary extensions on their own cluster). DeepLearning4J and various other libraries do similar things.

However, if you are building your own Neural Network architectures then TF (which has highly optimised distributed training mode) is more useful.

Re: BigDL: Distributed Deep Learning on Apache Spark

#14
post #8

Earlier quoted context omitted.

Spark doesn't do GPU acceleration, which is super important if you don't have a lot of spare CPU capacity. The one time I tried to train a DL model on CPU it was 48x slower, and with communication overhead it would have taken more than 48 cores to match the single GPH. And given you want to do hyperparameter search on top of that, those CPU cores start adding up.

that doesnt seem right. Databricks seems to have this in production. https://databricks.com/blog/2016/10/27/gpu-acceleration-in-d... https://databricks.com/blog/2016/12/21/deep-learning-on-data... I havent used this feature - but are you sure ?

This seems exactly right. The Databricks GPU stuff isn't generally available and is built on TF anyway.

Re: BigDL: Distributed Deep Learning on Apache Spark

#15
post #14

Earlier quoted context omitted.

that doesnt seem right. Databricks seems to have this in production. https://databricks.com/blog/2016/10/27/gpu-acceleration-in-d... https://databricks.com/blog/2016/12/21/deep-learning-on-data... I havent used this feature - but are you sure ?

This seems exactly right. The Databricks GPU stuff isn't generally available and is built on TF anyway.

hmm.. atleast databricks claims that the GPU clusters are beta, but generally available

https://docs.databricks.com/user-guide/clusters/gpu.html

https://databricks.com/blog/2016/12/21/deep-learning-on-data...

In addition, IBM has multiple projects around GPU aware spark - https://github.com/IBMSparkGPU http://www.spark.tc/gpu-acceleration-on-apache-spark-2/

Re: BigDL: Distributed Deep Learning on Apache Spark

#16
post #11

Deeplearning4j does this already. It has a huge community, a Scala API and does model import from Keras. It's important to note that Spark is not an efficient computation later -- it's best if used for fast ETL. If you get that wrong, your going to be training slow. https://deeplearning4j.org https://github.com/deeplearning4j/ScalNet https://deeplearning4j.org/model-import-keras https://gitter.im/deeplearning4j/deepl…

I started experimenting with DL4J about a month ago. The getting started example apps are actually pretty good. You can pretty much clone the repo and run them.

Re: BigDL: Distributed Deep Learning on Apache Spark

#17
post #8

Earlier quoted context omitted.

Spark doesn't do GPU acceleration, which is super important if you don't have a lot of spare CPU capacity. The one time I tried to train a DL model on CPU it was 48x slower, and with communication overhead it would have taken more than 48 cores to match the single GPH. And given you want to do hyperparameter search on top of that, those CPU cores start adding up.

that doesnt seem right. Databricks seems to have this in production. https://databricks.com/blog/2016/10/27/gpu-acceleration-in-d... https://databricks.com/blog/2016/12/21/deep-learning-on-data... I havent used this feature - but are you sure ?

It's a proprietary add-on, not part of Apache Spark itself

Re: BigDL: Distributed Deep Learning on Apache Spark

#18
post #14

Earlier quoted context omitted.

This seems exactly right. The Databricks GPU stuff isn't generally available and is built on TF anyway.

hmm.. atleast databricks claims that the GPU clusters are beta, but generally available https://docs.databricks.com/user-guide/clusters/gpu.html https://databricks.com/blog/2016/12/21/deep-learning-on-data... In addition, IBM has multiple projects around GPU aware spark - https://github.com/IBMSparkGPU http://www.spark.tc/gpu-acceleration-on-apache-spark-2/

Yes the Databricks stuff is available on their cluster. It isn't part of Spark the Open Source project.

Yes, as I said elsewhere there are plenty of projects to enable GPU usage via Spark. Have you actually tried them though? I have (eg https://github.com/IBMSparkGPU/GPUEnabler/issues/25 ) and there are... issues.

Re: BigDL: Distributed Deep Learning on Apache Spark

#19
post #12

Isn't spark more versatile than tensorflow at this point? It does graph processing and deep learning. Plus it's built for distributed processing. Pyspark makes it easy to use.

(Heavy Spark user here) Comparing Spark and TensorFlow is sort of like comparing Numpy and Pandas. There is some overlap, but they are pretty different things. Spark is a big data manipulation tool, which comes with a somewhat-adequate machine learning library. TensorFlow is an optimised math library with machine learning operations built on it. Spark doesn't support GPU operations (although as you note Databricks ha…

for someone just getting started on Spark - what do you mean "somewhat adequate" ? Because I see MLLib (https://spark.apache.org/docs/2.0.2/mllib-guide.html) and a quick glance shows me a lot of overlap with tensorflow.

At google, their graph processing system (Expander) and deep learning framework (tensorflow) are separate systems. Spark looks to be built from the graph side (RDD) first and is now getting ML components.

how do you see spark evolving ?

Re: BigDL: Distributed Deep Learning on Apache Spark

#20
post #11

Deeplearning4j does this already. It has a huge community, a Scala API and does model import from Keras. It's important to note that Spark is not an efficient computation later -- it's best if used for fast ETL. If you get that wrong, your going to be training slow. https://deeplearning4j.org https://github.com/deeplearning4j/ScalNet https://deeplearning4j.org/model-import-keras https://gitter.im/deeplearning4j/deepl…

Chris my cofounder forgot to disclose he works on the project :).

I"ll do it for him.

I'd just like to say that as far as this niche is concerned. This is basically an attempt at "non gpus on spark".

We are heavily biased towards cuda and distributed gpu applications: https://blogs.nvidia.com/blog/2016/10/06/how-skymind-nvidia-...

I respect what intel is trying to do here, but it's going to take a lot more than "we built stuff" to get anyone to switch let alone build a community around.

To be fair to intel, I can't wait to see what they do with accelerators and phi, but I need to see more results first.

Competition in the space is definitely needed :D.

We have yet to see fpgas and nervana acquisition really play out as well.

It will take them a while to catch up either way.

Post reply on HN