We helped NeuroDimension port their neural network solver to GPUs, back when GPUs were still on training wheels (2009). That software got absorbed by a corporate merger into nd.com and is no longer supported, but a nice YouTube demo remains:
Click to view demo of NS GPU
We also extended the GPU acceleration to work with NeuroSolutions Infinity, a package which searched a large space of models and tried to find the best model for your data.
Alas, this wonderful Windows software has also been obsoleted by the push for web-based solutions. Check out nd.com for full replacements for NeuroSolutions and NS Infinity.
One of our iPhone apps used Apple's METAL API for accelerating some of the "embarassingly parallel" code, but our code got eventually got more complex, and CPUs got much faster, so we put this METAL code "on ice" for now.
We've done:
CUDA
OpenCL
and
METAL
acceleration projects.
We have also done CoreImage acceleration on IOS for the ground-breaking Kargoe app.
While not GPU acceleration, our MCarloRisk3D app allows multi core CPU acceleration to speed up backtests, using Apple's Grand Central Dispatch technlology.
Some words of caution:
• Not all code lends itself to acceleration on the GPU.
• Some algorithms are inherently serial, and some need too much interaction with the CPU. One needs to watch out for the dreaded "PCI bus" bottlenecks in GPU code.
• It's best to analyze your problem in detail before committing to a GPU solution to your "need for speed;" sometimes it is better to parallelize onto CPU cores.
• Double precision math is sometimes a nightmare on GPUs. Not all of them support it, and the ones that do are often very slow at it. So be wary when checking calculation speeds, if you need double precision results. That "something-something gigaflops per second" noted in the advert may be for SINGLE precision math. REAL*4. 32 bit floats. That type of thing.
• Don't be tricked by core counts! If your GPU advertises 1000 cores, this doesn't mean it's going to be 1000 times as fast as your trusty laptop CPU.
As a side note, We got tricked by core counts. So we know of what we speak.
Did you know:
• The latest editions of OpenCL can be used to run GPU-type code in parallel on Intel and AMD CPU cores as well, giving you the benefit of parallel operation on CPU cores as well as GPU cores, using the same code base.
• Open Compute Language was introduced by Apple Inc. as a cross-platform open standard similar to the Open Graphics Language, which was in turn based on the proprietary Graphics Language introduced by the programmers at Silicon Graphics. Before that, it was just punched cards and front panels, man.
• The word "transistor" is coined from the words "transit resistor."
Copyright Differential Enterprises. All rights reserved.