Preview from the upcoming release notes. hth.

Support added for

autotuning.

There is this magical -n parameter. I know you often use it, but you can also misuse it. You know the higher you set it, the faster it cracks (and the more the screen lags). But there is this (rare) case in which you can actually make it slower by setting it too high.

A little mathematical background (skip if you don't care):

The number of workload oclHashcat-plus chooses for a GPU is:

Code:

`Number-of-processors * Number-of-optimal-threads * Number-of-optimal-vectorsize * Value-of-n-parameter`

Now imagine the result of such a calculation is 8000000 and you set -n 80. The thing I call base-power of your GPU (the part you can not tune) is 100000. On the other hand we have the keyspace we want to search. For example we have a mask ?d?d?d?d?d?d?d?d. That makes the keyspace = 100000000 (10^8). So we have 100000000 / 8000000 = 12.5. That's fine, we can call the kernel 12.5 (actually 13) times before the keyspace is exhausted.

Now imagine you have two cards of that speed. We add up the power and get 8000000 * 2 = 16000000. This time we have 100000000 / 16000000 = 6.25. That's still fine, both GPU are called 7 times. Now what happens if we set from -n 80 to -n 800? Right, the GPU power jumps from 16000000 to 160000000. So we have 100000000 / 160000000 = 0,625. Because this value is smaller than 1, the dispatcher can not assign enough work to both GPU. One of both GPU will not get used at all.

This demonstrates a case when using too high of a -n value will crack slower than a lower -n value. If you ever wondered why not all your GPUs are used, this might be the cause.

The new autotune function helps you with that. It cannot be disabled --it will automatically tune down your -n amplifier in case you set it too high.