Darktable extremadamente lento

Buenas tardes y, después de mucho tiempo, un saludo a la comunidad. :vulcan_salute:

Cosas de la vida me obligaron a apartarme (una vez más) de la fotografía y todo lo que la rodea. Recientemente me he puesto de nuevo con ella y con darktable. En estos momentos tengo instalada la versión 4.4.2 bajo kubuntu 22.04 y, podría decirse que, nuevamente, estoy empezando desde cero.

Me está llamando la atención que, a nada que realice algunos ajustes en una imagen, a la hora de exportarla, darktable “se toma su tiempo”. ¡Demasiado!

Parto de un archivo raw (NEF) de 24 MP (unos treinta y pico MB), con OpenCL activado (he probado las diferentes configuraciones de “procesamiento” sin notar apenas cambios significativos), con CPU AMD de 6 núcleos (6 × AMD FX™-6100 Six-Core Processor), 8 GB de RAM y GPU NVIDIA GeForce GT 710 (2GB).

He revisado las entradas de @jordicarsan y @ariznaf sobre el tema sin encontrar respuesta (puede que esté ahí y no sea capaz de verla). Aún así, vaya mi agradecimiento por delante.

Por concretar más, comparto un archivo y su procesado (un poco al tuntún para ilustrar el caso). Decir que a la hora de exportarlo a un jpg con un tamaño de 1080x1080 px y al 95% de calidad, se ha tomado la friolera de 1’14’'. :cold_face:

20230814_DSC5292.NEF.xmp (15,2 KB)

El resultado:

Por añadir más información (no sé si útil) y mientras busco por otros sitios, dejo la salida del comando darktable -d opencl:

