Author Topic: lolMiner 1.17: AMD Miner for Ethash / BEAM / GRIN / Ae / Tube / Equihash & more  (Read 2651 times)

0 Members and 1 Guest are viewing this topic.


  • Guest
-- Announcement Thread --

Hi there,
this is the announcement thread for lolMiner 1.17 a multi algorithm Ethash / 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.17:
[Linux & Windows]

Driver Requirement:

Cuda 10 or 11
- Big Navi: amdgpu-pro 20.40 (Linux) / Adrenaline 20.11.2 (Windows) and newer.
- Navi: amdgpu-pro 19.30 (Linux) / Adrenaline 19.10.02 (Windows) and newer.
- Vega: amdgpu-pro 18.50 (Linux) / Adrenaline 18.10 (Windows) and newer.
- older cards: Blockchain drivers and newer.


There is a new online manual with basic examples hosted here.

Supported Algorithms

Algorithm Solvers for Memory Size

Ethash 4G+
Beam Hash I 3G / 4G
Beam Hash II 3G / 4G
Beam Hash III 3G / 4G
Cuckatoo-31 4G / 8G / 16G
Cuckatoo-32 4G / 8G / 16G
Cuckaroo-30CTX 8G
Cuckaroo-29 6G
Cuckoo-29 6G
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.17
Feature Updates:

Significantly reduced Ethash power draw on Navi GPUs, Slightly improved performance of 6800 (XT) / 6900
Added Cuckoo-29, Cuckaroo-30 CTX, Cuckatoo-31 (MWC) and Cuckatoo-32 (Grin) for RX 6800 family of GPUs
Reduced number of stale shares on Cortex algorithm. This will result in a minimally lower displayed hash rate, but higher pool side hash.
Added a basic temperature protection mechanism. See notes below for usage.
Added parameter --singlethread to work with Ethash and Equihash algorithm. This will disable the 2nd mining thread and slightly reduce performance of the involved cards. Use this option to reduce stumbles when a card does graphic output in parallel. Use --singlethread (equivalent to --singlethread -1) to enable single thread mode for all GPUs, use --singlethread to set the mode for one single card.
Added reading of junction temperature on AMD GPUs.
The API is now bound to the local host, causing less issues with firewalls.
Windows: use --computemode to automatically enable the compute mode on all detected AMD GPUs. Requires higher privileges and a driver restart, see example files.
lolMiner.exe Windows executable is now digitally signed.


Ethash Ethproxy stratum mode some times loosing worker name.
Beam Hash III not starting up in Linux on RX 5000 & RX 6000 series card on amdgpu-pro 20.45 driver.
Ethash & Beam not starting up on Radeon R9 380
Ethash not starting up on some 6G Nvidia cards
Ethash mining frequently trying to start up a card if there was an error during mining.
"DEVICES" parameter not working when configuring the miner from json file.

Basic temperature management / overheating protection:

Use --tstop to stop any mining operation on a GPU at the given temperature. Use --tstart to allow a restart of the card below a lower temperature. Further you can use --tmode edge/junction/memory to apply the scheme to edge (chip), junction (hotspot) or memory temperature. If a GPU does not have the required sensors the chip temperature will be used as a back up - if no sensors are available at all the parameters will be ignored.

Note that at the moment the miner has no fan control module and also no throttling to keep a target temperature. This may be included in a future version. Thus you should put the limit high enough so the operation system or the driver has a chance to ramp up the fan speed itself. Currently tstop is supposed to be a overheat protection to prevent hardware damage in extreme cases, e.g. broken fans.

Version 1.16

Added support of Ethash and Beam Hash III for RX 6000 generation of GPUs
All supported algorithms now show the share difficulty and have best share statistics.
New feature: use --rebuild-defect n to trigger a rebuild of DAG if a GPU produced n defect shares on the current one. Default is 3, use 0 to deactivate this feature.
New feature: Use --workmulti n to modify the amount of Ethash work a GPU does per batch. Higher values will cause less CPU load but more stale shares, lower values will give less stale shares but higher CPU load. Performance may vary for different values. Default is 128.
New feature: if Ethash pool disconnects within 2 seconds from connection attempt (immediate reconnect), then the other stratum mode is tested to login.
New feature: AMD Vega and newer cards now display memory temperature in statistics & api (only visible if there is at least one such GPU in the rig).
Default ethstratum changed from ETHV1 to ETHPROXY for better pool compatibility.
Stratum pool addresses now understand "stratum+tcp://", "stratum+ssl://" and "ssl://" prefixes (turning on or of ssl / tls automatically) for better compatibility with existing configurations.
Slightly reduced CPU load when mining Ethash
New coloring scheme with more friendly colors. For terminals that do not have rgb colors (e.g. shellinabox) use --basecolor to restrict to a simpler set. Use --nocolor to deactivate coloring completely.
Fixed bug: Cards may crash when switching from ZIL cache back to normal mining.
Fixed bug: Wavy hashrate - especially for rigs with many AMD Navi GPUs.
Fixed bug: (Linux:) Watchdog not called when a GPU is stuck & extremely high CPU load on crashed GPU. (1)
Fixed bug: Hashrate reporting not working on some pools (e.g. sparkpool)
Fixed bug: Miner can crash after trying to reconnect to same pool over 5 minutes.
Fixed bug: Miner crashes when mixing TLS and non-TLS pools for fail-over.

