InonS / Open-GPGPU-ANN

Open Source GPGPU support for Artificial Neural Networks
1 stars 0 forks source link
artificial-neural-networks gpgpu opencl

Open Source GPGPU support for Artificial Neural Networks

The benchmarks used are based on the Sentdex (PythonProgramming.net) Neural Networks Machine Learning Tutorial

Artificial Neural Network implementation alternatives in OpenCL ('cause GPGPU != nVidia), and if that isn't enough, try Micro$oft Windoze:

  1. TF:
    1. Luke Iwanski's OpenCL support for TensorFlow via SYCL
    2. Benoit Steiner's OpenCL support for TensorFlow
    3. Hugh Perkins's TensorFlow on Coriander.
      • No windows support
      • No native GPU-based convolutions (see corainder-dnn WIP)
    4. Benoit Steiner's tensorflow-opencl
    5. TensorFlow.js on WebGL
  2. Theano:
    1. Theano using libgpuarray
    2. Jonas Jarutis's "Theano and Keras setup on ubuntu with OpenCL on AMD card" (see also Fabrício Silva's version)
  3. Caffe: OpenCL Caffe
    1. requires the ViennaCL developer repo to install on Windows. see also Caffe on Micro$oft Windoze
    2. Using Intel's spatial convolution engine
    3. HCC Caffe backend
  4. AMD software ComputeLibrary (TODO)
  5. ArrayFire
  6. Codeplay's ComputeCpp (SYCL implementation)
  7. Torch:
    1. Hugh Perkins's pyCLTorch. Requires CMake to install on Micro$oft Windoze.
    2. HCC Torch backend
  8. DeepCL: Hugh Perkins's DeepCL. (Works! still trying to get the Python bindings working on Micro$oft Windoze, though)
  9. Apache SINGA (TODO)
  10. FANN: Steffen Nissen's FANN (see OpenCL backend with C API and non-OpenCL Python bindings)
  11. Nengo OpenCL (nengo_ocl)
  12. Encog: Jeff Heaton's encog (no Python. For example Maven Central POM for encog 3.3.0) (Jeff's reply to my inquiry was that he gave up support of OpenCL since Encog 3). My attempt is here.
  13. Veles: Samsung's Veles (Ubuntu only)
  14. Neural Networks: Ivan Vasilev's Neural Networks (Works!)
  15. Spark: Max Grossman's Spark SWAT

DevOps

  1. docker cp $AMP_APP_SDK_SRC_DIR\AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar. bz2 my-ubuntu:$AMP_APP_SDK_TGT_DIR

(not "docker-machine scp", which accesses the virtual machine itself, rather than the docker container we're running in it)

  1. tar -xjvf AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
  2. ./AMD-APP-SDK-v3.0.130.136-GA-linux64.sh
  3. apt install ocl-icd-opencl-dev

Artificial Neural Networks video resources

  1. Sentdex
  2. Nando Freias
  3. Hinton Coursera
  4. Beginner
  5. C#

Keras video resources

  1. Valerio Maggio (PyDataLondon '17)
  2. playlist2
  3. playlist3