Maybe it has something to do with the settings of opencl_device_priority in the $HOME/.config/darktable/darktablerc.
Default setting for opencl_device_priority is */!0,*/*/*. According to the manual this switches off opencl for the preview for the first opencl device in your system. So the preview will be processed on the CPU.
You could try to set:
opencl_device_priority = */!0,*/*/*
to
opencl_device_priority = */*/*/*
in your $HOME/.config/darktable/darktablerc.