WildRig Multi 0.20.1: AMD miner with multialgo support

WildRig Multi 0.20.1 beta

This is further development of original WildRig with support for new algorithms, different stratum protocol and only for AMD gpu’s.

DISCLAIMER :
Mining almost all these algorithms that WildRig Multi support isn’t the same thing as mining Cryptonight family or Ethereum . These algo’s more power consuming and core intensive, especially something like x16r . So please, make sure your PSU’s are good enough, GPU’s are rock stable and voltage for them set well. Low core voltage won’t work here in most cases. If you get any instability - start from stock and find your optimal settings.

Download for Windows
dependencies: Visual C++ Redistributable 2015 x64

Download for Linux
dependencies: amdgpu-pro driver

HiveOS : check update for HiveOS, it should provide latest version.

KNOWN ISSUES :

  • any report is welcome! [​IMG]

SUPPORTED GPU’s :

  • GCN 2nd gen: R7 260, R9 290, R9 295X2, R7 360, R9 390
  • GCN 3rd gen: R9 285, R9 380, R9 Fury, R9 Nano
  • GCN 4th gen: RX460, RX470, RX480, RX550, RX560, RX570, RX580, RX590
  • GCN 5th gen: Vega 11, Vega 56, Vega 64, Radeon VII(but need some changes for better performance)
  • RDNA 1st gen: Radeon 5700, Radeon 5700XT. Partial support for limited amount of algorithms

Pitcairn, Tahiti and other old cards of GCN 1st gen(like HD 78x0, HD 79x0, R7 265, R9 270, R9 280, R9 370, etc.) are not supported and won’t be, because they are too old and need additional work.

SUPPORTED ALGORITHMS and BENCHMARKS :
Tested on my cards with auto parameters. OS: Windows 7 ; Used drivers: 19.2.3 Cards are modified this way(using OverdriveNTool 0.2.8 beta 1):
R9 290X : XFX R9 290X DD 4GB, stock clocks(1000Mhz/1250Mhz)
R9 380X : Sapphire R9 380X NITRO 4Gb, stock clocks(1040Mhz/1500Mhz)
RX550 : ASUS RX550 2Gb, stock clocks(1183Mhz/1750Mhz), timings from 1500 strap(Hynix)
RX560 : MSI RX560 Aero ITX 4Gb, stock clocks(1196Mhz/1750Mhz), 925mV core voltage, timings from 1500 strap(Hynix)
RX570 : GIGABYTE RX570 GAMING 4Gb, stock clocks(1244Mhz/1750Mhz), 950mV core voltage, timings from 1500 strap(Elpida)
RX580 : SAPPHIRE RX580 PULSE 4Gb, stock clocks(1340Mhz/1750Mhz), 1025mV core voltage, timings from 1500 strap(Elpida)
RX590 : SAPPHIRE RX590 NITRO+ 8Gb, stock clocks(1560Mhz/2100Mhz), 1050mV core voltage, custom timings(Hynix)
Vega 64 : ASUS Vega 64 8Gb, stock clocks(1630Mhz/945Mhz), 1000mV core voltage. While mining it drops clocks to 1530/945

For some algorithms lower core clocks specified because of exceeding power limit.
NOTE: Update in progress.

bitcore, x16r, x16rv2, x16rt, x16s, x21s: these algorithms benchmarked with hashorder “0123456789ABCDEF”. With pool you will get higher and lower values, depends on hashorder
hex: this algorithm benchmarked with BLAKE as first algo. With pool you will get higher and lower values, depends on hashorder of current block.
timetravel: this algorithm benchmarked with hashorder “012345678”. With pool you will get higher and lower values, depends on hashorder and length of it for current block.
wildkeccak is memory hard algorithm, so better your timings and higher memory clocks - higher your hashrate

another supported algorithms, but not benchmarked because of low interest or they just ASIC mineable:

  • aergo, anime
  • blake2b-btcc, blake2b-glt, blake2s, bmw512
  • exosis
  • glt-astralhash, glt-globalhash, glt-jeonghash, glt-padihash, glt-pawelhash
  • lyra2v2
  • nist5
  • quark, quibit
  • renesis
  • sha256, sha256d, skein2
  • x11, x12, x13, x14, x15, x18, x20r

OPTIMAL PARAMETERS :
Since version 0.15.2 parameters –opencl-threads and –opencl-launch set automatically when you put auto. If you want to try different values to find probably better performance, you can start from values shown below each GPU initialization line.
E.g. lines below means –opencl-threads 2 --opencl-launch 21x0 . Where –opencl-launch consist of Intensity x Worksize.
Code: (log)
[2019-02-08 14:20:05] GPU #1 [BusID: #4] [Ellesmere] Radeon RX 570 Series
[2019-02-08 14:20:05] threads: 2, intensity: 21, worksize: 0/256, cu: 32, memory: 4096Mb

