NVIDIA has launched their next generation GPU based on their <a title="Kepler news release" href="http://nvidianews.nvidia.com/Releases/NVIDIA-Launches-First-GeForce-GPUs-Based-on-Next-Generation-Kepler-Architecture-79b.aspx" target="_blank">Kepler Architecture</a>. They followed it up with a rather quick update to their <a title="CUDA toolkit" href="http://developer.nvidia.com/cuda-downloads" target="_blank">CUDA toolkit</a>. Considering that we have access to 3 generations of their GTX cards (480, 580 and 680), we thought we would show case how the performance has changed over the generations.

<strong> Matrix multiplication</strong>:

<a href="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/matmul.png"><img class="aligncenter size-full wp-image-2561" title="matmul" src="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/matmul.png" alt="One terra flops!" width="600" height="300" /></a>

It can be seen that the GTX 680 breaches the 1 Terraflop mark comfortably for single precision, while the GTX 580 barely scratches it. However the performance seems to peak around 2048 x 2048 and then rallies downward to match the performance of the GTX 580 at larger sizes. The high end Tesla C2070 finishes last for single precision behind the third placed GTX 480.

For double precision, as expected the C2070 is well ahead of the pack. The most interesting snippet here is that the GTX 680, finishes <em>dead last</em> compared to its predecessors. At about 1/10 th  of its single precision performance, <em>the 680 is about twice as slow as the 580</em> which settles down a ~ 1/5th the single precision performance.

<strong>Fast Fourier Transform</strong>:

<a href="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/fft2d1.png"><img class="aligncenter size-full wp-image-2575" title="fft2d" src="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/fft2d1.png" alt="Fast fast aww no more memory!" width="600" height="300" /></a>The performance gains moving from 480 to a 580 is significant (~20%), while the 680 does not seem to have huge wins over its immediate predecessor. The Fast Fourier Transform is an interesting benchmark in that, it is a case of these cards running out of memory before the peak performance is reached. At 2GB, the 680 can hold two 8192x8192 single precision, complex matrices, but the scratch space required for this algorithm is more than the free space available. All the transformations were 2D , Real to complex transforms.

<strong>SORT</strong>:

<a href="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/sort.png"><img class="aligncenter" title="sort" src="http://blog.accelereyes.com/blog/wp-content/uploads/2012/04/sort.png" alt="" width="600" height="300" /></a>Here the GTX 680 starts off strong before losing out to the GTX 580, and eventually to the 480.  We are using the same <a href="http://code.google.com/p/back40computing/wiki/RadixSorting" target="_blank">radix-sort</a> algorithm for all the benchmarks.  It is really astonishing that the 680 is more than 20% slower at peak.

Resources:

<a href="https://gist.github.com/2493843" target="_blank">Benchmark Code</a>

<a href="https://docs.google.com/spreadsheet/ccc?key=0AitC5fE6lOMzdHB3eGxNQzlidlFLbjBzSlZtbG8zLWc" target="_blank">Benchmark Results </a>

Related links:

<a href="http://www.tomshardware.com/reviews/geforce-gtx-680-review-benchmark,3161-15.html" target="_blank">Tom's hardware: LuxMark Benchmarks</a>

<a href="http://www.anandtech.com/show/5699/nvidia-geforce-gtx-680-review" target="_blank">Anandtech: Retaking the performance crown</a>

&nbsp;

&nbsp;