(1) Note on watchdog use: When the watchdog script is called the miner will stop working on the other cards. If this is not wished use --disablewatchdog. Please make sure the script can be executed with the current user rights / does password-less operations.

Version 1.14

Added Ethash Zombie mode for 4G Nvidia GPUs. Use --4g-alloc-size to calibrate the number of MBytes the GPUs are allowed to use.
Fixed a segmentation fault on Nvidia & mixed rigs when starting Ethash mining

Version 1.13

Ethash: Reduced power draw significantly on non-zombie mode for Rx Fury & Rx 470 - 590, slight reduction for Vega & Navi
Ethash: Slightly improved performance on Vega, Navi and Nvidia GPUs. Significantly improved performance on R9 390. (1)
Added (Linux) Zombie mode for RX 5300XT & RX 5500 4G cards. Windows users can try it by using "--win4galloc off --4g-alloc-size 4008". (Vary the last number to find out sweet spot)
Added ETCHash support for Radeon HD 79x0 / R9 280 (X) & RX 5300 3G. On Linux will be good for ETCHash till epoch ~250 (about July 2022)
Added caching of last 5 used light caches. This will reduce the switching time for Nicehash & ZIL dual mining significantly.
Added support for extranonce subscription on EthereumStratum/1.0.0 (Nicehash) format - this will stop the miner from frequently reconnecting to Nicehash
Added detection of pool not accepting worker name in <wallet.workerName> format when using ETHPROXY stratum. Miner will reconnect with worker name copied into --worker in this case.
Added experimental workaround for mining epoch 385+ with RX 470 - 590 and Linux kernel 5.6.x: Note this fix will deactivate the ZIL cache ability and force the miner to create DAG a bit slower. Deactivate it with --disableLinux56fix . Other Linux kernel versions and other GPUs are unchanged.
Fixed bug: "conversion of data to type "b" failed" when using ETHPROXY stratum mode on some pools.
Fixed potential issue causing GPUs to freeze when a GPU needs to reboot, e.g. epoch change or connection loss.
Fixed benchmark mode for ETCHash. Use --benchmark ETCHASH --benchepoch 390 to benchmark performance post fork.
Fixed benchmark mode not starting up when called from json type configuration.

(1) (its still not perfect, but way better)

Version 1.12

Added support for ETCHash (Ethereum Classic dag size reduction planned for end November). Use --algo ETCHASH to activate it. (See note below).
Reworked Ethash codes for late epochs on Windows. See 4G_Windows_Readme.txt for configuring it.
Slightly improved Ethash efficiency for GCN 3 (R9 Fury, 470 - 590) & Navi cards
Added experimental support for Ethash on Nvidia GPUs (See note below)
Added new parameter: --4g-alloc-size to define the memory allowed for Ethash on 4G cards. Maxing out will give more epochs of mining & better Zombie mode performance, lower values may improve compatibility. Suggested values: Linux: 4076 Windows 4008 - 4024
Added new parameter: --worker to set the worker in ETHPROXY stratum mode (improves pool compatibility)
Overall new Ethash host size back end - hopefully improving stability of mining
Fixed bug: Zombie mode generates defect shares in Windows
Fixed bug: Logs were not written when "LOG" : 1 was set in json style config file

Note about ETC Mining
Ethereum Classic is going to reduce their DAG file size by end of November. To make the miner compatible either use --algo ETCHASH, --coin ETC or --algo ETHASH --enable-ecip1099. Also it can be activated by the pool when mining Ethash, if the pools sends "algo" : "etchash" with a new work message (this is planned by some pools, e.g. 2Miners).

Note that up to epoch 389 ETCHash and Ethash is identical. If you mine ETC on a 4G card it will have entered Zombie Mode on epoch 382 (in Linux) and will stay in there until epoch 389. When epoch 390 starts it will jump back to normal speed.

If you want to mine the ETC mordor testnet, add special parameter "--ecip1099-activation 82" to configure the miner that it switches on testnet epoch 82 (default is mainnet epoch 390)

Note about Nvidia Mining
lolMiner will use OpenCL also for Nvidia mining. That said if your cards are not shown on miner startup you may need to install cuda-toolkit which includes the OpenCl drivers. Note that Nvidia OpenCl execution only knows busy waits for the GPUs to check if they have completed work. Thus using it give high load one core of your CPUs cores independently of the CPU speed. This is considered normal!

