fix some algo weird hashrates (like blake)
and reset device between algos, for better accuracy
but this reset doesnt seems enough to bench all algos correctly...
to test on linux, could be a driver issue...
heavy: fix first alloc and indent with tabs...
Switching to a pool with a different algo will require a barrier
to free ressources, like what was made in the global benchmark.
add also the algo in pool structure...
ccminer -n 2>NUL
GPU #0: SM 5.2 GeForce GTX 970
GPU #1: SM 5.0 Gigabyte GTX 750 Ti
GPU #2: SM 5.2 ASUS GTX 970
note: nvml destroy is made in proper_exit function
The full benchmark can now be launched with "ccminer --benchmark"
add a new helper function which log a warning with last cuda error
(not shown with the quiet option) : CUDA_LOG_ERROR();
it can be used where miner.h is included (.c/.cpp/.cu)
fix x14 (in ccminer.cpp), a break was missing in switch..case
when using multiple cpu threads per gpu, use the T prefix, ex:
[2015-10-11 09:52:49] GPU #0: app clocks set to P0 (3600/1228)
vs
[2015-10-11 09:52:51] GPU T0: MSI GTX 960, 5953.35 kH/s
Only thr_id is required, the function take care of the dev id
remains my original lyra2 implementation to fix... (cuda_lyra2.cu)
I guess some kind of memory overflow force the driver to allocate
memory... but was unable to free it without device reset.
Note: lyra2, lyra2v2 and script seems to have problems
to coexist with other algos... to run after some of them...
moved lyra2 first and skip scrypt/jane for the moment...
Only stored in memory for now.. to display a table after the bench
ccminer -a auto --benchmark
Results may be exported later to a json file...
make a difference between whirlpool and whirlcoin algos (stratum)
Look like the old SHA merkleroot method doesnt work on recent coins
Doesn't affect solo mining, only pools using stratum+tcp:// protocol
which display submitted block and net difficulty and is able
to detect shares above net diff (solved blocs)
Note: only made on lyra2v2 and zr5 algos
TODO: compute the found diff on all algos...
require changes in all scan hash "kernel" function parameters
to be continued...
0: cudaDeviceScheduleAuto
1: cudaDeviceScheduleSpin
2: cudaDeviceScheduleYield
4: cudaDeviceScheduleBlockingSync
Also set the best one (4) for luffa algo by default...
--pstate 0 is an alternative to clocks values to set the device in P0
mode, 1 will set appl. clocks to default P1 clocks, 2 to default P2..
--plimit 150W really works on the 9xx and allow to limit/reduce the gpu usage
Note: nvml interface is only available on linux and windows x64
Signed-off-by: Tanguy Pruvot <tanguy.pruvot@gmail.com>