Initial GPU Graphics Acceleration Encog Results
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
Wow Jeff,
It sounds amazing performance wise.
For your comparison, was the CPU running multithreaded or just a single thread?
both
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.