HINTS :

  • some algo’s can boost if use parameter –opencl-threads set to 2, or even 3(e.g. phi and skunkhash, but can be unstable)
  • higher intensity not always more hashrate, try both more and less value than auto
  • try different worksize, e.g. 64 or 128 instead of mostly used 0(same as 256).

DEV-FEE :

  • by default is 2% and can be reduced(see how wildrig.exe --help)
  • wildkeccak algorithm is 2% with no possibility to change

TODO :

  • extend statistics per GPU(amount of found, rejected and stale shares)
  • improve API, show zero statistics for inactive gpu’s if use –opencl-devices parameter
  • implement executing custom command when watchdog catch the gpu hang

Example of command-line start(with loop if miner crash):

    Code: (bat)
@echo off

:loop

wildrig.exe --print-full --algo algo --opencl-threads auto --opencl-launch auto --url pool:port --user wallet --pass password

if ERRORLEVEL 1000 goto custom
timeout /t 5
goto loop

:custom
echo Some error happened, put custom command here
timeout /t 5
goto loop

Changelog

0.20.1
- up to 5% hashrate speedup for mtp/mtp-tcr on Navi gpu's
- fixed x22i incorrect shares

0.20.0.3
- unlocked 1% dev-fee for mtp-tcr
- increased a bit hashrate for mtp and mtp-tcr on RX and Vega cards
- added parameter --split-job(should be useful for mtp-tcr)

0.20.0.2
- implemented mtp and mtp-tcr algorithms(Radeon 5700/5700XT support it too)
- new parameter --opencl-less-cpu-load

0.19.3
- fixed x16rv2

0.19.2
- added Radeon 5700/5700XT support for limited list of algorithms
- added support for Vega 11(gfx902)
- implemented x16rv2

0.18.0
- added glt-globalhash algorithm
- implemented --gpu-temp-limit and --gpu-temp-resume parameters
- now additionally to hashrate miner will show GPU temperature, fan speed and uptime
- added parameter --print-power(which will show power consumption per GPU Chip)
- added parameter --benchmark-timeout*

0.17.9:
- fixed blake2b family for Linux
- wildkeccak around %1 speed increase
- added --print-devices parameter

0.17.8:
- improved blake2b(lower power consumption on pre-Vega gpu's and higher hashrate on Vega gpu's)

0.17.7:
- donation for honeycomb now can be reduced to 1%
- slightly improved different algorithms for Vega cards(e.g. honeycomb up to 3%)

0.17.6:
- up to 5%-6% faster blake2b-btcc and blake2b-glt
- added skein2(WoodCoin)

