Author Topic: lolMiner 1.03: Improved Beam Hash III speed and a crash fix (July 5th)  (Read 1167 times)

0 Members and 1 Guest are viewing this topic.

Offline Mining_Eth

  • Full Member
  • ***
  • Posts: 118
    • View Profile
-- Announcement Thread --

Hi there,
this is the announcement thread for lolMiner 1.03 a multi algorithm Equihash / Beam & Grin miner with focus on AMD GPUs (OpenCL based).
Note it will run on most Nvidia GPUs, too but the speed and stability may vary.


lolMiner 1.03:
[Linux & Windows]

Driver Requirement:
Windows: Adrenaline 19.1 & newer (pre Navi) / 19.10.02 & newer (Navi), Linux: 18.10 & newer (RX 390, Fury, 470-580), 18.50 & newer (Vega, VII), 19.30 & newer (Navi)

Supported Algorithms
Algorithm Solvers for Memory Size

Beam Hash I 3G / 4G
Beam Hash II 3G / 4G
Beam Hash III 6G
Cuckatoo-31 4G / 8G / 16G
Cuckatoo-32 4G / 8G / 16G
Cuckaroo-30CTX 8G
CuckarooD-29 4G / 6G
CuckarooM-29 6G / 8G
ZelHash 3G / 4G
Equihash 144/5 2G
Equihash 192/7 3G / 4G
Equihash 210/9 2G

* and many others


Version 1.03

New Beam Hash III 4G solver, replaces the 6G solver on AMD Vega GPUs and earlier (+5 - 8% performance on RX 580 & Vega GPUs)
New Beam Hash III 6G solver on ROCm and for AMD Navi GPUs (+8-10% performance on Navi cards)
Fixed a bug with the API (--apiport) crashing the miner in Windows on startup

Version 1.02

Disabled Beam Hash III auto switcher. --coin BEAM now pointing to --algo BEAM-III - this should resolve some config problems
Fixed a bug that made the miner not starting BEAM-III on RX 550 4G GPUs
Fixed a bug that made the miner not start mining Cortex
Fixed a bug with Beam Hash I 3G solver (miners did not find it)
Fixed a bug not writing a log file when --log on was given
Fixed a bug with parameter --digits (was missing in 1.0 and 1.01)
Re-Enabled parameter --port, but with a big red deprecation warning. Will resolve some 1.0 config problems

Version 1.01
Improved performance of Beam Hash III on all 6G+ cards (by about 4-5%)
Added 3G* / 4G solver for Beam Hash III
(* will not work in Windows 10 and some older AMD cards)
Fixed an issue with mining Beam Hash III to NiceHash
--tls now allowed to be used multiple times to configure it for each pool separately
If found the miner will now load the user_config.json file per default again (fixes issues with minerstat)
Fixed temperature and power monitoring for VII and Navi on Windows 10 (Fan speed may still be broken ... work in progress)

Version 1.0
lolMiner got a restructure how to configure it and also features a 2nd, more simple config file format.
Use lolMiner -h to get a list of new supported parameters or visit the new online manual
Added optimizes solvers for Beam Hash III for AMD & Nvidia cards. Use --coin BEAM to auto switch from BeamHash II to BeamHash III on fork (approx June 28th, requires 8G card) or select Beam Hash III solver manually with --algo BEAM-III (requires 6G card)
Added performance improved (+ >10%) GRIN-C29M solver for 8G GPUs
Added Cuckaroo-30 solver to mine Cortex Ai (--coin CTXC or --algo C30CTX) for all 8G and higher GPUs
Added support for non-integer difficulty on Grin
Reactivated support for Beam Hash I including support for personalization strings.
AMD Navi does now work on all supported algorithms
Removed Grin Auto-Switcher (C31 is obsolete now and the switcher would not work on next Grin fork)
Removed support for MNX (Minex Coin project is dead / abandoned by developers)
Added temperature, consumption and fan speed readings in API and long statistics
Internal bug fixes

Version 0.9.8
New GRIN-C29M solver, Less memory usage (fits 6G) & 8-12% better performance
Added BEAM support for AMD Navi Generation
Fixed a lot of driver issues of the last build with GRIN codes
Renamed GRIN-AD29 to MWC-C29D

Version 0.9.7
Windows: Increased GRIN-C32 performance on Navi cards by 15-18%
Linux: Increased GRIN-C32 performance on Vega, VII & Navi cards by 15-18%
Added a Grin Auto profit switcher (use: --coin GRIN-AUTO + further options). Please read carefully how to use it and which pools are supported.

Version 0.9.6
Significant improvement on GRIN-C29M performance (+6-7% on 580 and Vega cards, +10% on Navi)
Significant improvement on GRIN-C31 and GRIN-C32 solver (~ +6% on all AMD cards)
Added a 16G GRIN-C32 solver (Approx 20% faster on Radeon VII, Vega FE and 570 16G)

