Performance is now a feature in every new version of Photoshop and as Photoshop Architect, it’s my job to look for ways to make the software faster and more responsive than ever. We’ve heard from our customers that they perceive improved performance as a feature and a key reason to upgrade to a new version. This video by Senior Product Manager, Zorana Gee was a sneak peek we shared back in January which revealed a hint of the work we were doing for Photoshop CS6.
It used to be that when you bought a new computer, it would run all your existing programs a lot faster. Moore’s Law: twice as many transistors in the same amount of space every 24 months, translated pretty directly into performance: twice the CPU (Central Processing Unit) speed every two years. Moore’s Law is still going strong, but it no longer translates into performance the same way it once did. The additional computational performance provided by new computers now requires significant changes in most software to take advantage of it. There are several ways modern computers provide greater performance than those of 5 years ago, and each of them requires a different kind of change to software.
Multi-Core Processors: Is More Really Better?
The oldest and easiest place to find additional performance is in multi-core processors. All modern desktop and laptop CPUs are multi-core. When chipmakers found they couldn’t make a single CPU run significantly faster with each new generation of chips, they started putting multiple CPUs on a single chip (a multi-core chip is basically multiple CPUs on a single chip). They started with 2, and now 4- and 8- core chips are common.
Photoshop has been able to take advantage of multi-core processors since the mid-1990s, when it was first modified to take advantage of the rare high end computers with multiple CPU chips in them (each with only a single core at that time). But it gets harder and harder to take advantage of each additional CPU core. Photoshop takes great advantage of 2-4 cores. 8 cores doesn’t give you anywhere near twice the performance of 4 on most operations in Photoshop (or in most other programs either). Partly for that reason, the increase in the number of cores per processor is slowing. We don’t expect to see mainstream processors with 16 cores on them, because almost nothing would use them — they would just sit idle most of the time.
Each new feature in Photoshop has to be written to take advantage of multiple cores, and some features that were written when even 2 CPUs were a luxury must be modified or significantly rewritten to get any benefit from a 4- or 8- core machine.
Graphics Cards Give Peformance a Boost
The most dramatic performance increases in modern computers have come in the graphics cards — the circuitry to which the computer’s display is connected. Originally designed to accelerate the drawing of 3D scenes in games, they have become capable of taking on increasingly diverse computational tasks. However, GPU’s (Graphics Processing Units) must be programmed in a very different way from the CPU, and they are still unsuitable for many computing tasks — even those involving graphics. But when they can be put to full use, even a modestly priced graphics card has many times the computational power of the CPU — even one with 8 cores.
Zorana’s sneak peek video (shown above) is an excellent example of this, demonstrating the Liquify command in Photoshop CS6. Its image warping algorithm is ideally suited to the GPU’s capabilities. When running on the CPU and using a large brush (hundreds of pixels), Photoshop could only update the screen at 1-2 frames per second, or even less, making it very difficult to achieve precise results. But using the GPU, even a brush of several thousand pixels on a huge image is completely (ahem) fluid, responding in real time to brush strokes with pen or mouse. We kept the CPU version of the code around so that users without GPU’s capable of running the Liquify filter can still use it (at the same speed as before).
Accomplishing this was no small feat and often engineers spend the entire year just devoted to refining and improving performance. However, this is the reason why we say “performance is a feature.” We give it just as much attention as some of our marquis features, realizing it’s key to your workflow and can only help you bring your vision to life with more speed and efficiency.