[Old posts from the commercial version of ArrayFire] Discussion of ArrayFire using CUDA or OpenCL.

Moderator: pavanky


Postby rrstesiak » Sat Jul 07, 2012 12:13 pm


I thank everyone who has supported me FOR FREE on such a breakthrough product. I have received incredible productivity gains due to computational gains on the order of 48X improvement in computational speed! My main algorithm took days to run. Now runs around an hour depending on data. My graphical analysis used to take around 20 minutes to produce a surf plot and regression plot w/analysis. Now that takes about 58 seconds. yes, seconds!
My code (which is post-doctorate Computational Finance stochastic equations with 5 unknowns and advanced 4 dimensional graphical analysis) should apply to most people using this software.

Essentially, I am heavily leveraging FFT and matrix algebra/vector algebra.

Having said all of that, I think my benchmarks will translate to most people's work that involves mathematical/matrix/vector operations.

Enough talking, here are the results: (results are in seconds)

Code: Select all
OS            Large Problem Set                  Typical Problem Set
Win7                 291                                  789
OSX                  N/A                                  781
Linux                276                                  781

note: I ran 1000 iterations of large data set and 10,000 iterations of typical data set.
I am also aware of the matlab bench utility; however, that does not take into account GPU acceleration within jacket, so this test suite is unique. Most importantly, this test suite is a real life problem encountered by real life people. It is not a synthetic, sometimes OS / hardware biased set of "standard benchmarks". I have also conducted the tests as impartially as possible, loading all of the most current, stable patches for each OS and running the EXACT SAME CODE AND DATA through each OS.

Oddly; yet intuitively, not a vast, gaping difference between any platform. Only result of note may be that I believe Linux to be approximately 5% faster than Win7 on large data sets. That may or may not be critical to someone in this audience.

Regrettably, I was not able to get spmd functionality to work on Matlab R2012a on Mac OS 10.7.4. I am sure it is possible; I just couldn't devote enough time to troubleshoot it. I am confident; however, based on the typical problem set timings that were measurable, OSX would either be equal to linux or very close.

My problem set consisted of a 663x8 matrix of financial data as what I typically run on a day to day basis, and then a 3677x8 matrix for when I occasionally need a macro view of a longer or more dense period of financial data.
My problem itself is solving the Heston Stochastic Volatility equation with 5 unknowns, utilizing an external mex Adaptive Simulation Algorithm to find the zeros of my equation written by Dr. Ingber: Copyright © 1997-2010 Lester Ingber. All Rights Reserved.
My thanks also goes out to Dr. Ingber for invaluable assistance with properly utilizing his algorithm. The vast majority of computational time; however, was spent within the native matlab environment; as the ASA mex routine recursively calls my compute-intensive native matlab/jacket routines.

All OS's are the latest possible patches as of today, July 7, 2012. 64 bit. Jacket 2.2. Latest CUDA and nVidia supported packages. Matlab R2012a.
Ubuntu 12.04 64bit desktop was the linux of choice.

Hardware: 2.93GHz Quad Core Intel Xeon "Nehalem", 12GB Ram, 2 nVidia Quadro 4000 GPU boards. 7200RPM internal non-raid hard disks.
All os's were run natively (no vm's)
all tests were conducted after "warming up" the GPU(s)
all tests were repeated 3 times.
matlab was exited and re-entered upon each OS to "clean out" the environment between tests.

thanks to Carnegie Mellon University for letting me "steal" a machine for a week!~
Posts: 25
Joined: Sun May 20, 2012 6:46 pm

Return to [archive-commercial] Programming & Development with ArrayFire