dispositivos amd/ati
Si bien los dispositivos NVIDIA y la mayoría de los dispositivos AMD / ATI modernos a menudo se ejecutan desde el primer momento, hay más que hacer con las tarjetas gráficas AMD / ATI más antiguas, es decir, las anteriores a la serie HD7xxx. Esto comienza con el hecho de que esos dispositivos solo informarán parte de su memoria GPU total a darktable. Para un dispositivo de 1 GB, esto generalmente equivale a solo 512 MB, un valor que darktable en su configuración estándar rechazará como insuficiente. En consecuencia, el dispositivo no se utilizará.
En la web, puede encontrar un consejo para establecer la variable de entorno GPU_MAX_HEAP_SIZE
en 100 si esto sucede. De hecho, esto hará que el controlador AMD / ATI informe la memoria instalada completa a darktable. Sin embargo, existe un problema. En muchas (¿la mayoría?) Tarjetas, esto hará que se asignen búferes en su computadora (host) y no en la tarjeta de video. En este caso, todos los accesos a la memoria deberán pasar por el bus PCIe lento. Esto le costará un factor de rendimiento de 10 veces o más y hará que OpenCL sea inútil para usted, especialmente al exportar archivos.
Otra variable de entorno que cambia el comportamiento del controlador es GPU_MAX_ALLOC_PERCENT
. Puede establecer esto en 100 para permitir asignaciones de memoria de hasta 1 GB en su tarjeta AMD / ATI. El problema es que esto tiende a hacer que darktable se bloquee tarde o temprano.
Por lo tanto, nuestra recomendación es dejar intacta esta configuración. A menudo, su tarjeta será reconocida con 512 MB de memoria y un tamaño máximo de asignación de 128 MB. Hay tres parámetros de configuración que puede establecer en $HOME/.config/darktable/darktablerc
para que todo funcione. Aquí están los detalles:
- opencl_memory_requirement
- Establezca este parámetro en 500 para que darktable acepte que su memoria gráfica de 512 MB tiene suficiente memoria.
- opencl_memory_headroom
- Este parámetro controla la cantidad de memoria gráfica (de la informada por su tarjeta) que darktable debe dejar intacta para el uso del controlador y la pantalla. Dado que para los dispositivos AMD / ATI solo podemos obtener la mitad de la RAM disponible de todos modos, es seguro establecer esto en cero para que darktable pueda usar todos los 512 MB.
- opencl_avoid_atomics
- Las operaciones atómicas en OpenCL son un método especial de sincronización de datos. Solo se utilizan en unos pocos núcleos. Desafortunadamente, algunos (¿la mayoría?) De los dispositivos AMD / ATI son extremadamente lentos en el procesamiento de atómicos. Es mejor procesar los módulos afectados en la CPU en lugar de aceptar una ruta de código de GPU ultra lenta. Por lo tanto, establezca este parámetro en TRUE si experimenta un procesamiento lento de módulos como sombras y luces, monócromo, contraste local, o _mapeo tonal global (obsoleto) _ o si el sistema se congela de forma intermitente.
Estas recomendaciones no se aplican a la serie Radeon HD7xxx más reciente con arquitectura GCN. Además de ser muy rápidos en términos de computación GPU, normalmente se ejecutan desde el primer momento, aunque podría considerar probar algunas de las opciones de optimización del rendimiento que se describen en la siguiente sección.