If there is one thing that Adobe Photoshop and Lightroom users tend to fixate on, it’s performance, particularly how each leverages the CPU and GPU. So, I find it surprising that more hasn’t been written about the recent GPU enhancements for opening and saving files that was introduced in Camera Raw 14.3. More details of what Adobe have to say about this can be found in the release notes
I suspect the reason that little has been made of the enhanced GPU support is that Camera Raw isn’t particularly easy to use when working with multiple images, which may explain why relatively few users using the multi-image workflow. On the other hand, Lightroom Classic, which doesn’t currently benefit from GPU acceleration while saving files (exporting) is ideal for this type of workflow. Hopefully, we’ll see this addressed in the future.
Having drawn attention to the enhanced GPU support I expect readers will be keen to know how much improvement can be expected and whether their particular computer + GPU configuration will benefit. Again, Adobe have provided updated information on system requirements, which can be found here.
The improvements in ‘Open’ and ‘Save’ described are based on a combination of both CPU and GPU rather than just the GPU. This is important because simply transferring the workload from the CPU to the GPU would leave the former idle for the duration of the ‘Save’ process, which may not be the best use of very powerful resources.
While there’s lots of other helpful information in the documents linked above, the most important part, in terms of GPU support for ‘Open’ and ‘Save’, is shown below.
Notice that the memory requirements are actually a lot more onerous than the minimum requirements, and particularly so when the GPU is sharing memory with the CPU, etc. Does this mean that users with less memory than specified above will miss out? Possibly! However, to check whether your particular configuration can benefit requires a bit of tweaking to Camera Raws Performance > GPU Preference as shown in below screenshot.
Camera Raw checks the GPU capabilities during launch, and if it meets the requirements for full GPU acceleration will set the preference to ‘Auto’. If the test fails, the preference will be set to Off, and while we can manually override the preference and maybe even be able to turn on full acceleration, it’s likely that only very limited improvement will be seen in save times. By way of example, I have a late 2019 MacBook Pro i9 with an AMD Radeon Pro 5500m GPU with 4GB of dedicated VRAM. The GPU fails the initial test because it doesn’t have sufficient dedicated VRAM.
So, now that we know how to establish whether a particular GPU will provide full acceleration it’s time to check the degree of improvement. For this, I’ve used three Mac M1 based systems and the Intel i9 MacBook Pro mentioned above. The three Macs are:
- Mac mini 8-core M1 with 8-core GPU, 1TB internal SSD and 16GB of unified memory;
- 16-inch MacBook Pro 10-core M1 Pro with 16-core GPU, 2 TB internal SSD and 32GB of unified memory;
- Mac Studio 20-core M1 Ultra with 48-core GPU, 1TB internal SSD and 64GB of unified memory; and
- 16-inch MacBook Pro 8-core i9 with AMD Radeon Pro 5500m 4GB VRAM, 1TB internal SSD and 16GB ram.
I loaded 100* Canon EOS R5 files into Photoshop hosted Camera Raw 14.3, applied lens corrections, Auto Settings in the Basic panel and default sharpening. The Camera Raw ‘Save’ panel was configured for full size, Quality ’12’ JPEG. A 2TB Samsung T5 USB-C SSD was used for the original and saved files. Using the T5 meant that the likelihood of the faster SSDs in the M1 Pro and Ultra helping the SSD read / write times would not occur.
The averaged results from 4 tests on each computer are shown graphically below.
Taking the Intel based i9 first, notice that enabling full GPU acceleration on the system has only marginally improved the time to save the files. Furthermore, the CPU and GPU were never even close to being maxed out. However, when GPU acceleration was disabled, the CPU was maxed out for the duration of the test. Therefore, in this instance, manually setting the GPU to full acceleration is of little benefit because the necessary VRAM is not available.
We can also see from above graph that the time to ‘save’ the 100 files as JPEGs on each of the M1 based systems is substantially better than the Intel i9 based based system. I suspect, had the Intel based system had the minimum requirement of 8GB of VRAM, then it would have performed much better. Would it have beaten the the Mac mini M1? I doubt it.
If we now consider how the Mac mini M1 performed we can see that it just manages to meet the minimum memory requirements for full GPU acceleration. Therefore, it doesn’t benefit to the same extent as the M1 Pro or Ultra from enabling full GPU acceleration. Even so, it’s 2.5 times faster at saving the files than the Intel i9 MacBook Pro.
The comparison between the M1 Pro and Ultra are where things get more interesting. The M1 Ultra has three times the number of GPU cores and double the number of CPU cores as the M1 Pro, yet the results are probably closer than the core count would suggest. Is the less than expected difference due to throttling or poor utilisation of the GPU? Not that I could see! In fact, during the GPU enabled tests, the GPU and CPU cores on each ranged between 80% and 100% throughout. There was no sign of the M1 Pro maxing out the CPU or GPU for prolonged periods nor was there any indication that that the M1 Ultra was cruising along just enough to look busy. Based on what I was seeing throughout the tests, my guess is that there is scope for further optimisation, but not to the extent that would allow for the M1 Ultra being 3 times faster than the M1 Pro.
In closing, I think it important to note that the purpose of this blog post was to highlight the new enhanced GPU support in Camera Raw 14.3 and how each of the M1 based Macs used in the tests benefit from same. Hopefully, I’ve done enough to demonstrate that Adobe have at least started to optimise the performance of applications of interest to photographers using M1 Macs rather than simply port them from Intel x86 to Apple ARM 64 code. I’m also hopeful that we’ll see further improvements over the coming months, especially those of us who prefer Lightroom Classic to Camera Raw.
Update 22 April 2022
(*) I’ve also ran tests with 1000 EOS R5 files and found the same pattern of results to those for the lesser number of files. The important takeaway from the extended tests is that even after 30 minutes of near maximum CPU/GPU use, none of the systems throttled.
In below screenshot, I’ve shown Activity Monitor graphs for the M1 Ultra CPU and GPU at approximately 1/3 way through exporting 1000 EOS R5 files. The graphs demonstrate that both the CPU and GPU are well loaded during the export process.