Initial GPU Graphics Acceleration Encog Results

jeffheaton's picture

Initial GPU(graphics processing unit) results are very good.

The mainline version of Encog .Net can now make use of the GPU for neural network calculation. No training yet, but this will come soon. I also plan to port this all to Java once I have the C# version working to my satisfaction.

I created a 10 input, 10 output neural network, with one 6-neuron hidden layer. Had it calculate values for 50,000 different inputs. Regular Encog neural network processing took 780ms. Using the GPU ONLY(my main computer pretty much sitting idle) it only took 124ms. That is pretty amazing to me! I also do not have an overly high-end video card. It is basically what came with my Dell quadcore.

When I get more advanced with this I want the quadcore and the graphics card to both divy up the workload. Especially with training. I think that will be really fast!

Comments

Wow Jeff, It sounds amazing

Tomer.Gal's picture

Wow Jeff,
It sounds amazing performance wise.

For your comparison, was the CPU running multithreaded or just a single thread?

both

jeffheaton's picture

The CPU was running multithreaded(quadcore). So this looks like a very nice speed bump. Of course I want them to both work together. The next step is to write OpenCL code that will actually train as well, then create some sort of enhanced threadpool that can contain both CPU and GPU units of work. Also support for more than one GPU card through the thread pool.


Copyright 2005 - 2012 by Heaton Research, Inc.. Heaton Research™ and Encog™ are trademarks of Heaton Research. Click here for copyright, license and trademark information.