11/13/2023 0 Comments Darktable performanceThis is only recommended if you know for sure that your system runs rock-solid. The consequence is that any failures will likely lead to garbled output without darktable noticing. This will prevent darktable from properly monitoring the success of your OpenCL kernels but saves some driver overhead. A value of 0 will block darktable from using any event handles. If your driver runs out of free handles you will experience failing OpenCL kernels with error code -5 (CL_OUT_OF_RESOURCES) or even crashes or system freezes. You might want to see if higher values like 100 give better OpenCL performance. The default value of 25 is quite conservative. Unfortunately, there is no way to find out what the resource limits are, so darktable needs to guess. For sure they can be recycled but there is a limited number that can be used at the same time. The number of event handles is a limited resource of your OpenCL driver. opencl_number_event_handles Event handles are used so that darktable can monitor the success/failure of kernels and profiling info even if the pixelpipe is executed asynchronously. If in doubt, leave it at its default of FALSE. Problems have been reported with some older AMD/ATI cards, like the HD57xx, which can produce garbled output if this parameter is set to TRUE. darktable will then interrupt after each module so that you can more easily isolate the problem. If you experience OpenCL errors like failing kernels, set the parameter to FALSE. For optimum latency set this to TRUE, so that darktable runs the pixelpipe asynchronously and tries to use as few interrupts as possible. opencl_async_pixelpipe This flag controls how often darktable blocks the OpenCL pixelpipe to get a status on success/failure of the kernels that have been run. However, if you want to fiddle around a bit by yourself and try to optimize things further, here is a description of the relevant configuration parameters. Short-term stalls will not have a noticeable effect on the total time of an export.ĭarktable comes with default settings that should deliver a decent GPU performance on most systems. On the other hand darktable’s performance during file exports is more or less only governed by the speed of our algorithms and the horse-power of your GPU. However, even short-term stalls of the pixelpipe can easily become a bottleneck. These can be processed quickly by a fast GPU. This is especially important for the small image buffers we need to handle during interactive work. Any interrupts or a stalled data flow will add to the total processing time. To allow for fast pixelpipe processing with OpenCL it is essential that we keep the GPU busy. Please note that the timings given for each individual module are unreliable when running the OpenCL pixelpipe asynchronously (see opencl_async_pixelpipe below). The most reliable value is the total time spent the in pixelpipe. – you will see the total time spent in the pixelpipe and the time spent in each of the OpenCL kernels. In order to obtain profiling information you need to start darktable from a terminal with darktable -d opencl -d perf.Īfter each reprocessing of the pixelpipe – caused by module parameter changes, zooming, panning, etc. For a comfortable workflow it is essential to keep latency low. how long it takes to reprocess the pixelpipe). Performance in this context mostly means the latency of darktable during interactive work (i.e. There are a number of configuration parameters in $HOME/.config/darktable/darktablerc that can help to finetune your system’s OpenCL performance.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |