Puget Systems print logo
https://www.pugetsystems.com
Read this article at https://www.pugetsystems.com/guides/625
Article Thumbnail

Adobe Photoshop CC Multi Core Performance

Written on April 20, 2015 by Matt Bach
Share:

Introduction

When designing a computer there are literally thousands of different hardware components from which you can choose. Each one will affect the performance of your system in different ways and depending on the software you will be using some will be more important than others. In the case of Adobe Photoshop CC, one of the most critical hardware components is the CPU. Even then, there are still hundreds of different CPU models to choose from and each have their own unique specifications.

So the question is: how do you know which CPU will give you the best performance in Photoshop CC?

Before even attempting to answer this question, it is important to understand the two most basic CPU specifications:

  1. The frequency is how many operations a single CPU core can complete in a second (how fast it is).
  2. The number of cores is how many physical cores there are within a CPU (how many operations it can run simultaneously).

In an ideal world a CPU that has the same frequency but twice the number of cores would be exactly twice as fast. Unfortunately, making software utilize multiple cores (and do so effectively) is difficult in most situations, and almost impossible in others. Add in the fact that higher core count CPUs tend to have lower operating frequencies and it becomes even more difficult to ensure that you are choosing the best possible CPU.

In this article, we want to find out how well Photoshop CC can utilize multiple cores - known as multi-threading - to help determine what type of CPU (either one with a high frequency or a high core count) will give you the best possible performance. If you want to skip over our testing procedure and individual benchmark results and simply view our conclusions, feel free to jump ahead to the conclusion section.

Test Setup

To help us determine how many cores Photoshop CC is able to use in a variety of situations, we based the majority of our testing around two benchmarks: Hardware Heaven's now-discontinued Photoshop benchmark and ClubofOne's Photoshop Speed Test. However, since we want to determine what actions in Photoshop are multi-threaded and not just benchmark the performance of our system, we had to make a few changes to the benchmark scripts.

First, for both benchmarks we dramatically increased the test image size. We increased the Hardware Heaven's test image to 500MB and the Speed Test's image to 2GB. This was done so that the various actions we will be recording would take long enough for us to get accurate results. Second, we added "stop" actions to the Speed Test action list which will allow us to accurately measure CPU core loads and to time how long it took for Photoshop to perform each individual action rather than the entire group of actions.

In order to have a large amount of CPU cores available, we used the following hardware:

Since we want to determine how many CPU cores Photoshop can effectively utilize, we are going to alter how many cores are available by setting the affinity for Photoshop in Task Manager. This way we can accurately benchmark Photoshop with anywhere from a single core to the full ten cores available with this setup.

To analyze the data, we will be presenting our results in terms of how long it took an action to complete compared to how long it took with only a single CPU core. This should give us a clear indication of how many CPU cores each action is able to effectively utilize.

Hardware Heaven Multi-threading Results

The Hardware Heaven Photoshop benchmark is no longer active, but still works great as a basis for our testing as it includes many popular effects such as image resize and rotation, various blurs and a number of other miscellaneous effects. The major change we made to this benchmark was to increase the test image size to 500MB in order to increase the accuracy of our measurements.

Photoshop Image Benchmark

Starting with image rotation, we saw a decent increase in performance going from one core to two and increasingly smaller increases all the way up to five CPU cores. Resizing the image, however, was really only able to effectively use one or two CPU core.

Photoshop Blur Benchmark

Blurs are one of the few effects in Photoshop that are actually capable of using a high number of CPU cores. Not all blurs are multi-threaded (for example, Smart blur can only use one core), but many blurs will actively load every CPU core you make available to Photoshop. However, even though Photoshop is actively loading all the cores, there is a steep drop-off in performance benefits. In fact, none of the blurs we tested showed any benefit to having more than 5 CPU cores.

Photoshop Benchmark

For all the miscellaneous effects included in the Hardware Heaven benchmark script, most only ever used a single CPU core. The lighting effect is the only one that used more cores, and even then there was only a miniscule increase in performance with two CPU cores available.

Speed Test Multi-threading Results

Our second benchmark is based on Photoshop Speed Test. For this benchmark, we again increased the test image size (this time to 2GB since the effects tested are all relatively quick) and also added short pauses between each action so that we could time individual actions. Normally Speed Test is intended to measure how long it takes to complete everything in the script, but for this article we are more interested in each action independantly.

Photoshop Image resize benchmark

Interestingly, we found that resizing the image was able to utilize up to three CPU cores. This is different than the Hardware Heaven benchmark where we only say a single CPU core being utilized effectively. The only other action that showed the benefit of having more than a single CPU core was changing the canvas size which was able to utilize two CPU cores.

Photoshop filters benchmark

The unsharp mask and gaussian blur portions of Speed Test showed that both effects are capable of multi-threading. However, unsharp mask peaks after about six cores and gaussian blur sees diminishing returns after about five cores. 

Photoshop color mode benchmark

Of all the effects we tested, converting to different color modes showed the greatest benefit of having multiple CPU cores. With ten CPU cores we saw up to a six fold increase in performance. That's not perfect, but it is actually pretty decent in terms of multi-threading efficiency. 

Photoshop adjustments benchmark

The final portion of our Speed Test benchmark run involved a number of image adjustments including level, hue/saturation, and brightness/contrast. Hue/saturation actually benefited pretty well from having a high core count, although it leveled off around seven CPU cores.

Multiple CPU Performance

