A system and method for processing machine learning techniques (such as
neural networks) and other non-graphics applications using a graphics
processing unit (GPU) to accelerate and optimize the processing. The
system and method transfers an architecture that can be used for a wide
variety of machine learning techniques from the CPU to the GPU. The
transfer of processing to the GPU is accomplished using several novel
techniques that overcome the limitations and work well within the
framework of the GPU architecture. With these limitations overcome,
machine learning techniques are particularly well suited for processing
on the GPU because the GPU is typically much more powerful than the
typical CPU. Moreover, similar to graphics processing, processing of
machine learning techniques involves problems with solving non-trivial
solutions and large amounts of data.