Version 0.9.5
Added support for Grin CuckarooM-29 (hard fork on Jan 16th) on 8G AMD GPUs, use --coin GRIN-C29M to mine with it.
Hint: The miner will pause until the fork height is reached not to waste energy. Use --coin FLOO-C29M to test the miner in floonet testnet before if you like.
Improved C31 performance on 8G cards by ~5% (Windows: relatively to 0.9.3, Linux: relatively to 0.9.4)
Navi on Windows now runs same kernels as in Linux
Slightly lowered energy use of C31 / C32 solver
Added aliases GRIN-C31 and GRIN-C32 for the Cuckatoo solvers (the old names still exist and continue to work)
Changed driver requirement for all GRIN codes: 18.50 for all pre-Navi cards, 19.30 for Navi (Linux); Adrenaline 18.12 for all pre-Navi, Adrenaline 19.10 for Navi

Version 0.9.4 (Linux Only)
New GRIN-AT31 performance code for Vega (+7%) and Navi (+12%). Requires amdgpu-pro 18.50 or newer or ROCm 2.10 driver
Experimental support for Cuckatoo-32 (use --coin GRIN-AT32) on 8G AMD cards (see further notes)
Windows release postponed due to incompatibilities with the new performance codes.

Expected performance (C31, 0.9.4)
Radeon VII (Stock, 19.30): 1.91 g/s
Radeon VII (1330 / 975 / 775mV, ROCm 2.10): 1.55 g/s
Vega 64 (1550 / 1100 / 1000mV, ROCm 2.10): 1.45 g/s
Vega 64 (1350 / 1025 / 875mV, ROCm 2.10): 1.25 g/s
Vega 64 (1350 / 1025 / 875mV, 19.30): 1.22 g/s
Vega 56 (1270 / 900 / 862mV, 19.30): 1.1 g/s
RX 5700 (Power Color Red Dragon, Stock, 19.30): 0.99 g/s

Expected performance (C32)

Radeon VII (Stock): 0.5 g/s
RX 64 (Stock): 0.39 g/s
RX 56 (Stock): 0.35 g/s

About Cuckatoo-32 (Grin)
The primary grin proof of work Cuckatoo 31+ is designed in a way that the original instance - cuckatoo-31 - will fade out beginning mid January 2020, which means its difficulty will increase slowly over a period of 31 weeks until it gets impossible to mine a C31 block on the chain. But as by design also more difficult instances of Cuckatoo, namely Cuckatoo-32 ... Cuckatoo-63 are implemented on the chain that also can make blocks. The difficulties of this higher instances will remain stable, such that at some point it will be more profitable to mine Cuckatoo-32 instead of Cuckatoo-31 (likely from mid of February).

