CPU, GPU, RAM: What should you update?

I haven’t met a photographer yet who wouldn’t appreciate a more powerful computer. We push our machines very hard, and it’s no fun to sit and wait to view and edit images. So naturally, we tend to dream about a “better” computer. But what does that mean? Should I get a really powerful GPU (Graphics Processing Unit) unit because I work on images? Maybe more RAM, I heard I should get 64GB from a guy who’s never seen how I work. Oh, wait, I need a bigger and faster SSD (Solid State Drive).

Each of these upgrades is obviously going to cost you and unless you want to throw huge amounts of money at the problem and pray it works, you should probably get a better idea of what you’re going to get for your money. Even little splurges have a cost. You might not care about spending an extra $200 for an upgraded GPU on top of the $2500 you’re already planning to spend, but should you? You could pay for an extra couple years of Lightroom and Photoshop with that money, so ideally you’re not just guessing that it’s going to help.

While nothing’s a sure bet, there are some simple ways you can help easily determine where spending some of your hard-earned cash will give you the most increase in performance. When it comes to speed, there are several factors which tend to play a role (in no particular order of importance, as it varies case by case).

  1. The software you use. Some programs are much more efficient than others for a given task. For example, many sports and wedding photographers love Photo Mechanic for its speed in culling images. And this can all change over time. Some future Photoshop update could slow down due to new features or speed up due to optimized code.
  2. The clock speed of your CPU (Central Processing Unit). This is a measure of raw speed that affects pretty much anything that does not run on the GPU.
  3. The number of CPU cores. Software can be optimized to be broken up into different tasks that can be processed simultaneously by multiple cores. But code which is not optimized for multiple cores, may see no benefit at all. An analogy would be hiring 4 people to paint your house (where they can effectively break up the work and get the job done faster) vs hiring 4 people to cook your dinner (where they’re more likely to trip over each other in the kitchen than feed you more quickly).
  4. The GPU. This is a complex mix of GPU cores, speed, and GPU RAM (unless you’re on Apple Silicon, where the GPU gets RAM from a shared pool). I’m just going to lump these together, and it should make more sense why when you see the testing below.
  5. The amount of RAM. This is where data resides when it is being processed. If you run out, you’re computer may use the (much slower) hard drive to help manage the temporary data or it may simple give you an error.
  6. The speed of RAM. This affects how much time the CPU may spend waiting to retrieve or store temporary data.
  7. Hard drive size. Hard drives may be used to an extent as working memory (such as scratch disks in Photoshop). In situations where the free space runs very low, this can suddenly switch from a non-factor to a major performance issue.
  8. Hard drive speed. This affects the time needed to get and store data, which may affect the speed of opening applications or opening and saving images.

This isn’t a comprehensive list and I’ve simplified a few concepts, but it covers all the things that make a big difference for purchasing decisions. And on this list, all but #1 are hardware factors which you may potentially be able to improve through an upgrade. The key to knowing which is important is understanding which of these represent a bottleneck to the tasks that are slowing you down. Any given task likely required multiple sub-systems (CPU, RAM, etc), but slow performance is often the result of a specific component taking a very long time for a specific task. The key to knowing where to invest in your computer is knowing where an investment might help address a bottleneck. And we can get a very good sense of the opportunities by understanding the bottlenecks we have now.

Using the tests below, you can help identify the bottlenecks affecting your work. Of course, this might change. The software industry as a whole has been doing a lot of work on optimizing code for multiple cores and for GPUs, and so a future software upgrade might remove a bottleneck you have today. But knowing your current bottlenecks is crucial, and you can make an educated guess from there as to how much margin of safety you might want given how long you expect to use a new computer or hardware upgrade.

My video tutorial shows how to test on MacOS using “Activity Monitor”, but I’ll add details below on how to perform similar tests on Windows using “Task Manager”.

Quick steps to setup Activity Monitor on MacOS:

  1. Go to Applications / Utilities / Activity Monitor
  2. Click on the “memory” tab in the main Activity Monitor Window (you can go to Window / Activity Monitor if it isn’t showing)
  3. Right click on the column headings to show and hide columns until your screen shows the same columns as mine. You can resize and reorder the columns by clicking and dragging.
  4. Go to View / Update frequency and set it to Often for 2 second intervals. This will give you a faster read on transient processes (1 second may be too variable).
  5. Click on Window / CPU History to see GPU usage over time. Click and drag the edges to get a nice display of all cores. You’ll probably see every other core shows little activity, these are “virtual cores” and the total number of cores is probably 2x the physical number of cores in your CPU.
  6. Click on Window / GPU History to see GPU usage over time. You may see more than one GPU depending on your system.
  7. You can also check or uncheck Window / Keep CPU Windows on Top if you want to keep both CPU and GPU history visible while you test.