Version 1.11

Added experimental ZOMBIE mode for 4G AMD GPUs (Fiji & Polaris). This will allow continue mining Ethash above the 4G DAG size limit with some time memory trade of. This allows efficient ETH mining until ~February in Linux and end of this year in Windows (a), (c) .
Complete rework of Ethash memory allocation strategies (see below)
Added bestshare display & api output for BeamHashIII
Fixed BeamHashIII for R9 380 8G cards (they now use the working 4G code)

New allocation strategies:
For 8G cards:
-> The ZIL cache is now stable and can be safely enabled on all drivers
-> Temporarily fixed allocation issues on 19.x drivers in Linux (b)
-> 8G cards will now allocate up to 5 epochs ahead, so they need to go through this critical phase less often

For 4G cards:
-> Windows: added experimental mem allocation pattern that should allow reaching epoch 375 or 376 at full speed ( * ). It is default on in Windows, you can turn it off with "--win4galloc 0"

(a) The new memory allocation pattern and the Zombie mode are highly experimental in Windows and can occasionally produce defect shares. This will be fixed in next version.
(b) The fix might stop end working on epoch 384. If you see the miner struggling to start up when coming close to that epoch, then consider upgrading your driver or installing a different Linux kernel. The problem only occurs with some amdgpu-pro drivers with version number 19.x (20.x are fine !) and some Linux kernel versions.
(c) On higher epochs the Zombie mode may need a bit more power then for working epochs. If you see crashed loosen your OC / UV settings slightly until it is stable again.

Version 1.09

Added support of Vega GPUs on 18.30 and 18.40 drivers on Ethash and BeamHash III
Fixed bug: Miner crashes on startup when Ethash coin different to ETH / ETC is mined
Fixed bug: Stratum module may crash on epoch change or not amend epoch change
Fixed bug: DAG epoch less then 200 should work now (instead of crash)
Fixed bug: short statistics show very high hash rate after temporary connection loss. Note: on startup first 30 seconds will show lower hash rate now since it involves DAG generation.
Fixed bug / new feature: stratum does no longer crash when EthereumStratum/1.0.0 login request is responded in Ethproxy format. Instead stratum module now tries to change the mode to fit the pools format.

Version 1.08

Added support for Ethash on AMD GPUs (R9 380 and newer) at 0.7% fee. Use --algo ETHASH to mine it.
For Ethash in Linux all 4G cards are supported up to epoch ~380 to 382 (most often: 381). 6G and higher cards are ready to run past passing the 4G barrier - 8G cards are verified to work up to epoch 700. Windows use of 4G cards might work, but can not be guarantied. To test it, use --keepfree parameter.
Added support for BeamHash III on 4G Tonga (R9 280(X) ) GPUs
New parameter (all algorithms): Use --keepfree (default on Linux 5, Windows 150) to set the number of MBytes the miner should reserve on each GPU for the operation system. On Ethash this will affect the maximum epoch the miner tries to start, on other algorithms the kernel the miner will run (in case a lower memory kernel is available).
New ethash specific parameter: Use --benchepoch among with --benchmark ETHASH to run the benchmark mode for a fixed epoch height (default: 350)
New ethash specific parameter: Use --ethstratum to set the stratum mode for ethash. Currently available options are ETHV1 (default) and ETHPROXY
New ethash specific parameter: Use --dagdelay to put a delay in seconds between allocation of DAG for the single GPUs. May help especially in Windows to get a rig with low system memory and small page file running.
Fixed bug: watchdog toggle was inactive although it should be active.

Version 1.07

Added support for mining Cuckoo 29 (Aeternity, use -a C29AE) on 6G+ cards
Added support for mining Cuckaro 29-48 (Planned Italocoin fork, use -a C29-48 ) on 6G+ cards
Minor cosmetic fixes

Version 1.06

Added support for Cuckaroo-29B (Bittube, use --algo CR29-40 to mine it) for 6GByte and higher cards
Added support for Cuckaroo-29S (Swap, use --algo CR29-32 to mine it) for 6GByte and higher cards
New feature: Use "--devicesbypcie" to make "--devices" recognize PCIE-Bus : PCIE-Address pairs instead of the normal numberation
Added currently connected pool and total uptime of the miner to the longer statistics
Improved Beam stratum: For Beam the miner now can distinguish between stale and normal rejected shares. Requires pool to send block height (currently not on Nicehash, other pools work fine). Also the assignment of shares towards GPUs should now work better then before.
Fixed bug: Beam Hash III 3G miner not starting up in 1.05
Fixed bug: Beam Hash III not starting up on older revisions of the Blockchain driver
Fixed bug: Miner crashed when a CPU only OpenCL platform (e.g. pocl) was found

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
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.
« Last Edit: January 10, 2021, 07:13:07 pm by Mining_Eth »