lolMiner 0.8.4 provides the first public implementation on a C32 GPU miner for 8G cards. The code is not yet tuned to the max and thus flagged experimental. When you want to pool mine with it make sure the pool supports Cuckatoo-32. Some pools (e.g. - especially the pools using the reference pool software - support it on their C31 ports without mentioning it, other pools currently reject C32 shares. Solo mining with C32 will work as usual. Note that a share of C32 has ~2.064 times the weight of a C31 share and will thus rewarded higher / has a higher chance to mine a block by that factor.

Currently there are already two solo mined C32 blocks on the Grin blockchain using an early version of the code published with lolMiner 0.8.4. The two blocks have height 430112 and 430255.

Have fun experimenting with C32.

Version 0.9.3
Extended GRIN-AT31 compatibility to older drivers (18.x +)
Improved GRIN-AT31 performance on ROCm (RX 470/480/570/580/Vega/VII)
Introduced early job cancellation for GRIN-AT31+ (improves hash on pool side, see further release notes)
Deeply reworked kernel scheduler
Fixed GRIN-AT31 kernel bugs (improving stability and fidelity)
Fixed Bug: Vega FE loading 8G instead of 16G GRIN-AT31 solver in Windows
Fixed Bug: Watchdog did not call right file in Windows
Added --disablewatchdog 1 parameter to disable the 0 sol/s / 0 g/s detection

About Early Job Cancellation for GRIN

The GRIN proof of work is a compute intense and rather slow algorithm. Especially C31 often needs (at 1 g/s) about one second for each graph processed. In case a new job (for a new chain height) arrives, the current calculation effort is worthless, because the block that was mined on already got found.
lolMiner 0.9.3 now introduces an early cancellation for long lasting works: if a new work arrives that invalidates the current run calculations, they get canceled to start quicker on the fresh work. To demonstrate the effect see the example describing the 0.9.2 and 0.9.3 difference:
Assume you have a card running 1 g/s on GRIN-AT31. Then in 2 minutes (120 seconds) it will be able to process 120 graphs. On average - Grin has a 1 minute block time - two of these graphs are already obsolete when they got finished.
lolMiner 0.9.2 will display the 1 g/s, because of 120 processed graphs per 120 seconds. But two of the graphs are then filtered out in the stratum module, thus the pool can see at most 118 / 120 = 0.983 g/s (minus about 1 graph fee).
lolMiner 0.9.3 will cancel the running work before it gets completed. On average you will be able to process one more graph then 0.9.2 assuming both are canceled about half way through. Thus lolMiner 0.9.3 starts 121 graphs and completes 119 of them. The displayed hash rate is now 119 graphs /120 seconds = 0.991 g/s. This equals what the pool could see (minus one for fee), because the 119 completed are the ones that got not canceled early.

Conclusion: lolMiner 0.9.3 DISPLAYED hash rate may be a little lower then 0.9.2, but what arrives at pool is better. The slower the cards are, the more drastic is this effect, e.g. a 580 8G running at 0.65 g/s will benefit almost 2% on pool side, a VII with 1.75 g/s only half a percent.
Combined with the mostly on GPU cycle finder lolMiner achieves a stale share rate of less then 0.7% and thus gives you best displayed to pool hash rate ratio available for Grin Cuckatoo-31.

Version 0.9.2
Significant performance improvement of GRIN-AT31 on 8 / 16G cards (+5% on Polaris & Vega, +10 on Navi)
Experimental support for GRIN-AT31 and Polaris, Vega and VII using AMD ROCm drivers
Added range checks to GRIN-AT31 code (improves better stability)
Added function to call external watchdog scripts in case a GPU fails during mining (see release notes)

Usage of Watchdog Script

In case the miner detects no action of a GPU for at least a minute it will call the included scripts "" (Linux) or "reboot.bat" (Windows) and display a warning message in red. Afterwards the counters are reset. The scripts can be used to trigger a reboot of the rig or to call any other watchdog actions. The miner itself will take no further action and continue operation on the remaining cards.

Expected Performance:

Radeon VII (stock): 1.79 g/s
Radeon VII (1375/975/0.793v, 110W): 1.37 g/s
Vega FE (stock): ~1.3 g/s
Vega 56 (1230/900/0.85v, 130W): 1.0 g/s
RX 5700 (Red Dragon, stock): 0.91 g/s
RX 580 8G (1240/2150/0.868V, ~120W): 0.61 g/s

Version 0.9.1
Added GRIN-AT31 solver for 16G AMD cards (Better performance on Radeon Vega FE, Radeon VII and Sapphire RX 570 16G)
Updated GRIN-AT31 solver for 4G AMD cards (Better performance on Fiji based GPUs, Polaris 10 4G)
Fixed a bug causing too low pool hash on GRIN-AT31
Added experimental GRIN-AT31 support for AMD Navi (8G), AMD Fiji (4G) and AMD Hawaii (4G / 8G) GPUs

Version 0.9
Significant performance improvement for GRIN-AT31 on 8G AMD cards (+22% on Polaris to 30% on Radeon VII)
Disabled 16G solver for GRIN-AT31 (the 8G is faster at the moment)
Reduced Grin stale shares
Added --coin YEC parameter for YCash
In command line lolMiner now accepts --pool address:port pattern
Fixed a bug with the API crashing when accessed by Chrome based browsers
Fixed a bug in EXCC stratum not passing number of submitted shares to the API

Version 0.8.8
- Removed BEAM-I (Beam Hash I), since the fork had happened, BEAM-II and BEAM now both point to the new PoW
- Improved driver detection mechanisms and kernel selection
-> On AMDs: The invalid work group size bug should be gone for Beam*
-> On Nvidias: Performance of Beam Hash II should be improved (since it now uses the right kernels)
- Added new simple .bat (Windows) and .sh (Linux) files for one liner configuration.
- Beta: Equihash 96/5 (--coin MNX) should now allow to change the personalization string (--overwritepersonal=newPers)

(*) Note: If you see now BeamHash II running in a compatibility kernel on Polaris or Vega cards please report me your driver version (it was tested with 19.20 drivers) - older drivers may in future be unsupported for newer kernels.

Changes of 0.8.7 over 0.8.6
- Added support for Beam Hash II on older AMD cards (R 9 200 / 300 4 & 8G cards; R9 280(X), HD 79x0 with 3G). Note that the auto-switcher is only working with at least 4G, for the 3G cards please use --coin BEAM-II manually on fork height.
- Fixed an issue with Genesis Network (GENX) missing in lolMiner 0.8.x

Changes of 0.8.6 over 0.8.5
- Added support the BEAM hard fork on block 321321 (approx August 15th), read below about the usage
- Fixed a bug with the BEAM stratum back end in case of formatted job descriptions (e.g. new Nicehash platform)

Note about the BEAM hard fork usage
There are now 3 parameters for mining BEAM, --coin BEAM-I, --coin BEAM-II and --coin BEAM
- Use BEAM-I for mining the current / old BEAM proof of work that is valid until the hard fork.
- Use BEAM-II for mining the new BEAM proof of work that is valid from the hard fork.
- Use BEAM for an automatic switcher between the two PoWs. This mode will detect the height and the fork height and will automatically switch over on the right block. Note that this requires the pool to send at least the height. On startup the miner will detect if the pool is compatible to the automatic switcher and display a message if all is fine.
The message is colored in command line: green - in this case the new PoW is guarantied to be supported; yellow - the height is send so the miner can switch over, but its uncertain if the new PoW is implemented; red - the pool does not send the required information.
In the last case the miner will show the message and then quit after 10 seconds. In this case select the right PoW manually with BEAM-I or BEAM-II. When at least the height is send, the miner will start mining in automatic mode.

Changes of 0.8.5 over 0.8.4
- Added support for Grin Cuckarood-29 algorithm (--coin GRIN-AD29) for 4G and 8G AMD cards. This new PoW will be active on Grin from block 262.080 (July 17th)

Changes of 0.8.4 over 0.8.3
- Fixed a 0 sol/s issue for Zelcash
- Reduced Zelcash memory usage to 2.9 GBytes
- Fixed a bug with the stratum for 125/4, 144/5, 192/7 and 96/5 in case the pool sends a very low job id.

Changes of 0.8.3 over 0.8.2
- Added a new Cuckatoo-31 solver for 16G AMD cards

Changes of 0.8.2 over 0.8.1
- Added support for ZELHash (EquihashR 125/4/0). The new algorithm is available under --coin ZEL now. If you want to mine Zel pre fork please use 0.8.1 or earlier version

Changes of 0.8.1 over 0.8
- Added support for NiceHash on Grin
- Fixed a bug with some pool software (e.g.
- Reduced number of stale shares submitted

Changes of 0.8 over 0.7(.1)
- Added support for Grin (Cuckatoo-31) for 4G (Slean) and 8G cards. The parameter is "--coin GRIN-AT31"
- Grin cycle finding is completely done on GPU, the miner has almost 0 CPU load (on AMD, Nvidia has some due to OpenCL back end)
- Stratum bug fixes (NiceHash) for 144/5, 192/7 and 96/5
- Improved general stability
- Added a distinct 1G / 3&4G / 6&8G kernel for mining MNX (Windows, Linux had this in 0.7.1)

Changes of 0.7.1 over 0.7
- Added a distinct 1G / 3&4G / 6&8G kernel for mining MNX
- Added a new parameter --asm. The parameter activates the use of binary kernels, see below.

Binary kernels in 0.7.1
lolMiner 0.7.1 features binary kernels for mining **BEAM** that are tuned with AMD assembler commands. This kernels currently **require** the **AMD ROCm** OpenCL driver in Linux (thats why 0.7.1 is Linux only).
When you run a system with this OpenCL drivers using --asm 1 or the pendant in config file, the miner will try to load the binary kernels.

The kernels feature a speedup of approx 8% on Radeon RX 580 series and 10% on Vega 56, 64 and Radeon VII. Also the energy consumption should slightly be reduced. There are kernels included for RX 470, 480, 570, 580, 590, Vega 56, 64 and Radeon VII. Fiji GPUs can be compatible but are untested yet.

It is planned for future releases to extend the support for other drivers and Windows, but these other drivers make it complicated to handle the improvements. Stay tuned.

Changes of 0.7 over 0.6 stable

- Added support for Beam (BEAM, modified Equihash 150/5), only tuned for AMD cards
- Added TLS support for stratum. The default is off for all coins except Beam but on for Beam. This adds a new parameter --tls to control TLS on / off (see manual on usage)
- Some bugfixes and reworks in the stratum code. It is more stable now
- Complete rework of the mining back end. Lower CPU load for AMD graphic cards.
- GPU sorting changed. Its now sorted by PCIE bus address. This addresses are also shown at startup and in API.
- Integrated all kernel files to the executable
- Lowered fee of ALL algorithms / coins to 1%
- Added --help parameter (needs formating)
- API update interval is now fixed to 10 seconds
- API now smooths the performance data over approx one minute

Coin specific changes:
- Removed workbatch parameter for MNX, its obsolete now
- Removed 96/5 Nvidia specific kernel
- Changed Safecoin (SAFE) from Equihash 144/5 to 192/7
- Added Vidulum (VDL), Equihash 192/7

Changes of 0.6 over 0.5 stable

- New codes for all coins on all cards (better speed)
- New API and statistics module (API updating every 10 seconds)
- Better stratum stability
- Improved stability for many GPU systems
- and many more small stuff I can not remember