~$ darktable -d opencl
     0,2278 [dt_get_sysresource_level] switched to 2 as `large'
     0,2279   total mem:       7838MB
     0,2279   mipmap cache:    979MB
     0,2279   available mem:   5358MB
     0,2279   singlebuff:      122MB
     0,2279   OpenCL tune mem: OFF
     0,2279   OpenCL pinned:   WANTED
[opencl_init] opencl related configuration options:
[opencl_init] opencl: ON
[opencl_init] opencl_scheduling_profile: 'default'
[opencl_init] opencl_library: 'default path'
[opencl_init] opencl_device_priority: '*/!0,*/*/*/!0,*'
[opencl_init] opencl_mandatory_timeout: 400
     0.2364 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL'
     0.2365 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL.so'
[opencl_init] opencl library 'libOpenCL.so.1' found on your system and loaded
[opencl_init] found 1 platform
[opencl_init] found 1 device

[dt_opencl_device_init]
   DEVICE:                   0: 'NVIDIA GeForce GT 710'
   PLATFORM NAME & VENDOR:   NVIDIA CUDA, NVIDIA Corporation
   CANONICAL NAME:           nvidiacudanvidiageforcegt710
   DRIVER VERSION:           470.199.02
   DEVICE VERSION:           OpenCL 3.0 CUDA, SM_20 SUPPORT
   DEVICE_TYPE:              GPU
   GLOBAL MEM SIZE:          1999 MB
   MAX MEM ALLOC:            500 MB
   MAX IMAGE SIZE:           16384 x 16384
   MAX WORK GROUP SIZE:      1024
   MAX WORK ITEM DIMENSIONS: 3
   MAX WORK ITEM SIZES:      [ 1024 1024 64 ]
   ASYNC PIXELPIPE:          NO
   PINNED MEMORY TRANSFER:   WANTED
   MEMORY TUNING:            NO
   FORCED HEADROOM:          400
   AVOID ATOMICS:            NO
   MICRO NAP:                250
   ROUNDUP WIDTH:            16
   ROUNDUP HEIGHT:           16
   CHECK EVENT HANDLES:      128
   PERFORMANCE:              1.218
   TILING ADVANTAGE:         0.000
   DEFAULT DEVICE:           NO
   KERNEL BUILD DIRECTORY:   /usr/share/darktable/kernels
   KERNEL DIRECTORY:         /home/luiseme/.cache/darktable/cached_v1_kernels_for_NVIDIACUDANVIDIAGeForceGT710_47019902
   CL COMPILER OPTION:       -cl-fast-relaxed-math
   KERNEL LOADING TIME:       0.0917 sec
[opencl_init] OpenCL successfully initialized. Internal numbers and names of available devices:
[opencl_init]           0       'NVIDIA CUDA NVIDIA GeForce GT 710'
[opencl_init] FINALLY: opencl is AVAILABLE and ENABLED.
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
    52,8023 [dt_get_sysresource_level] switched to 1 as `default'
    52,8023   total mem:       7838MB
    52,8023   mipmap cache:    979MB
    52,8023   available mem:   3919MB
    52,8023   singlebuff:      61MB
    52,8023   OpenCL tune mem: OFF
    52,8023   OpenCL pinned:   WANTED
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       -1      0       0       -1
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities]           image   preview export  thumbs  preview2
[dt_opencl_update_priorities]           0       0       0       0       0
[opencl_synchronization_timeout] synchronization timeout set to 200
   107,5433 [dt_opencl_check_tuning] use 1093MB (tunemem=OFF, pinning=OFF) on device `NVIDIA CUDA NVIDIA GeForce GT 710' id=0

Decir también que he habilitado un espacio de memoria de intercambio (hace tiempo que me había acostumbrado a no reservar espacio para swap en mis instalaciones) por si ayudara, pero no se aprecia mejoría en este aspecto (ni veo que tire de ella durante la exportación del archivo en cuestión). :thinking:

Hola.
Estoy trabajando con un portátil cuya pantalla no me deja apenas juzgar un buen resultado y cuyo funcionamiento es muy deficiente. Disculpa, pues, que mi procesado no se muy fino. Sin embargo, en lo que a i realmente interesa, te diré que no he tenido ningún problema con el archivo (en muchas ocasiones sí los vengo teniendo); en cuanto al tiempo para grabar el jpeg, ha sido de 8 minutos, lo cual poco tiene de extraño con esta máquina.

20230814_DSC5292_01.NEF.xmp (11,8 KB)

Ante todo, muchas gracias, @JASU

¿8 minutos? ¿No habrás querido decir 8 segundos? Madre mía…

En cuanto a la edición de la fotografía, lo que me interesa es que apliquéis directamente el procesado incluido en el xmp que he anexado para tratar de reproducir el mismo escenario.

De todas formas, hace un rato me dio por probar con un live de ubuntu 23.04 sobre el que he instalado darktable y he hecho la prueba: 7,5’’ exportando a jpg. Esto ya pinta mejor a pesar de ser en live y sin activar OpenCl.

Básicamente, el procedimiento que he seguido es similar al tuyo y casi con los mismos módulos. Y, sí, son ocho minutos. Pero es que la máquina es muy limitada y antigua. Lo sufro sobre todo a la hora de experimentar cualquier cosa.

1 me gusta

Hola Luis,

12’ ha sido lo que ha tardado en procesar 1200x 810. Te dejo la copia en B&N y el .xmp.

Tengo activado OpenCL y veras que en edición he levantado algo los tonos a la hierba que quedaba como enmascarada con el marrón/rojo de la tierra.


20230814_DSC5292.NEF.xmp (21,5 KB)

1 me gusta

Por cierto puedes probar de abrir Darktable con estos parámetros. Procesar tu foto y al acabar veras cuales son los procesos que te consumen mas tiempo de CPU/GPU.

-d opencl -d perf

2 Me gusta

Hola, Jose.
Al margen del procesado (muy acertado el tuyo), he terminado por sustituir kubuntu por linuxmint y parece que va mucho mejor (unos seis segundos al procesar y exportar la misma imagen).
Gracias por la asistencia. :wink:

Ya sabes, en este mundo cualquier ayuda, por mala que sea, es bienvenida. Me alegro que te haya servido.

Nota: Yo estoy usando un fork de Darktable que se llama Ansel. Mas adelante si estas interesado, ya sabes “xifla”…

Un abrazo y espero que estéis todos bien. Recuerdos de Teresa.

1 me gusta