So far, we've only looked at how well Photoshop is able to utilize ten cores on a single CPU. So far, we have seen no indication that Photoshop should be able to utilize larger numbers of cores through the use of a Dual Xeon system with two CPUs but we felt we needed to test it just in case we see an unexpected result. Two CPUs does mean twice the memory bandwidth since only half the RAM is on each CPU so it is possible that we may see higher performance with two CPUs.

For this section, we used the following test system in addition to the X99 system that was used in the rest of this article:

To see if multiple CPUs help, we compared the Hardware Heaven results from our X99 system to three different CPU configurations on our Dual Xeon system:

  • Single CPU only (second CPU physically removed from the motherboard)
  • Dual CPU, but affinity set to only allow Photoshop to utilize the cores on the primary CPU
  • Dual CPU, no limitations set

This should give us a clear indication of how well Photoshop works with our Dual Xeon system and allow us to detect any odd performance issues. Unlike the rest of our results in this article, we will not examine the result in terms of x times single core performance but rather of the raw time in seconds to complete each action:

Photoshop Multiple CPU Benchmark - Blurs

Blurs were one of the best effects for multi-threading in the Hardware Heaven benchmark (with the exception of Smart Blur) so they should have the best chance of showing a performance benefit from having two CPUs. However, if you examine the results you will see that this is not at all the case. We performed multiple rounds of testing, even to the point of completely reloading the OS and replacing hardware but the results never changed significantly. Instead of improving performance, adding a second CPU actually increased the time it took to apply a blur effect by 30-50% 

What is interesting is that with only a single CPU installed into the Dual Xeon system, performance was almost identical to the X99 system which effectively rules out an issue between Photoshop and the hardware we used for our testing. However, once we adding the second CPU performance decreased by about 20-35% for the Field, Iris, and Tilt-shift blur. Setting Photoshop to only utilize the primary CPU helped, but still resulted in a performance decrease of about 10-16% for those same blurs.

Luckily, this drop in performance appears to be limited to the few effects that attempt to utilize a large number of cores. The majority of Photoshop actions showed no difference in performance with the Dual Xeon system:

Photoshop Multiple CPU Benchmark

Considering that having two CPUs technically gives you twice the computing power (and twice the memory bandwidth), it is very disappointing that you will actually see lower performance in Photoshop with two CPUs than you would see with just a single CPU. Why this is the case is a completely mystery to us. We have reached out to Adobe to see if we could get an answer, but so far have not had any luck discovering why there is such a drastic drop in performance. Our best guess is that since Photoshop does not utilize large numbers of cores very efficiently, having to go over the QPI link (which essentially connects both CPUs together) adds enough of a performance hit to completely offset any performance gained by having more CPU cores available.
 
The good news is that this drop in performance only applies to actions that are highly multi-threaded. Single or lightly threaded actions (which are the vast majority of Photoshop) appear to be completely unaffected.

Conclusion

Based on our testing, there are three major conclusions we can come to regarding the multi-threading capabilities of Photoshop CC:

  1. Photoshop does not work well with multiple physical CPUs. Most effects are not impacted, but anything that is highly multi-threaded (like many blurs) will actually take up to 30-50% longer if you have two CPUs versus just one. If you have a system with multiple CPUs, we highly recommend setting the affinity of Photoshop so that it will only ever try to use one of your CPUs.
  2. Most actions in Photoshop are either single threaded or lightly threaded. This means that you will get the exact same performance whether your system has two CPU cores or twenty CPU cores. For these actions, a CPU with a high operating frequency is key.
  3. Multi-threaded actions hit a point of diminishing returns after around 6 CPU cores, and most completely stop improving after 8 CPU cores. This includes effects like color mode conversion, many blurs, hue/saturation, brightness/contrast, and shadow/highlight. The best multi-threaded effect (converting to Lab Color mode) had a decent multi-threading efficiency of about 94%, but most of these effects had an efficiency closer to 80% which isn't so great.

One thing we want to point out is that the raw number of cores different Photoshop effects can utilize is only a starting point when choosing a CPU for Photoshop. Even though Photoshop may at times be able to use eight or even ten physical CPU cores, our testing has shown that it doesn't typically do so very effectively. Because higher core CPUs also tend to have lower operating frequencies, this means that the best CPU for Photoshop will be one with a moderate core count but a high operating frequency.

After examining the results of our testing, we believe that - of the Intel CPUs available at the time of this article - the following three models should give you the best possible performance in Photoshop CC:

Which CPU you choose is going to depend on a number of factors including which chipset you want to use and how much system RAM you need. The Intel Core i7 4790K is a great CPU and probably the overall best of the three, but the chipset it uses is limited to 32GB of RAM which may not be adequate if you work with very large images. For large images, the Intel Core i7 5930K will allow up to 64GB with current technology while the Intel Xeon E5-1650 V3 will let you use up to 768GB of RAM through the use of Registered ECC memory. The 5930K and E5-1650 V3 will both be a bit slower than the 4790K for most Photoshop tasks, but if you need more RAM the performance of the 4790K will be more than offset by not needing to use a scratch drive.

One last thing we want to point out is that our testing only covered the base features that come with Photoshop CC. If you regularly use a third party plug-in our testing may not be accurate. In our experience plug-ins tend to be almost entirely single-threaded (just like Photoshop itself), but there is the chance that a plug-in may benefit from having a large number of cores.

Computer System

Photoshop Workstations

Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.

Configure a System!

Labs technician talking with customer

Labs Consultation Service

Our Labs team is available to provide in-depth hardware recommendations based on your workflow.

Find Out More!
Tags: Photoshop, Hardware, Multi-threading
Comments