Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions content/special-topics/mem-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ f. advantage hint
1. Check the execution times of this module with OpenCL on and off (by running `darktable -d perf` to examine the performance).
1. Set the "advantage hint option" to approximately (CPU execution time / GPU execution time).

The advantage hint value is ignored from 5.8 onwards, and can be set to 0 to avoid confusion.

g. shared memory fraction
: Some OpenCL devices don't have dedicated memory but share it with the CPU -- Apple ARM silicon is one example but also onboard devices from Intel, AMD or ARM SOCs. As we want to keep system memory available for caching or CPU codepaths we restrict the amount of all memory used to the given fraction. So with the default of 0.5 and an Apple computer with 16GB of system RAM, OpenCL would be able to make use of 8GB.

Expand All @@ -148,6 +150,19 @@ g. shared memory fraction

---


## device-specific OpenCL disabling

From 5.8 onwards, it is possible to disable an OpenCL device for specific modules by adding a comma-separated list of modules to the _nocl_ option in the _darktablerc_ file, for example:

`cldevice_v6_rusticlamdradeon8060sgraphics_nocl=colorbalancergb,denoiseprofile`

or, more generally

`cldevice_version_canonicalname_nocl=comma,separated,list,of,modules`

Any module in this list will be executed on the CPU instead of OpenCL.

## id-specific OpenCL configuration

A second device-specific configuration key is also provided, which takes into account both the device name **and** the device id (in case you have two identical devices). In this case, the usual key name `cldevice_version_canonicalname` is followed by `_idX` with X being the device id. For example, if the above example device was referred to as device 0, the second configuration setting would (by default) be `cldevice_v5_quadrortx4000_id0=600`.
Expand Down
Loading