Building a PC for Darktable

I’m gearing up to replace my (old) pc (i5-2500K) with something newer. The most performance critical software I run is darktable. I’m running Linux on the PC. The rebuild will probably be AMD based.

Is it better to stay reasonable with the CPU with a Ryzen 5-5600 or thereof (6 cores) and add a GPU for acceleration via OpenCL?
Or is it better to invest the same money in a better CPU with more cores?
If a GPU is better, is the amount of memory important?

GPU is better than CPU, generally the more VRAM the better. At least 8GB, but 12 if you can. Do a bit of research about your distro and the drivers you want to rum, AMD’s history is quite poor in this regard.

1 Like

I gave AMD a try and bought a RX 7800 XT. I was impressed by the results. See my benchmarks: linux amdgpu and opencl with RX7800XT | reox's projects
(I provided them also in the benchmark list: GPU benchmarks in darktable - which is also a good way to check what to buy)

Of course, comparable nvidia cards are faster, but they usually offer less VRAM.

I rebuilt both my workstations using AMD hardware:

Ryzen 5 5600X 6-core (12 threads), 32 GB RAM - older machine
Ryzen 7 5700X 8-core (16 threads), 64 GB RAM - newer machine
both with Radeon RX 6600 8GB graphics card

Previously I had Intel processors with NVidia cards. I’d say using AMD stuff is a good bang for the buck. On Fedora which I use NVidia support was clunky - I had to use rpmfusion repo. AMD open source drivers work great as is. For OpenCL I installed a separate package - rocm which is directly available on Fedora 40. DT is quite fast on both machines, though I mostly use ART and RT these days.

1 Like

Thanks, this is great info! You have some fancy hardware to test with…

From your benchmark table, I see the following takeaways:

Ryzen 5 7600X to Ryzen 9 7900: 10.5 → 6.4
Doubling the number of cores helps, but does not double the perf

Ryzen 5 7600X with Radeon RX 6500 XT 4GB: 10.5 → 4.9
Adding even a lowly RX6500 more than doubles the perf

Ryzen 7 2700X with Radeon RX 7600 8GB: 13.2 → 2.8
Pairing a mediocre CPU with a good GPU quadruples the perf

Thanks !

1 Like

I’m on Ubuntu Mate and would like to stay there. I’m aware that drivers can be an issue, especially with older cards.

with the GPU, the CPUs is used less and I think it even does not use multithreading that much. Thus, it does not help if you have 6 or 12 cores. However, I believe it helps if the CPU itself is fast. Typically, less cores means faster single core speed for the same price. If you do not have a reason to buy a 12 core CPU, then buy 6 cores with faster speed.

What I also found interesting was the upgrade to nvme SSD. I had a Samsung 860 with SATA before and upgraded to a Samsung 990Pro with PCIe. Loading thumbnails was never quicker.

1 Like

It makes sense that the CPU is not as important if it just shuffles data from and to the GPU.

I know that a fast SSD is great for loading thumbnails fast. But it has the downside, that I have to shuffle data around between a fast work-drive and a slower archive location.

It actually looks like I just upgrade to a decent GPU and get a nice performance boost. If I upgrade the CPU, I have to upgrade the motherboard and memory as well, increasing the initial cost.

you can also put the thumbnail folder on the ssd and keep the images on the slower drive (of course, that does not help when creating the thumbnails).

You have to be careful when upgrading the GPU: Newer models need PCIe 4.0 to get decent performance and old boards and CPUs typically do not have that. I think it should still work but don’t take my word for it - I had boards where some PCIe cards would not work - even though they should.

1 Like

Yeah, I know that new and old hardware don’t always mix well. But I may buy a GPU used and start with that. Just found a GTX 1050 for $50 shipped locally. I think it should work with my current PC.

How much RAM does it have? I’m asking because of RAM is tight, darktable will split the image and process it in overlapping blocks (‘tiles’). The overlap can be significant, and cause slow-downs that negate any performance benefit of GPU acceleration.

Don’t buy the card, unless it has at least 4 GB.
My 6 GB 1060 often has to tile with > 16 Mpx images.

1 Like

My 6 GB 1060 often has to tile with > 16 Mpx images.

Thanks for the hint. The card has 4 GB memory. I shoot with a Canon R (35Mpx).

How much does tiling reduce performance?
How do you know, if tiling happens?

https://docs.darktable.org/usermanual/development/en/special-topics/mem-performance/#how-to-test

It depends on the module and settings. Recently I analysed a case where it took away maybe 70%.

See here for an example:

You have some knowledgeable answers here and for my vote GPU is the big game changer for DT. I take a simplistic approach that if a computer will be good for gaming it will be good for DT.

A buddy had a spare GPU (NVIDIA GeForce GTX 750 with 4GB memory). I’ve run the benchmarks liked by @reox and got the following numbers:

setubal.orf: 51s CPU only, 40s with GPU
arecibo.orf: 66s CPU only, 18s with GPU

In both cases, there was a lot of tiling. How can I find out how much GPU memory I need to avoid tiling ?

I built my windows system in 2018 using an Intel i7-8700, 16 GB of memory and the Nvidia GTX 1050, 2GB GPU. Prior to my using darktable, performance with all of my applications, including Photoshop and RawTherapee was very good.

When I first started using darktable with release 4.2, the tiling issue was significant. Also, zooming in and out was slow at times. After I upgraded to the Nvidia RTX 2060 6GB GPU (purchased 2nd hand on eBay) all of these problems went away completely.

1 Like

@stuntflyer Your performance-limiting tiling went away completely with a 6GB GPU. How big (Mpx) are your images?

As large as from the Nikon D9, effective Pixels 45.7 MP. File size over 33MB.

Thanks @stuntflyer, that is encouraging. So 8MP should be enough for my raws. Wondering why 4MP was not doing so great.