Question about PC upgrade for image editing -- Darktable is slow

Finally getting around to setting up my desktop computer and I’m finding it to be slower than I thought it would be while using Darktable.

When I zoom in and/or scroll on a Fujifilm RAW file, I get the “Working” displayed for a few seconds. For some reason, I thought that zooming/scrolling would be nearly instantaneous.

My question is, what hardware do I need to upgrade to speed up image editing in Darktable?


My desktop configuration is as follows.

Motherboard: MSI B350M

CPU: Ryzen 3 2200G

Graphics: I’m using the CPU’s built-in graphics.

RAM: 16GB

OS: Linux Mint 19.1

Monitor: LG 4k 60hz monitor via HDMI


I thought it might be that I’m using the integrated graphics of the Ryzen 3, but the following article claims that I won’t see much of an improvement by upgrading to a high-powered graphics card.

The article in the link above also claims that CPU is the single most important factor in image editing and that image editing software “takes much greater advantage of increased single-threaded performance than increased multi-threaded performance, especially beyond four cores.”

Would I see a significant difference upgrading to a Ryzen 7 CPU and buying a dedicated graphics card?

That article talks about software that does not use the GPU for processing. Darktable is able to do that.
You can take a look at this thread:

Many people post results comparing processing time with GPU and CPU. Increase is dramatically.

2 Likes

That’s nonsense. I just measured Amaze demosaic of a 80 MP file in RT:

one core: 6 seconds
two cores: 3.1 seconds
four cores: 1.78 seconds
eight cores: 1.05 seconds

Doesn’t scale perfectly, but quite well.

Measured on my 6 years old AMD FX 8350 8-core cpu with not the fastest RAM (that’s in fact the limiting factor at my system)

3 Likes

Thanks for the link, but it is a bit too technical for me and hard to follow.

What you guys are telling me is that I’d notice a significant difference in speed with Darktable if I upgrade my CPU to a Ryzen 5 or 7 as well as install a dedicated graphics card.

Something like this would work well for a graphics card? Price seems fairly reasonable.

Biostar Radeon RX 550 4GB GDDR5 128-Bit DirectX 12 PCI Express 3.0 x16 DVI-D Dual Link, HDMI

Hi @Samuraidog, and welcome!

If you perform the two tests that Alessandro wrote about (see link in @pphoto’s post, above) that will give a good indication on what you can do to make dt perform faster.

Alessandro clocked his rig at

  • 13 seconds with openCL, and
  • 80 seconds without openCL.

What are your values?

Have fun!
Claes in Lund, Sweden

First of all, it depends upon the distro you’re using. Make sure OpenCL is available on your distro. The dt speedup is really dramatic with it. Then, provided you’re using Rizen, the shiny new AMD’s ROCm architecture is available on your machine, which is good. So you’ll want a card that is fully supported by ROCm. RX 5XX is good for that, yet 550 is an entry-level one. Here you can find the details: Redirecting to https://rocm-documentation.readthedocs.io/en/latest/
You can also use AMDGPU-PRO drivers on any card newer than GCN 1.1, but I would recommend to avoid this way, for you’ve a better choice, and AMD won’t invest much time into older solution. Have fun!
UPD: and yes, make sure you’re utilizing OpenCL on your built-in GPU. It will improve performance over CPU even on that weak GPU at least about x3.

I use even two GTX1060, but nowadays better two 1660, which seems to be THE cost/performance beast.

My ones are rarely loaded >100% in total, still it feels better, even both run at ~35% but in parallel.

Albeit this thread is older, my question is about using the OpenCL capability of the mentioned Ryzen 3 2200G.

I’m a bit confused about the driver situation for AMD GPUs. Right now I’m using Solus, which does not support OpenCL on AMD video cards and also reported by darktable.
That’s why I’m looking for a workaround. Mint is nice, but although Samuraidog obviously uses Mint 19.1 with his 2200G, by default Mint 19.1 comes with kernel 4.15 which is to old for the Ryzen APU – so one has to tinker around.

But back to the drivers: I see, there are the open source amdgpu, the proprietary amdgpu-pro, but also ROCm. As far as I red, amdgpu should be preferred over pro, because its more actively developed, but what about ROCm?

Is there anyone using darktable with OpenCL on a Ryzen APU successfully? And if so, which driver and distribution you use?

I have the Ryzen 2700 and don’t do anything (anymore) with OpenCL, so I can’t answer your question directly.

However I did recently upgrade to Darktable 3.0 (compiled from source) and it is noticeably faster than the old 2.6.2+13 version I had been running. Especially when saving files after complex edits. I would say dramatically faster.

Ooops. Ah. OpenCL. I don’t even know what that is. I was thinking of OpenGL, which I haven’t…fought with since SGI and OpenInventor went belly up.

Okay. Despite the disto (that may apply additional restrictions) you have few options.
First of all, please make sure you are using the new kernel of 5.X.X branch, the newer the better. Then.
Given that you’re running Ryzen, the best option is ROCm. It’s all open source and the newest solution AMD is pushing forward and actively developing.
The second option is using amdgpu-pro. Not as good, because it is closed source and uses legacy OpenCL, but it still very good chances it would work.
Also you may combine open source amdgpu driver with OpenCL blob that comes as a part of amdgpu-pro. That’s what I am actually using, because I run older architecture than Ryzen. Practically it works OK, despite AMD doesn’t claim it should.
As for amdgpu + mesa it wouldn’t work at all, because mesa’s opencl doesn’t have image read/image write operations implemented. So the only way to use amdgpu is to combine it with the pro’s opencl blob as described above.
Have fun!

Thanks for this nice explanation. I guess I’ll have to look for another distro or just have to wait, since the Solus developers have a hard time to integrate ROCm and probably won’t introduce it soon; amdgpu-pro isn’t a option too.