Note that there are several columns available for memory. It’s a tricky subject, and I would just show “memory” as a way to gauge which apps are eating a lot of RAM. Ultimately, the green/yellow/red memory pressure graph is the best indicator of when the total system RAM is insufficient for what you and the operating system are collectively consuming.

 

Quick steps to setup Task Manager on Windows:

  1. Search for “Task Manager” in the start menu
  2. In the “processes” tab, right click the column headers to add “GPU”. You can then see CPU and GPU percentage here.
  3. Click on the “performance” tab to see graphs over time of CPU and RAM usage. You can also click “open resource monitor” at the bottom of the performance tab and then click the “memory” tab to see a plot and % of physical RAM used.
  4. Go to the menu for Options / Always on Top if you want to keep Task Manager visible as you test.

 

Tips for watching these metrics:

  • Test in a real environment. Background applications like anti-virus, backup software, open web browsers, etc all consume important resources. But if that’s how you use the machine, then that’s how you should test the machine. The goal of this testing is not better numbers, the goal is to get solid data to help you make a decision. The exception to that is if you’re trying to optimize your software setup, which you should do before you get collect data to inform hardware purchases (since you might be able to get more out of the hardware you have).
  • The metrics generally apply to specific tasks, not to programs on the whole. For example, some parts of Photoshop are optimized for the GPU and others are not. To get a true sense of the bottlenecks, you should run a variety of tasks representing the activities where the machine feels sluggish to you. Just do a variety of tasks you normally do and watch the metrics.
  • These are all meant as helpful guides. It’s not an exact science, so always use good judgement. Hitting a bottleneck on a process you normally let run when you step away from the computer isn’t all that important. It doesn’t matter if your videos take 2 hours or 6 to render if you’re going to be sleeping when it happens.
  • If you have questions on the options, see these support articles on Activity Monitor and Task Manager

 

CPU bottlenecks

The main indicators for CPU performance is CPU %. A process which consistently runs at a high percentage is heavily dependent on the speed of your CPU and higher clock speed would help. A process which consistently runs around 100% is not optimized for multiple cores. In general, CPU clock speed matters tremendously for Photoshop, with many operations still using a single core. Multiple cores are much more important for importing and exporting in Lightroom, where you’ll likely see CPU usage vastly higher than 100%.

As a general rule of thumb, I find that any bottleneck that shows 100% CPU usage is typically one where I’ll get the least boost with a computer upgrade. This reflects a software bottleneck and most hardware upgrades are more impressive with software which is optimized to utilize the full capabilities of a modern computer.

 

GPU bottlenecks

A good indicator for GPU utilization is the GPU history. You can watch the GPU%, but it tends to move too erratically to give you the best picture. If the GPU is sitting near 0 all the time, you clearly won’t get an immediate benefit from upgrading. If it is sitting around 30% or more for decent stretches, it may not quite be the biggest bottleneck, but upgrading is likely to offer meaningful gains in performance. If it is running up to much larger values during important slowdowns, then an upgraded GPU is very likely to be beneficial.

Another test (new Photoshop 2022) is under Help / GPU compatibility. If you see red X’s, then you are probably going to find some Photoshop features are greyed out and others run slowly. If you don’t see all green, investing in a GPU is a good idea. You should definitely have a GPU that meets Photoshop’s minimum requirements.

You’ll probably be surprised at how little your GPU is actually used for most photography apps. It generally has much more benefit for gaming and video. And the benefits are very app-specific, some take advantage of the GPU more than others. Most photographers won’t see a lot of benefit from a top of the line GPU.

 

RAM bottlenecks

The amount of RAM (memory) is crucial. When you have more RAM than you need, the system bottleneck will be in the CPU or GPU. But when RAM is limited, the computer will likely start to depend significantly on the hard drive and cause massive slowdowns. Which is to say adding more RAM will either help a lot (if you don’t have enough) or hardly at all (if you consistently have enough). Adding more than the computer uses won’t give you any benefit.

