Skip to content

Commit

Permalink
Fix preferences section name and anchor
Browse files Browse the repository at this point in the history
  • Loading branch information
victoryforce authored and elstoc committed Apr 21, 2024
1 parent 33c9f99 commit 9611f9a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions content/special-topics/mem-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ For most systems, tiling will probably only be used for full-sized image exports

# performance tuning

There are a number of configuration parameters that can help you to fine-tune your system's performance. Some of these parameters are available in [preferences > processing > cpu/gpu/memory](../preferences-settings/processing.md#cpu--gpu--memory) and others need to be modified directly in darktable's configuration file (found in `$HOME/.config/darktable/darktablerc`).
There are a number of configuration parameters that can help you to fine-tune your system's performance. Some of these parameters are available in [preferences > processing > CPU / memory](../preferences-settings/processing.md#cpu--memory) and others need to be modified directly in darktable's configuration file (found in `$HOME/.config/darktable/darktablerc`).

This section provides some guidance on how to adjust these settings.

Expand All @@ -51,7 +51,7 @@ On the other hand darktable's performance during file exports is more or less on

## darktable resources

The "darktable resources" preference (in [preferences > processing > cpu/gpu/memory](../preferences-settings/processing.md#cpu--gpu--memory)) allows you to choose between four different approaches to allocating your system's resources to darktable. Each of these options controls multiple individual parameters, which are defined independently in `$HOME/.config/darktable/darktablerc`. You can amend any of these directly within your darktablerc file to tweak values for your selected resource level, though you cannot add your own custom resource level to the preferences drop-down.
The "darktable resources" preference (in [preferences > processing > CPU / memory](../preferences-settings/processing.md#cpu--memory)) allows you to choose between four different approaches to allocating your system's resources to darktable. Each of these options controls multiple individual parameters, which are defined independently in `$HOME/.config/darktable/darktablerc`. You can amend any of these directly within your darktablerc file to tweak values for your selected resource level, though you cannot add your own custom resource level to the preferences drop-down.

---

Expand Down Expand Up @@ -94,7 +94,7 @@ If you want to make maximal use of your GPU memory for OpenCL, you have three op

- Choose the "large" resource level. For a 6GB card, this will use approximately 5GB of GPU memory, leaving 1GB for the rest of your system. (recommended)
- Alter darktablerc to increase the last number (the OpenCL memory fraction) for your selected resource level. For example, increasing the OpenCL memory fraction to 950 would increase the available memory on a 6GB GPU to approximately 5.3GB. (absolutely not recommended)
- Set [preferences > processing > OpenCL > use all device memory](../preferences-settings/processing.md#cpu--gpu--memory) to "on", which will use all of your device's memory, less a 600MB headroom. Please see the [section below](#id-specific-opencl-configuration) for "per device setting" of headroom.
- Set [preferences > processing > OpenCL > use all device memory](../preferences-settings/processing.md#opencl) to "on", which will use all of your device's memory, less a 600MB headroom. Please see the [section below](#id-specific-opencl-configuration) for "per device setting" of headroom.

## balanced OpenCL versus CPU tiling

Expand Down Expand Up @@ -175,7 +175,7 @@ A second device-specific configuration key is also provided, which takes into ac
This configuration key currently only has a single parameter defined:

forced headroom (default 600)
: The amount of memory (in MB) that will **not** be used by darktable during OpenCL processing. This setting is only valid if you set [preferences > processing > OpenCL > use all device memory](../preferences-settings/processing/#cpu--gpu--memory) to "on".
: The amount of memory (in MB) that will **not** be used by darktable during OpenCL processing. This setting is only valid if you set [preferences > processing > OpenCL > use all device memory](../preferences-settings/processing/#opencl) to "on".

: If you are certain that no apps (or your OS) make use of the specific device you can set this parameter to 0 for the otherwise-unused device so that darktable will use all of that device's memory.

Expand Down
2 changes: 1 addition & 1 deletion content/special-topics/opencl/activate-opencl.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Using OpenCL in darktable requires that your PC is equipped with a suitable grap

When darktable starts, it will first try to find and load `libOpenCL.so` and -- on success -- checks if the available graphics card comes with OpenCL support. A minimally-sufficient amount of graphics memory (1GB+) needs to be available for darktable to take advantage of the GPU. If that check passes, darktable tries to setup its OpenCL environment: a processing context needs to be initialized, a calculation pipeline to be started, OpenCL source code files (extension is `.cl`) needs to be read and compiled and the included routines (OpenCL kernels) need to be prepared for darktable's modules. If all of that completes successfully, the preparation is complete.

By default, OpenCL support is activated in darktable if all the above steps were successful. If you want to de-activate it you can do so in [preferences > processing > OpenCL](../../preferences-settings/processing#cpu--gpu--memory). This configuration parameter is grayed out if the OpenCL initialization failed.
By default, OpenCL support is activated in darktable if all the above steps were successful. If you want to de-activate it you can do so in [preferences > processing > OpenCL](../../preferences-settings/processing/#opencl). This configuration parameter is grayed out if the OpenCL initialization failed.

You can switch OpenCL support off and on at any time without requiring a restart. Depending on the type of modules you are using, you will notice the effect as a general speed-up during interactive work and export. Most modules in darktable can take advantage of OpenCL but not all modules are demanding enough to make a noticeable difference. In order to feel a real difference, use modules like [_diffuse or sharpen_](../../module-reference/processing-modules/diffuse.md), and [_denoise (profiled)_](../../module-reference/processing-modules/denoise-profiled.md).

Expand Down
2 changes: 1 addition & 1 deletion content/special-topics/opencl/problems-solutions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ Here are a few cases that have been observed in the past:

- darktable fails to compile its OpenCL source files at run-time. In this case you will see a number of error messages looking like typical compiler errors. This could indicate an incompatibility between your OpenCL implementation and darktable's interpretation of the standard. In that case please raise an issue on [github](https://github.com/darktable-org/darktable/issues/new/choose) and we will try to assist. Please also report if you see significant differences between CPU and GPU processing of an image.

- you have installed a number of OpenCL drivers meant for the same hardware, this will always lead to severe problems and must strictly be avoided. On Windows systems you often have the `Microsoft OpenCLon12` driver installed via the `OpenCL Compatibility Pack`. Inspect and check at [preferences > processing > OpenCL](../../preferences-settings/processing#cpu--gpu--memory)
- you have installed a number of OpenCL drivers meant for the same hardware, this will always lead to severe problems and must strictly be avoided. On Windows systems you often have the `Microsoft OpenCLon12` driver installed via the `OpenCL Compatibility Pack`. Inspect and check at [preferences > processing > OpenCL](../../preferences-settings/processing/#opencl).

- A few emulated-on-CPU implementations of OpenCL also exist, coming as drivers provided by INTEL or AMD. We have observed that they do not provide any speed gain versus the compiler-optimized CPU code. Therefore darktable simply discards these drivers / devices by default.
4 changes: 2 additions & 2 deletions content/special-topics/opencl/scheduling-profile.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ draft: false
author: "people"
---

darktable can use the CPU and one or several OpenCL capable GPUs. Depending on the relative performance of these devices, users can choose among certain scheduling profiles to optimize performance. This is achieved by setting the configuration parameter [preferences > processing > cpu/gpu/memory > OpenCL scheduling profile](../../preferences-settings/processing#cpu--gpu--memory), which offers the following choices:
darktable can use the CPU and one or several OpenCL capable GPUs. Depending on the relative performance of these devices, users can choose among certain scheduling profiles to optimize performance. This is achieved by setting the configuration parameter [preferences > processing > OpenCL > OpenCL scheduling profile](../../preferences-settings/processing/#opencl), which offers the following choices:

default
: If an OpenCL-capable GPU is found darktable uses it for processing the center image view while the [navigation preview window](../../module-reference/utility-modules/darkroom/navigation.md) is processed on the CPU in parallel. This is the preferred setting for systems with a reasonably fast CPU and a moderately fast GPU. The exact allocation of devices to the various pixelpipe types can be finetuned with the “opencl\_device\_priority” configuration parameter (see [multiple devices](./multiple-devices.md)).
Expand All @@ -17,4 +17,4 @@ very fast GPU
multiple GPUs
: This setting addresses systems with multiple GPUs whose relative performance do **not** differ significantly. Whenever a processing job is started darktable uses any currently idle GPU but not the CPU. Users of systems with a variety of GPUs will need better control on their relative priority. They would be better off selecting the “default” profile and fine-tuning their system with the “opencl\_device\_priority” configuration parameter (see [multiple devices](./multiple-devices.md)).

On first start-up or after any detected change in the GPU configuration of your system darktable tries to identify the best suited profile for you. You can change it at any time in [preferences > processing > OpenCL](../../preferences-settings/processing.md#cpu--gpu--memory).
On first start-up or after any detected change in the GPU configuration of your system darktable tries to identify the best suited profile for you. You can change it at any time in [preferences > processing > OpenCL](../../preferences-settings/processing.md#opencl).

0 comments on commit 9611f9a

Please sign in to comment.