Each Collatz 4.07 application is distributed with an empty config file. The config file has the same name as the executable but with the extension ".config".
There are a number of parameters that can be altered to improve speed or video response or to aid in solving issues. They are:
verbose=[0|1]
A value of 1 causes more information about the GPU, OpenCL version, etc. to be written to the log file. If enabled, this should be the first line of the config file so that it will report the other settings in the log file.
items_per_kernel=[10..22]
The number is the power of two 256-bit numbers (e.g. 2^N) that will be calculated per kernel call. Setting this number higher places a larger load on the GPU. Setting the number too high WILL cause the driver to crash and the application to hang. The default is 14, or 2^14, or 16384 items.
kernels_per_reduction=[2..9]The number (2^N once again) of kernels to run before doing a reduction. The default is 8 or 2^8 = 256. A lower number can improve video response. A larger number may result in a higher GPU load. Too high a number will result in CPU as well as GPU utilization.
threads=[5..10]
This contains the number of work groups to run in parallel. Higher is not necessarily faster. This number is device dependent. If set too high, the application will automatically reduce it to a value compatible with the device.
Most AMD GPUs allow up to 256 (a setting of 8). NVidia GPUs may allow 512 or even 1024 (a setting of 9 or 10). OpenCL requires a minimum of 32 (a setting of 5) according to the Khronos specifications.
build_options=[string containing any optional OpenCL build options]
This was added strictly for debugging in order to be able to use "-cl-opt-disable -Werror". If the OpenCL application crashes within 1-2 seconds of starting, you may want to use "build_options=-cl-opt-disable -Werror" and see if that fixes the problem.
sleep=[1..1000]
This controls the number of milliseconds that the application goes into a sleep state while waiting for the asynchronous kernel calls to complete. The default is 1. Setting this higher (e.g. 2-5) will result in better video response but will slow down the application considerably.
The config file will be renamed to collatz.config when it is copied to the BOINC slot folder when an application starts running. Exiting BOINC and editing the version in the project folder will not change the settings of the applications in progress as their config is taken from the slot folder.
A sample collatz.config file looks like:
verbose=1
items_per_kernel=20
kernels_per_reduction=9
threads=8
sleep=1
build_options=-Werror
Since the workunits very somewhat in the number of total steps they produce, I would suggest that you run several and take the average runtime to determine whether one set of values in the config works better than another set.
Note: The values in the sample above work quite well on my HD 6970 and HD 7970 without making either too sluggish.