Deep neural network accelerated with CUDA graphics card processing.
Kernels structured expecting layer[i] > layer[i+1] when optimizing for speed, though this is not a requirement.
For a better explination how deep neural networks work, see my Neural Network written in Numpy.