OpenCL / AMD: Deep Learning

daniel451 picture daniel451 · Jun 3, 2015 · Viewed 26k times · Source

While "googl'ing" and doing some research I were not able to find any serious/popular framework/sdk for scientific GPGPU-Computing and OpenCL on AMD hardware. Is there any literature and/or software I missed?

Especially I am interested in deep learning.

For all I know deeplearning.net recommends NVIDIA hardware and CUDA frameworks. Additionally all big deep learning frameworks I know, such as Caffe, Theano, Torch, DL4J, ... are focussed on CUDA and do not plan to support OpenCL/AMD.

Furthermore one can find plenty of scientific papers as well as corresponding literature for CUDA based deep learning tasks but nearly nothing for OpenCL/AMD based solutions.

Is there any chance that new or existing scientific frameworks will show up for OpenCL/AMD based solutions in 2015/16?

What is a good start for deep learning with OpenCL/AMD? Any literature? Tutorials? Miscellaneous sources?

Answer

Alexander McFarlane picture Alexander McFarlane · Jun 8, 2015

Edit 1 See Mikael Rousson's answer - Amazon is now the way forwards as you can "rent" computational power from them.

Edit 2 I've created a series of guides on how to set up Amazon EC2 Instances for Deep Learning with theano. It's a lot more convenient than running on a personal machine.

Edit 3 It seems that TensorFlow is now far more widely accepted than theano so I have updated the guide accordingly.

I have been in the same situation as yourself as I have a MacBook Pro with Intel Iris graphics. I have spent the best part of a week looking through all possible workarounds and I would be more than welcome to alternatives to those that I offer.

The best solution I currently have is to:

  1. Install the python library tensorflow and utilise what GPU support there is and continue to update to the latest development versions.
  2. Use theano - and use existing GPU support similarly to tensorflow
  3. Buy an NVIDIA graphics card and use it on a PC
  4. If you absolutely need a solution in OpenCL and you are willing to code everything from a high level of understanding (no tutorials) look at DeepCL and possibly pyOpenCl.

I have found that any solution using OpenCL, e.g. pyOpenCl, doesn't yet have user friendly interfaces for Deep Learning i.e. it will take longer to code it in an alternative method than to just code it fast and run on a CPU. With that said though, here are of the best alternative OpenCL libraries for deep learning:

In Development