I have two GPUs on my workstation, and have configured darktable to use them, but when editing photos my CPU gets pegged at 100%, slowing everything down, while the GPUs are hardly touched. Here’s my environment:
- Fedora 37 Linux
- darktable 4.4.1
- CPU: AMD Ryzen 7 3700X 8-Core
- GPU0: nVidia GeForce GTX1660 Super
- GPU1: nVidia GeForce GTX 660
- 32GB RAM
My darktable CPU/GPU preferences:
- darktable resources: large
- activate OpenCL support: on
- OpenCL scheduling profile: multiple GPUs (similar results with very fast GPU)
- tune OpenCL performance: memory size
When I do something intensive like load four images into culling view at 100% zoom, and page though a whole collection, I can watch the CPU usage go up to 100%, while GPU1 (the slower one) briefly hits around 30%, and GPU0 (the faster one) isn’t touched at all. And it takes several seconds for each page to load.
Is this expected behavior? I confess I don’t know much about how darktable manages the whole GPU/OpenCL business, but I would expect the GPUs to be called first.
darktable-cltest
shows all three devices:
$ darktable-cltest | grep DEVICE
DEVICE: 0: ‘pthread-AMD Ryzen 7 3700X 8-Core Processor’
DEVICE VERSION: OpenCL 3.0 PoCL HSTR: pthread-x86_64-redhat-linux-gnu-znver2
DEVICE_TYPE: CPU
DEFAULT DEVICE: NO
DEVICE: 1: ‘NVIDIA GeForce GTX 1660 SUPER’
DEVICE VERSION: OpenCL 3.0 CUDA, SM_20 SUPPORT
DEVICE_TYPE: GPU
DEFAULT DEVICE: NO
DEVICE: 2: ‘NVIDIA GeForce GTX 660’
DEVICE VERSION: OpenCL 3.0 CUDA, SM_20 SUPPORT
DEVICE_TYPE: GPU
DEFAULT DEVICE: NO
None of these are identified as a default device. Should one of them be the default?