Headless opencl accelerator

I’m currently looking into buying a GPU for my (headless) home server, with the primary goal of accelerating my Darktable exports processing. I currently have a laptop with a GeForce 940m (very old) which easily outpaces my quad core Xeon server when exporting my raws to jpg.
I don’t have desktop, so my laptop is my primary user device. My line of thinking was that if I add some type of desktop GPU to my server, it will offload the CPU and make darktable exports much faster.
My workflow would be something like:

  • Use laptop to run darktable, download and preselect images and select the various modules and settings I want to apply to the raw image
  • On the server, use darktable cli to export the raws

Does anyone have experience setting this up? Is it worth the effort? Any up front advice?
I’m looking at adding either a (second hand) desktop gpu like gtx 1650, or perhaps a workstation gpu like a t600. Any advice which would be preferable? I note that both are basically the same chip, but there is a different opencl version supported.

One more aspect I’m wondering about is power usage. As the server is always on, idle power consumption and power saving is also important to me. However, I did not find a lot on the subject.

There is mention about power usage here: PRIME - ArchWiki

Looks like the GPU can be fully powered off dynamically, but only since Turing. Also a relatively new CPU is needed.

Ah, that’s cool. I think both GPUs I mentioned are Turing generation. In the meantime, I also found this which seems to indicate idle power for this specific card is around 4 Watt.

Avonds, Jan!

I am not really understanding the set-up that you have in mind.
Do you plan to do a “remote connect” to the server, using your
laptop as a terminal?

Or do you plan to perform some darktable modifications on
your laptop, and then copy the history stack onto a large
amount of images, located on the server?

Mvg
Claes in Lund, Zweden

Yes, that’s a bit unclear. I’ll elaborate:

  1. Connect camera to laptop and move raw files from camera
  2. Make first selection of which images to keep
  3. Use darktable on the laptop to select modules and settings which are applied to each image
  4. Darktable can be configured to store these manipulations in sidecar files (xmp) Each raw file is now accompanied by an xmp file
  5. On the server, I login remotely and use the darktable-cli command. This automatically selects the xmp file belonging to the raw file and performs the jpg export
  6. Profit

Does this help?
I’ve used this process in the past to do the export during the night, and it works.

Yes, thank you.

  1. Use darktable on the laptop to select modules and settings which are applied to each image

For these procedures, a good graphics card (on the laptop) will make things faster.
To test — turn the diffuse or sharpen module on/off. Is the working indicator shown for a long time?

Do you have many images to process/export at a time?

Remote Xorg is still pretty useful for such a use-case. Open Xorg on the laptop with xhost and start darktable on remote with DISPLAY=laptop-ip darktable

External PCIe slots are also an option to connect a GPU to laptop, but require thunderbolt or usb-c.

1 Like

Of course, a good GPU in your server will make the exports faster (provided opencl works).
But you have to decide if the gain in time merits the investment.

As far as power consumption is concerned, I don’t know what the difference in total energy consumed would be between exporting on CPU or on GPU (higher peak power with GPU of course, but much shorter duration).

That.

Because the editing process will be limited to the speed of the laptop.
And that is the machine you are sitting at and watching and waiting.
When you have your images on the server there is no I/O limit through network traffic because only the screen content gets transferred, which is even on a bad WLAN a rather snappy experience.

How long the actual export takes is usually rather irrelevant.

Bonus: you can ssh into your server from abroard if you wish so and do all the editing from a remote island.

:beach_umbrella: :palm_tree:

I didn’t think of this possibility, but I’ll make sure to try it out. My current (old) laptop has a discrete Nvidia GPU, but if I replace the laptop, the new one might not.

I’m trying this upgrade ‘on the cheap’ :wink: In my experience these are not the most affordable setups. My current laptop also does not have a Thunderbolt connection, so this must wait for the future in any case.

I’m not really concerned with this. I’m mainly looking at the time gained due to shorter export times. But at the same time, I do not want my Idle power usage to reach the sky due to this change…

From the reactions thus far, I conclude that people do not see this as impossible, and offered some alternative use cases. Nice.

I think this is a very valid argument, which is why I’m looking at a second hand GPU for now. If the experiment fails, I won’t have lost a lot of money (only time, which of course is free :wink: )

Do people here have specific experience with using a Desktop Gaming GPU versus a Workstation GPU for OpenCL acceleration?