Newsletter

Newsletter
 

Compare GPU Software: Jacket versus PCT™

Hold your horses! The Parallel Computing Toolbox™ (PCT) already supports GPUs, so why should I use Jacket?

The answer is simple: Jacket is better

Specifically, Jacket is:

  • More Capable: Jacket contains 10X more functions than PCT. It also contains the innovative GFOR loop.

  • Faster: While Jacket's individual functions are faster than those in PCT, Jacket's speed advantage becomes fully apparent in real applications. Jacket is the only GPU option for MATLAB® capable of packing many lines of code into a single GPU kernel.

  • Built on Better Technology: Whereas PCT GPU functionality is fundamentally flawed in its use of a legacy Java-based system, Jacket contains an innovative and super light-weight runtime system. AccelerEyes is solely focused on delivering GPU speed, while MathWorks is distracted with other priorities.

Let's explore these 3 areas in more depth.


Jacket is More Capable

At a high level, there are a number of key capabilities for GPU Computing with MATLAB that are needed in most application implementations that are available in Jacket and not available in other systems. These capabilities are illustrated in the following chart with how each technology compares:

Jacket PCT
Linear Algebra Support YES minimal
Random Number Generation YES NO
Image Processing Functions YES NO
Signal Processing Functions YES NO
Supports all NVIDIA CUDA GPUs YES NO
Supports all AMD/ATI GPUs and other OpenCL devices YES NO
Supports past MATLAB versions YES NO
Works without PCT YES NO
Compiler option (see Jacket JMC) YES NO
Data-parallel FOR loop (see GFOR) YES NO

In addition to the high-level support illustrated in the first chart, looking at "supported" functions provides a bit more insight into how the systems can be used to implement or transform applications to GPU Computing. Jacket contains the largest function library available in the industry for any language:

Jacket PCT
FFT, FFT2 YES YES
MLDIVIDE YES minimal
MTIMES YES YES
SVD YES NO
EIG YES NO
INV YES NO
SUM, MIN, MAX (with one output) YES YES
SUM, MIN, MAX (with two outputs) YES NO
FIND YES NO
SORT YES NO

A full list of Jacket supported functions is available on the Jacket Documentation Wiki.


Jacket is Faster

The following performance table illustrates results of benchmarks comparing Jacket to PCT using matrices of 1024-by-1024 unless otherwise noted. Timing is provided in seconds and performance improvement of Jacket is expressed as a speedup multiplier over the PCT equivalent version.

The configuration of the system used was a CPU: (2x) Intel Xeon X5680 CPU @ 3.33GHz and a GPU: NVIDIA TESLA C2070, as follows:

Jacket (s) PCT (s) Speedup Multiplier
ARRAYFUN (Horner Example), Single: 0.18641 6.53213 35.0 X
ARRAYFUN (Horner Example), Double: 0.42653 8.99316 21.1 X
FFT (Example), Single: 10.25867 19.89959 1.9 X
FFT (Example), Double: 11.96000 23.99205 2.0 X
MLDIVIDE (1023x1023 square matrix), Double: 62.68685 74.66244 1.2 X
TRIG, Single: 0.696341 2.112127 3.0 X
TRIG, Double: 0.994353 2.767755 2.8 X
CTRANSPOSE, Single: 1.741304 3.298389 1.9 X
CTRANSPOSE, Double: 1.729959 3.896148 2.3 X
POWER, Single: 1.525003 2.989234 2.0 X
POWER, Double: 2.384597 4.051902 1.7 X
RESHAPE, Single: 0.145981 1.948034 13.3 X
RESHAPE, Double: 0.144335 2.545458 17.6 X
TIMES, Single: 0.627013 1.990203 3.2 X
TIMES, Double: 0.814789 2.54477 3.1 X
* benchmarks numbers provided by AccelerEyes' third-party partner.

Other benchmarks are also available on the Jacket community forums, here and here.


Built on Better Technology

Learn more about how Jacket technology compares to PCT in these blog posts.

  • Customer frustration with R2011A blog post.
  • A case study comparison using code from MATLAB Central is available as a blog post and video.
  • Stanford GPU benchmarks blog post.
  • Super Mario Brothers analogy to Jacket's GPU runtime blog post.

Finally, as everyone already knows, MATLAB® and PCT™ are trademarks of MathWorks.


« Back to Products Page