OclCLI::autoConf() / OclCLI::getMaxThreads() improvement/educational request
(words with **emphasis** are variable names used in the code)

Hi,

except for the special handling of AMD Vega cards, getMaxThreads() [in OclCLI.cpp] always returns 1000.
In most cases, 1000 is smaller than (Available VRAM/Scratchpad size), therefore **maxIntensity**  equals 1000 in most cases.
OclCLI::autoConf()  then makes sure that **intensity** is the biggest multiple of (8 * **computeUnits**) which is still <= **maxIntensity**.

Example: Fury X:
64 CUs
4 GiB VRAM
**maxIntensity** = min (1000, (4 GiB - 128 MiB) / (2 MiB + 224))
**maxIntensity** = min (1000,  ~2000)
**maxIntensity** = 1000
64 CU * 8 = 512
The largest multiple of 512 which is <= 1000 is 512.

Therefore:
**intensity** = 512

512 works, but is not nearly optimal on a Fury X.
The hashrate _doubles_ when using an **intensity** of 1280.

I did not find an explanation of the magic value 1000, xmr-stak says the following:
`			/* 1000 is a magic selected limit, the reason is that more than 2GiB memory
			 * sowing down the memory performance because of TLB cache misses
			 */
			size_t maxThreads = 1000u;`

Can you think of an algorithm to calculate  **maxThreads** more tailored to the specific card? What does it depend on? My uneducated guess: GCN version, number of CUs, anything else?