0.17.5:
- added blake2b-btcc and blake2b-glt algorithms
- fixed gfx907(some Radeon VII gpu's) support

0.17.4:
- added just for fun anime algo
- possible fix to crash on Linux
- improved honeycomb up to 3%

0.17.3:
- up to 20% faster x25x

0.17.2:
- fixed support x25x on Linux
- fixed handling rejects for some pools(e.g. coinfoundry)

0.17.1:
- fixed x22i and x25x for Radeon VII
- fixed Tonga support
- re-tuned auto parameters for Baffin's, gfx804 and Hawaii gpu's

0.17.0:
- added x25x
- re-tuned auto-parameters to maximize hashrate with new optimizations for x16-family and other complex algorithms(right now only for Tonga, Fiji, RX470/570/RX480/RX580 and Vega cards)

0.16.5:
- should be better stability for wildkeccak using --scratchpad-safe-update on some systems
- improved x16-like(Shavite at start), honeycomb and skunkhash

0.16.4:
- improved honeycomb
- fixed hex, hmq1725 and some other algorithms hashrate regression
- fixed parameters --scratchpad-safe-update, --scratchpad-full-update, --no-extranonce(they was random if not specified)
- fixed communication with some pools

0.16.3:
- continue improve some hashorders for x16 family(JH512 in middle, SIMD at start)
- special improvement for Vega on almost all algorithms(bcd, x16-fmaily, hex, x22i, etc.)
- added parameter --no-extranonce
- added parameter --scratchpad-full-update

0.16.2:
- fixed xevan on Vega
- another improve to x16-like algorithms for specific hashorder(SIMD at start)

0.16.1:
- added algorithm xevan
- improved speed a bit for some hashorders in x16-like algorithms(CubeHash and Echo at start)
- added parameter --scratchpad-safe-update for wildkeccak algorithm

0.16.0:
- added wildkeccak algorithm
- added honeycomb algorithm(since 0.15.6 preview - boost up to 5%)
- improved speed on some hashorders for x16-like algorithms
- interface changes, now real difficulty of shares shown and so on

0.15.3.8:
- tuned auto-parameters for Vega
- fixed Tonga and Bonaire support

0.15.3.7:
- tuned auto parameters for RX550 and for some algorithms for other gpu's

0.15.3.6
- added support for Lexa RX550(gfx804)
- increased a bit speed of lyra2v3
- added bmw512
- added --diff-factor parameter
- removed diff from accepted message
- fixed support for Fiji and Tonga

0.15.2.2
- fixed broken Ctrl+C command

0.15.2.1
- fixed skunkhash

0.15.2
- tweaked lyra2v3 a bit
- fixed x16rt to support GIN coin
- temporary removed mtp algo(will be improved in next releases)
- implemented auto parameter for --opencl-threads and --opencl-launch(will work only for RX460/RX560, RX470/RX570, RX480/RX580 and Vega 56/64)
- now Ctrl+C(closing the miner) works more correctly

0.14.0
- added support for lyra2v3, lyra2vc0ban, glt-astralhash, glt-jeonghash, glt-padihash and glt-pawelhash
- correct shutdown of miner

0.13.4
- added algo x21s, dedal
- correct checking rejects from pools like suprnova
- improved speed of hex, hmq1725, x16r, x16s, x22i

0.13.2
- improved hashrate for hex, hmq1725, sonoa, x16r, x16s, x17, x18 and x22i
- extended accepted/rejected message with number of GPU that solved the share

0.13.1
- added aergo algo
- fixed stability of hashrate

0.13.0
- added x18 algo
- improved speed for x16, x17, hex and other algo's

0.12.9
- increased hashrate for x22i up to 10%
- fixed hashrate drops for x22i
- slight boost for x16r, x16s and x17 algo

0.12.8.1
- fixed rejects in some cases for x16r, x16s, hex and some timetravel algo's

0.12.8
- speedup for all algo's, up to 10%

0.12.7
- fixed low hashrate on Vega cards
- more improvements to x22i
- now higher intensity can be set

0.12.6
- significant increase of hashrate for x22i algo
- fixed support gfx901

0.12.5.1
- one more fix for NiceHash support

0.12.5
- fixed random crash after "new job", introduced in 0.12.4
- fixed NiceHash support
- fixed extra nonce subscription
- officially added algorithms x22i, exosis and skunkhash

0.12.1.1
- fixed hashrate printing per gpu

0.12.1
- added bitcore(timetravel10) algo
- improved hashrate for x16r/x16s/hex algo's when fugue, whirlpool, or skein is first in hashorder
- slight hashrate increase for all algo's where fugue used(e.g. bcd, renesis, a bit higher increase for sonoa and hmq1725)
- implemented colorized hashorder printing for some algo's
- implemented --benchmark parameter
- reworked --opencl-threads, now will work with --opencl-devices correctly
- fixed custom algo support in HiveOS

0.12.0
- slight speedup for bcd
- fixed API for showing correct hashrate when use --opencl-threads
- stripped kernels

0.11.9
- speedup x16r/x16s in some cases on final step
- fixed regress for simd, so should speedup x16r/x16s and return speed for other algos(bcd, sonoa, etc.)
- added hex algo
- now intensity can be set using sgminer-like numbers(old one supported too)
- improved API a bit, now threads contains hashrate per GPU, not per thread, so it should be correct now for HiveOS/etc.
- fixed GPU numbering at start when --opencl-threads used

0.11.8
- regen job now per GPU, should increase poolside hashrate
- added x16r, x16s and timetravel algorithms
- 30% boost for hmq1725
- grouped print of hashrate per GPU when use --opencl-threads parameter
- H/s unit in API instead of kH/s

0.11.7
- slight hashrate improvement
- added x17 algo
- improved pool communication code
- backup pools support(just use --url, --user and --pass as many times as you need)

0.11.6
- fixed regen job(it was working only once per "new job" message)
- optimized phi and renesis a bit
- some changes to kernels for more safe and correct calculations

0.11.5
- some small improvements to renesis, c11, phi, bcd, tribus
- implemented job regen using extra nonce, should be no more "waiting for a new job more than"(pool should support extra nonce subscription, some of GeekCash pools don't support it)
- one more fix to "Duplicate share" problem

0.11.4
- implemented subscribe for extra nonce
- final fix for "Duplicate share"
- implemented support few solved shares per iteration for one GPU

0.11.3
- some minor improvements to hashrate of different algo's
- added c11 and tribus

0.11.2
- critical: fixed sonoa hashing
- fixed sending stale shares
- fixed possible "Duplicate share"
- added phi algo

0.11.1
- fixed support not yiimp-based pools
- significant boost for all algo's
- added geek algo

0.11.0
- fixed rejects after donation mining
- critical: fixed possible stuck at donation mining if miner can't login

0.10.9
- added bcd algo
- improved speed for hmq1725
- a bit more correct share validation for sonoa and renesis

0.10.8.1:
- fixed hmq1725 algo

0.10.8:
- added sonoa algo
- implemented --opencl-threads parameter

0.10.7:
- added hmq1725 algo
- improved speed for renesis algo
- added gfx900 kernels