GPU Open Analytics Initiative
gpuopenanalytics.com
gpuopenanalytics.com
H2O wrote its random forests and GBMs, neither of which show large performance gains on GPUs compared to neural nets. And the neural nets in this initiative were created by Google, Berkeley, Microsoft... This looks like the OpenStack of machine learning, an unmaintainable project that will crumble under its own complexity.
>> 1. How will they maintain and extend that?
Umm just like how everyone else does it.
>> 2. H2O wrote its random forests and GBMs, neither of which show large performance gains on GPUs compared to neural nets.
What does your statement even means? [1]
>> And the neural nets in this initiative were created by Google, Berkeley, Microsoft...
You mean libraries?
Note: NOT an employee of H2O or anyway affiliated.
[1] https://devblogs.nvidia.com/parallelforall/bidmach-machine-l...
>> Umm just like how everyone else does it.
Wrong. Their ability to maintain and extend any of those libraries is limited. TensorFlow is hundreds of thousands of lines of code. Google can maintain and extend just fine. I doubt that H2O has the chops. That matters to their clients, because TensorFlow breaks things with new releases, and those clients will want someone to fix it. Do you call H2O? Do they patch Google into the conference line? I'm saying they're not in a position to offer commercial support. Anyone who has worked in enterprise will see the risks here.
>> What does your statement even means?
The algorithms that H2O specializes in do not benefit that much from the massively parallel computation that GPUs offer. If you don't understand the differences in the computation required by neural nets as opposed to random forests, you will not understand my critique. Neural nets offer superior accuracy on many problem sets and often need GPUs. Random forests do neither of those things.
H2O, for most of its long existence, has operated purely on CPUs just fine. But GPUs and deep learning are hot, so they are associating themselves with the buzzwords, even though they are not really in a position to a) build deep learning solutions or b) make their real product perform well on GPUs. Marketing fluff.
>> You mean libraries?
Why yes, I mean libraries. Thanks for clearing that up.
There's a lot of noise in the deep learning and AI space. Watson is one egregious example. H2O is another. While the technology itself is promising, some of the vendors are dubious.
From personal experience, many customers ask about our capabilities - but when it actually comes to using any of them there are only a handful of actually relevant ML algorithms that are useful, and those used to be called 'statistics' up until fairly recently.
With him, H2O lost much of its ability to develop and extend its code base, particularly since Cliff built many things in house that might have better been dependencies. That's why Steam never happened. Now H2O is mostly marketing, an overfunded startup in slow decline that was forced to fire its sales team last year because, well, nobody wants their stuff.
https://venturebeat.com/2016/09/24/machine-learning-startup-...
H2O is not nearly as fast as SMILE by most metrics:
http://haifengl.github.io/smile/ https://github.com/haifengl/smile
But what I'm saying is that true gains are seen for algorithms that require more parallelization than H2O's specialties. It's a critique of the relative improvements.
options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5)
session = tf.Session(config=tf.ConfigProto(gpu_options=options))
That way you limit how much the GPU can use up front and then other applications can use it instead.Of course if you need all of the memory during one phase of the computation, want to free it and then re-allocate it at a later stage you are probably out of luck.
But if your pipeline would normally allow for all tasks to run with limited memory you might get away with this strategy at the expense of some speed.
Good luck!
[1] https://github.com/AKSHAYUBHAT/DeepVideoAnalytics/blob/maste...
Not pretty from a modularity point of view but it just might get the job done.
Here's the full website text:
GPU Open Analytics Initiative
Continuum Analytics, H2O.ai, and MapD Technologies have announced the formation of the GPU Open Analytics Initiative (GOAI) to create common data frameworks enabling developers and statistical researchers to accelerate data science on GPUs. GOAI will foster the development of a data science ecosystem on GPUs by allowing resident applications to interchange data seamlessly and efficiently.
GPU Data Frame
Architecture
Our first project: an open source GPU Data Frame with a corresponding Python API. The GPU Data Frame is a common API that enables efficient interchange of data between processes running on the GPU. End-to-end computation on the GPU avoids transfers back to the CPU or copying of in-memory data reducing compute time and cost for high-performance analytics common in artificial intelligence workloads. Users of the MapD Core database can output the results of a SQL query into the GPU Data Frame, which then can be manipulated by the Continuum Analytics’ Anaconda NumPy-like Python API or used as input into the H2O suite of machine learning algorithms without additional data manipulation.
Plus a list of founders: Anaconda, H2O.ai and MAPD.
I'm hazy about how instructions get to the GPU... I guess the cpu us is executing the OS and the then gets instructions to load the program from disk and then into the execution space in the GPU's memory. I think that the CPU then pushes data into the GPU's memory space for execution and reads results out from the GPU memory according to synchronisation instructions in its program?
The catch is GPU memory is more expensive than CPU memory. You only want to use it if: 1) Your workload is compute heavy - think machine learning OR 2) You care about speed i.e., you want queries to be interactive.