Maddeningly, Photoshop CS5 still does not support any native CUDA-accelerated functions, leaving us in the same boat as After Effects...until we realized that some plug-ins for Photoshop actually use CUDA. Sweet! When we found Digital Anarchy’s Beauty Box Photo plug-in, it was love at first sight.
The skin smoothing tool is subtle but freaking awesome in its ability to convincingly wipe years off of portrait subjects with only a few clicks. Not surprisingly, such post-processing takes a fair bit of work, and we decided to push Photoshop to exhaustion by throwing a massive 29 000 x 14 577 portrait at it.
Based on our prior testing work with CUDA, these charts shouldn’t come as a surprise, but we never get tired of gaping at the benefits of a solid GPGPU implementation. Without CUDA, we again see a 5% to 10% performance hit from enabling Hyper-Threading, and the jump from two cores to four shows much greater gains than from four to six. Turn on CUDA, though, and nothing else matters. Our job finishes right around three minutes regardless of HT or core counts. Without CUDA, the best Photoshop can manage is 12 minutes. The difference is like night and day.
Without CUDA, CPU utilization remains high, gaining only a little breathing room as core counts increase. Despite impairing performance somewhat, Hyper-Threading does help lower the floor on utilization and bring down average CPU load.
With CUDA, our benchmarking times may not change, but CPU utilization plummets. This would indicate that the GPU could now be the bottleneck and the load that’s left for the CPU is now being shared among more cores, dropping the average utilization. This is important to note if you need to run other apps alongside a batched Photoshop work load, for instance.
Note that there is CUDA support for encode acceleration under Photoshop CS4, but it requires purchasing the Elemental plug-in and will only work if you’re running a compatible Quadro card. Unlike the text file hack we detailed earlier, there is no simple work-around to get past the Quadro requirement for CS4.