Since I started programming GPUs, a few generations of these cards
have been released, most recently the
GTX580. I always wondered how
good these actually are and how programs written for one GPU scale to
the next generation.
We have a test suite available here, which is at least of importance
to us: The
CUV library. Apart from unit-tests checking correctness of
the implementation, the library also has a few "tests" which measure
execution speed on GPU and CPU for comparison.
Instead of inventing new tests for the benchmark, we simply reuse the
speed tests which come with CUV, as they are probably relevant
use-cases that the programmers optimized for, anyway. A small perl
script that now resides in the
scripts/
directory of CUV now
identifies speed tests by their name (
*_speed
), runs them and parses
their output. We simply collect all values in a defined order and save
them to a file. A larger number of these files can then be analyzed
using a python script included in the same directory, which uses the
superb
matplotlib library to draw a bar chart. We use a reference GPU
to compare relative timings.
To cut a long story short, here are the results comparing GTX285,
GTX295, GX2-9800, GTX480 and GTX580:
As expected,
Fermi generation cards perform a lot better than the
older generation, the
GTX580 also improves on GTX480. Some operations,
which are apparently not implemented well, perform worse with newer
generation cards. The real work horses of our library have definitely
improved a lot over generations, even though we did not spend time on
optimizing them for the later cards.
We're not the first ones to compare these cards of course.
Legit Reviews compares the frame rate rendered by the GTX480 and GTX580,
finding only marginal improvements.
Brightsideofnews runs many
rendering related benchmarks as well (3DMark Vantage, Unigine Heaven,
Pripyat), with mixed results. However, we're more interested in
general purpose computing (
GPGPU) and in writing algorithms for GPU
hardware which then scale with the new hardware, as it becomes
available.