On Sun, 6 Apr 2014, Aaron Boxer wrote:
>
> Well, I can't speak for other projects, but my prototype is based on a GPL CUDA project, and they post the following benchmarks
> for compression:
>
>
http://apps.man.poznan.pl/trac/jpeg2k
These benchmarks seem to be three years old. Hardware is continually
changing and three years is a long time in hardware years.
The "Core 2 Duo" CPU is a very poor performer compared with today's
available CPUs.
When comparing performance on a "Core 2 Quad", I am seeing as much as
16X real performance gain on more modern CPUs.
> Benchmarks should usually be taken with a large grain of salt; they
> often are constructed to make the benchmarker's preferred library
> look good.
Of course. A common approach is to emphasize larger image sizes which
make the results look better. Larger image sizes provide more
opportunity for parallel processing. What is really important are the
image sizes used for a particular application (the one the user
happens to be interested in). For full-color images, 12 mega-pixel is
already a pretty large image. Many useful images will be only 1 or 2
mega-pixel since this represents what users can directly see with
commonly available display hardware.
> For small images, I think CPU will win over GPU, because of the memory bottleneck in transferring to the GPU and back to main
> memory.
> Although NVidia just announce plans to eliminate this bottleneck with something they developed with IBM: NVLink. Supposed to be
> available in 2016. But, for large images, GPU is going to flatten the CPU.
It is always necessary to get the data off of disk and then back onto
disk. As the encoding/decoding gets faster, this becomes a more
serious concern. The CPU has an advantage that the data is closer to
it.
The rates for the fastest GPUs are unrealistic rates for a whole
system. The bottleneck gets moved elsewhere.