Can OpenGL And OpenCL Overhaul Your Photo Editing Experience?

Benchmark Results: GIMP

Our early GIMP testing threw us a bit of a curve ball. We originally set out to test with the GEGL effects bilateral filter, edge-laplace, and motion-blur. However, in repeated testing, we found that the edge-laplace and motion-blur tests were coming back with identical results on the A8-based desktop platform when running with OpenCL enabled, regardless of whether we were testing with APU graphics or our discrete Radeon HD 7970 card. The 7970 should have blown the APU out of the water, or at least been decisively faster.

Discussions with AMD and developers confirmed our suspicions: we were hitting a CPU bottleneck on the A8. There simply wasn’t enough compute work happening for the GPU to make its presence felt. This raises an interesting value point: if your workloads aren’t sufficiently demanding, depending on how your app is coded, you may not realize as much GPU-assist benefit as expected.

For our purposes, we had to modify our tests in order to increase the processing load to demonstrate GPU compute scaling. We replaced edge-laplace with Gaussian blur, cranking up the Size X and Y variables to 20.0 each. We kept the motion-blur filter, but increased the Length parameter to 100 and Angle to 45. This gave us the following GIMP results.

In these and subsequent tests, you’ll notice the obvious results gap next to our HP notebook where OpenCL results should be—because today’s Sandy Bridge-based HD Graphics engines don’t support OpenCL (and we still haven't been able to get our hands on any Ivy Bridge-based Core i5 machines). Still, we left the Intel platform in this mix for comparison, because there are some cases in which the performance of Intel’s CPU working only in software makes for an interesting counterpoint to GPU-based acceleration. After all, with GPU-assist still in its toddler stage and many applications not yet optimized for the new technology, it’s important to keep one eye on how non-accelerated platforms behave.

In these GIMP tests, though, the benefits of OpenCL-based GPU acceleration are glaring. Even stating the difference as a percentage or multiple seems irrelevant. The point is that without acceleration, these filters are nearly unusable on any system. Workflow comes to a complete stop as the system creeps through adding the blur one block at a time. With OpenCL turned on, suddenly we see very even, expected performance scaling as we edge up from mobile to desktop APU and APU into discrete. Note how it’s not just the graphics processor doing all of the work. Depending on the test, the CPU side still contributes another 20% to 40% to the end result.

Of course, this is true when a suitable workload is present. Remember that we had to modify our original testing in order to expose more noticeable scaling from the GPU. Without that deliberate pressure, AMD's x86 cores stand in the way of greater utilization of graphics resources. We're certain that software developers know what they're up against when it comes to balancing resource utilization, and have to assume that what we're presenting might become a more prevalent condition as developers code for highly parallel operations. Today, expect the impact to be somewhat more muted.

  • ilysaml
    Now Adobe uses both CUDA and OpenCL that's superb.
    Reply
  • alphaalphaalpha1
    Tahiti is pretty darned fast for compute, especially for the price of the 7900 cards, and if too many applications get proper OpenCL support, then Nvidia might be left behind for a lot of professional GPGPU work if they don't offer similar performance at a similar price point or some other incentive.

    With the 7970 meeting or beating much of the far more expensive Quadro line, Nvidia will have to step up. Maybe a GK114 or a cut-down GK110 will be put into use to counter 7900. I've already seen several forum threads talking about the 7970 being incredible in Maya and some other programs, but since I'm not a GPGPU compute expert, I guess I'm not in the best position to consider this topic on a very advanced level. Would anyone care to comment (or correct me if I made a mistake) about this?
    Reply
  • A Bad Day
    How many CPUs would it take to match the tested GPUs?
    Reply
  • blazorthon
    A Bad DayHow many CPUs would it take to match the tested GPUs?
    That would depend on the CPU.
    Reply
  • esrever
    Would be interesting to compare the i7 ivybridge against trinity in openCL
    Reply
  • mayankleoboy1
    why no nvidia cards here?
    Reply
  • mayankleoboy1
    any CUDA vs OpenCL benchmarks?
    Reply
  • de5_Roy
    can you test like these combos:
    core i5 + 7970
    core i5 hd4000
    trinity + 7970
    trinity apu
    core i7 + 7970
    and core i7 hd 4000, and compare against fx8150 (or piledriver) + 7970.
    it seemed to me as if the apu bottlenecks the 7970 and the 7970 could work better with an intel i5/i7 cpu on the graphical processing workloads.
    Reply
  • vitornob
    Nvidia cards test please. People needs to know if it's better/faster to go OpenCL or CUDA.
    Reply
  • bgaimur
    vitornobNvidia cards test please. People needs to know if it's better/faster to go OpenCL or CUDA.
    http://www.streamcomputing.eu/blog/2011-06-22/opencl-vs-cuda-misconceptions/

    CUDA is a dying breed.
    Reply