RAM speed bottlenecks are hard to test without physically swapping it. But generally, this isn’t a huge factor for performance and I wouldn’t worry about it too much. The total amount of RAM is generally much more important.

I would say that 32GB of RAM is the sweet spot for most photographers these days. You can definitely get by with only 16GB, but you’d likely see faster results with 32. I’ve personally used 32GB for years with great results most of the time, but have just upgraded to 64GB to avoid a few current slowdowns I run into and give myself flexibility as my software and needs continue to grow. If you work on very large and complex images or don’t care about cost, then 64GB is a good option.

A quick note on the various memory options in Activity Monitor. I consulted with some very deep experts on the topic and they didn’t know the answer. I’ve read a lot of information online that claims to be true, but then you’ll quickly find some counterexample which a given interpretation is dead wrong. Apple seems to be a bit deliberately cagey on what the various memory columns are and they’ve changed a bit over time. The “memory” and “real memory” columns can give you some idea as to which applications are consuming a lot of memory when you start really pushing the memory pressure into yellow/red territory. I am told these values represent actual RAM (not virtual use of the disk), and that things get very confusing with shared use of some memory across multiple processes. Don’t get too worried about the details, you’ll end up pulling out your hair trying to figure out why one is typically larger but then sometimes the other is much larger. But it can still be helpful to identify problems (such a faulty app consuming too much RAM).

 

Hard drive bottlenecks

The most important decision here is simply to ensure you have enough space to hold critical data. The picture gets a little murky, as you can often buy cheaper external drives as you need more storage rather than buying a very expensive internal SSD now. I believe a good rule of thumb is to buy a new computer with 2X the amount of internal storage you actually use now (with a goal of keeping a minimum of 100-200GB of space unused at all times). This assumes you have stable patterns of usage, you’ll have to be more thoughtful if you recently started producing video for example. It also assumes you aren’t using the internal storage in a wasteful manner now. Tools like DaisyDisk can be very helpful to help see what’s consuming space now in case you want to move some files to an external drive or just put them in the trash.

Hard drives of course also affect the speed of the computer in a couple ways. First, a fast hard drive will allow you to more quickly open applications and images. The difference between a cheap HDD (spinning hard disk drive) and SSD (solid state drive) can be massive. And there are various degrees of SSD speed, which can make a different to a point. However, if you are compressing your images, the opening and saving of those images is actually bottle-necked significantly by the CPU (which is not multi-core optimized at this time). I find that reading an uncompressed image is 3X faster an saving is about 20X faster. So a faster drive may offer very little benefit opening and saving compressed images.

Hard drive space also matters. Your computer does not use RAM exclusively for processing data, it also uses the hard drive. This is especially true when RAM is fully in use, but it can be a factor at any time (memory management is extremely complicated). For this reason, prefer to keep at least 200GB of free space on my internal drive at all times and would recommend you keep at least 100GB free. Once the free space gets too low, you’ll start to see erratic moments where things slow down. And eventually, you’ll run into errors when you’re completely out of space.

 

Summary of where to invest in computer hardware:

Here’s a quick recap of how to interpret the data:

  • The CPU % is 100% or more for long periods of time => A faster CPU clock speed are likely to help
  • The CPU % is much more than 100% for long periods of time => More cores are likely to help
  • The GPU % is >30% for long periods of time or close to 100% for short periods of time => GPU upgrades are likely to help
  • MacOS: “memory pressure” shows long periods of yellow or bursts of red => More RAM is likely to help
  • Windows: RAM performance graph shows in use RAM running high => More RAM is likely to help
  • Available space on your internal drive is < 100-200GB => A larger internal drive or freeing up space is likely to help immediately (but be sure to plan ahead for the data you’ll add in the years to come, 2x your current usage is a good target)
  • Applications launch slowly or you open/save uncompressed images => A faster drive is likely to help

It’s also important to keep a few things in mind:

  • Your results are subject to change as your software improves or your patterns of use change
  • Buying a $200 upgrade in the face of uncertainty might be a good bet if the alternative is a risk that you’ll have to replace the whole computer a year or two early

If you’re just looking for general photography advice, I would say the following in 2021 is ideal:

  • Fast CPU clock speed is key.
  • Don’t sweat the GPU (get one, but don’t pay for big upgrades unless you need for games/video), put the money towards CPU and RAM.
  • 32GB RAM, 64GB if you can splurge.
  • A SSD with 2x the internal storage you currently use.
Greg Benz Photography