Claymore’s Dual Ethereum+Decred AMD GPU Miner


UPDATE (June 2017) : This guide was written almost a year ago, and while the setup and configuration information remain relevant a couple of things have changed since that time which I will address.

The Claymore Dual miner has undergone several versions and is now up to version 9.4. It now supports more coins in dual mining mode, with the list including: Decred/Siacoin/Lbry/Pascal. There is no longer a DAG file generation, as it now generates it on the fly. The miner supports the latest generation of AMD cards (Polaris) and has had several optimization increasing speed.

Claymore 9.4 ETH Dual Miner – Mining Ethereum Only (System Draw 700 Watts)

The image above shows the latest Claymore 9.4 miner when mining Ethereum alone. It is drawing 700 watts from system when measured at-the-wall using a Kill-a-Watt meter. This results in a 0.215 Mh/s per Watt rating, or inversely it consumes 4.63 watts for every Mh/s.

Claymore 9.4 ETH Dual Miner – Mining Ethereum and Decred (System Draw 800 Watts)

The image above shows the latest Claymore 9.4 miner when mining Ethereum and Decred simultaneously in Dual-mining mode. You can see that the Ethereum hashrate stayed nearly the same losing only around 2 Mh/s on the entire rig, but adding 3430 Mh/s in Decred mining. The overall power draw for the entire rig increased about 100 watts, however the increase in Decred income more than offsets this for a overall net increase in profit.

 

The original guide as written in 2016 continues below:


In my latest review of the Asus Strix R7 370 video card, I mentioned the use of Claymore’s miner for performing the testing. Since this is a unique miner compared to the others currently available for mining Ethereum, or more correctly Ether, I decided to devote some time to go over this miner and its features. The Claymore miner is supported on it’s BitCoinTalk thread topic.

The most immediate distinction is that the Claymore miner can operate in a dual mining mode, meaning it can mine Ether simultaneously while mining Decred. This works because the two algorithms are independent and utilize the hardware in different ways which can be capitalized upon to run both algorithms in parallel on the GPU. This dual mode operation comes with only a minimal impact on Ether income versus mining Ethereum alone. With the added generation of Decred, the slight loss in Ether mining is offset by the extra DCR profits. Since the price and difficulty for each coin change on a daily basis, you will need to look at this before deciding which mode is most profitable at any given point in time.

 

Claymore_DevFee_1

 

One thing I should mention right away is that unlike other Ethereum mining clients that are currently available, the Claymore mining client comes with a built in fee mechanism to pay the developer for his efforts and to promote continual updates to the miner. The current fee structure is 1% of ETH mined in Ethereum only mode, and 2% of ETH mined in dual, or ETH + DCR mode. Note that all fees are currently paid in ETH, with the actual fee not paid directly, but with a percentage of Ethereum mining time spend mining to the developers account.

 

Claymore_DevFee_2

 

This fee mechanic is compiled within the client and cannot be changed. Once every 60 minutes (at the start of the hour) the miner will mine for 36 seconds to the developer’s account under the 1% fee (Ethereum only mining), or 72 seconds under the 2% fee (ETH + DCR mining). While some people have complained, most people report the improvements, stability, and extra shares reported by the pool when using the Claymore miner more than make up for any fee. And as the developer notes, you are free to use other programs if this is a concern to you.

 

Claymore_03

 

In the image above, we can see the miner operating in Ethereum only mode. This is similar to other Ethereum mining software in that it is only mining Ether in this configuration. Some of the nice things we notice right away in the Claymore client are color coding of various feedback in order to more easily call it out.

We can see the total hash rate, shares, and rejects updated on a regular basis. You can configure a -tt parameter to not only target a specific GPU temperature to control the fans speed, but also to display this information on a regular basis as well. The client will also notify you in green when a share is found and submitted, as well as the round trip time it take for the submission of the share and acknowledgement from the pool.

This last feature is useful to fine tune you connection parameter, and perhaps find a pool closet to your physical location. Reducing this number will also reduce the chance of your share being rejected by the pool due to log delays. Many pools offer different servers based in different geographic locations. In my case, I am using the Ethermine.org pool which has a US1 and US 2 server. I can shave 50 ms off my share round trip time (rtt) by using the US1 pool.

 

Claymore_Dual

 

In the image above I have dual mode mining enabled, which is verified (in teal above) when the client first launched. In dual mining mode, we can also see that the client now connects to both the us1.ethermine.org Ethereum pool and the dcr.suprnova.ccDecred pool, as expected.

 

Claymore_Dual_2

 

You can also see that the Claymore mining client will now update periodically with both ETH and DCR status, highlighted in different colors. I am using a dual GPU test rig for this comparison, and you will notice the hash rate went from a little over 28 Mh/s mining Ethereum alone, down to 25.66 Mh/s in dual mode, thus resulting in a 2.34 Mh/s loss in Ethereum mining. However, we can also see we are gaining about 385 Mh/s in Decred mining power. The question that remains is the Decred mining enough to offset the 2.34 Mh/s loss in Ethereum mining.

To find out I ran each mode on the same rig for 24 hours. I used two Asus Strix R7 370 4 GB video cards I recently reviewed in a test rig to perform this comparison. When running in Ethereum only mode, the test rig drew 297 watts of power. In dual (ETH + DCR) mode it drew 326 watts of power. At a electricity rate of $0.12 KW/h, this represents as 24 hour cost of $0.86 and  $0.94 respectively.

I have made a table below comparing the results:

Mode ETH Hashrate ETH Earned DCR HashRate DCR Earned Combined Income Electricity Fee (ETH) Net Income
ETH Only 28 Mh/s  0.35  –  –  $3.29 $0.86 (1%) $2.41
ETH + DCR 25.66 Mh/s  0.32 385Mh/s  0.2  $3.31 $0.94 (2%) $2.31

At this point in time, it appears the dual mining mode is a bit less profitable that simply Ethereum mining alone. A couple a factors lead into this, with the extra power cost and 2% miner fee eating into most of the net profits, as we see the gross daily profit is slightly higher. So dual mining will depend to a large extent on Decred difficulty and price and will most likely vary on a day by day basis.

This comparison is in agreement with my previous attempts at dual mining. While this may be an option for people with low power costs, or for those who which to acquire a bit of Decred and wait for the price to rise, I usually make my calculations based off the fact I regularly sell off coins to at least cover my power costs. So for me the present environment leads me to use Ethereum only mining mode.

Using the Claymore mining client, I am incurring an additional 1% fee into my earnings, but I as many others have found, that the increased stability and more consistent pool reported share rate (corresponding closely to reported share rate) offsets this fee. In fact during the first week I used the Claymore client over qtminer, I actually increased my earnings from 6.0 to 6.2 ETH/week on one rig, in spite of the rising difficulty. Similar increases have also been seen when comparing against the Genoil client. While I am not saying you will earn any more, it does appear you will earn enough extra to negate the 1% fee imposed by the client.

Besides paying for its own fees, the Claymore client has many other features that may warrant its use. As mentioned earlier, I like the color coding output as it helps differentiate the different messages, the ability to adjust difficulty and control fan speeds and temperatures. It also appear, this is subjective, to be more stable in that I have less crashes of the client. Although to be fair this was not a big concern with any of the other clients, although on occasion i would find a stuck or hung rig. If you are in the mining business you just accept that you will need to check in on your farm multiple times each day.

Some of the other features in the Claymore client include:

  • Effective Ethereum mining speed is higher by 3-5% because of a completely different miner code – much less invalid and outdated shares, higher GPU load, optimized OpenCL code.
  • No DAG files.
  • Supports all Stratum versions for Ethereum: can be used directly without any proxies with all pools that support eth-proxy, qtminer or miner-proxy.
  • Supports both Http and Stratum for Decred.
  • Supports failover.
  • Displays detailed mining information and hashrate for every card.
  • Supports GPU selection, built-in GPU overclocking features and temperature management.
  • Supports Ethereum forks (Expanse, etc).
  • Windows and Linux versions.

Let’s go over a few command line options for configuring the Claymore client. I have copied the entire list of available command line options at the end of the article, but you only need a few to get started.

First, Claymore recommends you use the AMD Catalyst (Crimson) 15.12 drivers for best performance and compatibility. Note the link is for the Windows 7 (64bit) version, if you are using a different OS please search fro the correct 15.12 drivers on the AMD site.

In all cases it is recommend you set the following environmental variables in your batch file, as is the case with all clients:

GPU_FORCE_64BIT_PTR 0
GPU_MAX_HEAP_SIZE 100
GPU_USE_SYNC_OBJECTS 1
GPU_MAX_ALLOC_PERCENT 100
GPU_SINGLE_ALLOC_PERCENT 100

The bare bones configuration you will need for a Ethereum only mining mode is the following:
EthDcrMiner64.exe -epool us1.ethermine.org:4444 -ewal 0x6f52457dbaca44f248fa573fdb57f7fdf0afaa22 -epsw x

The minimum parameters shown above are pool address and port (-epool), your wallet address (-ewal) and ethereum-password (-epsw). The password needs to be set to x if your pool doesn’t use a password or if it is not required. Basically leave this set to x unless you indeed have a pool password, then set it accordingly.

A bit more robust string would be:
EthDcrMiner64.exe -epool us1.ethermine.org:4444 -ewal 0x6f52457dbaca44f248fa573fdb57f7fdf0afaa22 -epsw x -eworker Miner08 -esm 1 -tt 70

This string included the minimum plus user defined worker name (-worker), etereum mode (-esm) with the value of “1” mimicking that of qtminer, and a target temperature of 70° C (-tt). These additions have the effect of showing individual mining statistic on the pool, in this case for Miner08, running stratum mode similar to that of qtminer, and setting the fans to try and keep the GPU no hotter than 70° C. Also this setting periodically displays the GPU temperature and fan speed in the client.

 

Claymore_Start_bat

 

The full list of commands follows, and there are additional examples within the client README file, as well as at the official support thread at BitCoinTalk.

COMMAND LINE OPTIONS:

  • -epool Ethereum pool address. Only Stratum protocol is supported. Miner supports all pools that are compatible with Dwarfpool proxy and accept Ethereum wallet address directly.
  • -ewal Your Ethereum wallet address. Also worker name and other options if pool supports it.
    Pools that require “Login.Worker” instead of wallet address are not supported directly currently, but you can use “-allpools 1” option to mine there.
  • -dwal Your Decred wallet address or worker name, it depends on pool.
  • -epsw Password for Ethereum pool, use “x” as password.
  • -eworker Worker name, it is required for some pools.
  • -esm Ethereum Stratum mode. 0 – eth-proxy mode (for example, dwarpool.com), 1 – qtminer mode (for example, ethpool.org), 2 – miner-proxy mode (for example, coinotron.com). 0 is default.
  • -etha Ethereum algorithm mode. 0 – optimized for fast cards, 1 – optimized for slow cards. -1 – autodetect (default).
    You can also set this option for every card individually, for example “-etha 0,1,0”.
  • -ethi Ethereum intensity. Default value is 8, you can decrease this value if you don’t want Windows to freeze or if you have problems with stability. The most low GPU load is “-ethi 0”.
    Also “-ethi” now can set intensity for every card individually, for example “-ethi 1,8,6”.
    You can also specify negative values, for example, “-ethi -8192”, it exactly means “global work size” parameter which is used in official miner.
  • -allpools Specify “-allpools 1” if miner does not want to mine on specified pool (because it cannot mine devfee on that pool), but you agree to use some default pools for devfee mining.
    Note that if devfee mining pools will stop, entire mining will be stopped too.
  • -allcoins Specify “-allcoins 1” to be able to mine Ethereum forks, in this mode miner will use some default pools for devfee Ethereum mining.
    Note that if devfee mining pools will stop, entire mining will be stopped too.
    Miner has to use two DAGs in this mode – one for Ethereum and one for Ethereum fork, it can cause crashes because DAGs have different sizes.
    Therefore for this mode it is recommended to specify current Ethereum epoch (or a bit larger value),
    for example, “-allcoins 47” means that miner will expect DAG size for epoch #47 and will allocate appropriate GPU buffer at starting, instead of reallocating bigger GPU buffer (may crash) when it starts devfee mining.
    Another option is to specify “-allcoins -1”, in this mode miner will start devfee round immediately after start and therefore will get current epoch for Ethereum, after that it will be able to mine Ethereum fork.
  • -dpool Decred pool address. Only HTTP protocol is supported currently.
  • -dpsw Password for Decred pool, use “x” as password.
  • -di GPU indexes, default is all available GPUs. For example, if you have four GPUs “-di 02” will enable only first and third GPUs (#0 and #2).
  • -mode Select mining mode:
    “-mode 0” (default) means Ethereum+Decred mining mode.
    “-mode 1” means Ethereum-only mining mode. You can set this mode for every card individually, for example, “-mode 1-02” will set mode “1” for first and third GPUs (#0 and #2).
  • -dcri Decred intensity. Default value is 30, you can adjust this value to get the best Decred mining speed without reducing Ethereum mining speed.
    You can also specify values for every card, for example “-dcri 30,100,50”.
    You can change the intensity in runtime with “+” and “-” keys and check current statistics with “s” key.
    For example, by default (-dcri 30) 390 card shows 29MH/s for Ethereum and 440MH/s for Decred. Setting -dcri 70 causes 24MH/s for Ethereum and 850MH/s for Decred.
  • -dcrt Time period between Decred HTTP requests for new job, in seconds. Default value is 10 seconds.
  • -wd watchdog option. Default value is “-wd 1”, it enables watchdog, miner will be closed (or restarted, see “-r” option) if any thread is not responding for 1 minute or OpenCL call failed.
    Specify “-wd 0” to disable watchdog.
  • -r Restart miner mode. “-r 0” (default) – restart miner if something wrong with GPU. “-r -1” – disable automatic restarting. -r >20 – restart miner if something
    wrong with GPU or by timer. For example, “-r 60” – restart miner every hour or when some GPU failed.
    “-r 1” closes miner and execute “reboot.bat” file in the miner directory (if exists) if some GPU failed.
    So you can create “reboot.bat” file and perform some actions, for example, reboot system if you put this line there: “shutdown /r /t 5 /f”.
  • -dbg debug log and messages. “-dbg 0” – (default) create log file but don’t show debug messages.
    “-dbg 1” – create log file and show debug messages. “-dbg -1” – no log file and no debug messages.
  • -tt set target GPU temperature. For example, “-tt 80” means 80C temperature. You can also specify values for every card, for example “-tt 70,80,75”.
    You can also set static fan speed if you specify negative values, for example “-tt -50” sets 50% fan speed. Specify zero to disable control for some card(s).
    Unfortunately, AMD blocked underclocking for some reason, you can overclock only.
  • -cclock set target GPU core clock speed, in MHz. If not specified or zero, miner will not change current clock speed. You can also specify values for every card, for example “-cclock 1000,1050,1100,0”.
    Unfortunately, AMD blocked underclocking for some reason, you can overclock only.
  • -mclock set target GPU memory clock speed, in MHz. If not specified or zero, miner will not change current clock speed. You can also specify values for every card, for example “-mclock 1200,1250,1200,0”.

11 Comments

  1. IMHO there is a little misalignment between the claims and purposes of the author and these of Mr. Claymore…
    The highlight of the case are the rows:
    GPU #0: set -etha as 1 (ETH algo for slow cards)
    GPU #1: set -etha as 1 (ETH algo for slow cards)
    written on the first picture above. These means (as author confirmed later) that he owns SLOW videocards (Asus Strix R7 370) with only 256-bit memory bus versus Claymore’s R9 390 which has 512-bit memory bus.
    As Ethereum hashing is a very memory (bandwith) intensive operation – this difference makes a big difference, trust me.
    On my Asus Strix R9 390 the ETH hashing gives 32.500 Mh/s with simultaneously 487.600 Mh/s DCR. It digs this way for many days. The OC frequencies are: core 1133, memory 1650
    The used command line is:
    EthDcrMiner64.exe -epool eth.coinmine.pl:4000 -ewal eth_username.1 -esm 2 -epsw x -dpool stratum+tcp://dcr.coinmine.pl:2222 -dwal dcr_username.1 -dpsw x -allpools 1
    So the algo of Mr. Claymore is optimized for FAST cards (>512-bit memory bus). The support for slow ones are included only for fullness/compatibility.
    Mr. Claymore has done an excellent work and I want to thank him.

    • Thanks for the feedback. Yes, I only ran this test on so called slow cards with a 256-bit memory bus, so I appreciate seeing the differences offered by other platforms, such as the R9 390 you mentioned.

      So I gather from your feedback, that with the R9 390 series, you do make more profit in dual mining mode versus Ethereum only mode?

  2. Here is my Config for Dual Mining with 570RX @ 1130 CoreClock, 2050 MemClock and 1500 Straps up to 2000

    Ethereum 29MH/s each Card
    Siacoin 460 MH/s each Card

    Config Copy & Paste:
    -mode 0 -epool stratum+tcp://eu2.ethermine.org:4444 -ewal 0x9b70fcff8d8291dc028f2dc6ea6612e10fa6721a -eworker WhiteIce -epsw x -mport 0 -allcoins 1 -allpools 1 -dpool stratum+tcp://us-west.siamining.com:7777 -dwal 11d44524e1203f6f6accae2ab7e1a7b3720fa3b6ad840eee13ccfe479ecd23800dd7e256c323.Yo urWorkerName -dcoin sia -dcri 16

    SC: GPU0 454.240 Mh/s, GPU1 464.045 Mh/s
    ETH: 06/11/17-08:56:37 – New job from eu2.ethermine.org:4444
    ETH – Total Speed: 57.336 Mh/s, Total Shares: 30, Rejected: 0, Time: 00:39
    ETH: GPU0 29.362 Mh/s, GPU1 29.274 Mh/s
    SC – Total Speed: 917.376 Mh/s, Total Shares: 470, Rejected: 0
    SC: GPU0 453.798 Mh/s, GPU1 463.578 Mh/s
    GPU0 t=65C fan=88%, GPU1 t=65C fan=49%
    SC: 06/11/17-08:56:46 – SHARE FOUND – (GPU 0)
    SC: Share accepted (152 ms)!
    ETH: 06/11/17-08:56:46 – New job from eu2.ethermine.org:4444
    ETH – Total Speed: 57.413 Mh/s, Total Shares: 30, Rejected: 0, Time: 00:39
    ETH: GPU0 29.399 Mh/s, GPU1 29.014 Mh/s
    SC – Total Speed: 918.604 Mh/s, Total Shares: 471, Rejected: 0
    SC: GPU0 454.382 Mh/s, GPU1 464.222 Mh/s
    SC: 06/11/17-08:56:48 – SHARE FOUND – (GPU 1)
    SC: Share accepted (153 ms)!
    ETH: 06/11/17-08:56:54 – New job from eu2.ethermine.org:4444
    ETH – Total Speed: 57.406 Mh/s, Total Shares: 30, Rejected: 0, Time: 00:39
    ETH: GPU0 29.420 Mh/s, GPU1 28.985 Mh/s
    SC – Total Speed: 918.487 Mh/s, Total Shares: 472, Rejected: 0
    SC: GPU0 454.721 Mh/s, GPU1 463.766 Mh/s
    SC: 06/11/17-08:57:00 – SHARE FOUND – (GPU 1)
    SC: Share accepted (152 ms)!
    SC: 06/11/17-08:57:00 – SHARE FOUND – (GPU 0)
    SC: Share accepted (152 ms)!
    ETH: 06/11/17-08:57:00 – New job from eu2.ethermine.org:4444
    ETH – Total Speed: 57.374 Mh/s, Total Shares: 30, Rejected: 0, Time: 00:39
    ETH: GPU0 29.384 Mh/s, GPU1 29.190 Mh/s
    SC – Total Speed: 917.981 Mh/s, Total Shares: 474, Rejected: 0
    SC: GPU0 454.141 Mh/s, GPU1 463.840 Mh/s

  3. Hi Sir
    can you help me?
    i can not fix this issue:
    “This pool (eth-eu.dwarfpool.com) does not support Ethereum addresses as login (or requires worker name in “Login.Worker” format) and cannot be used for devfee mining, therefore it is not supported.”

    • It is hard to tell for sure without looking at your launch batch file, but did you specify the worker as -ewal 0xYourWalletAddress/YourWorkerName as shown in the readme file?

  4. Great article – tonnes of great articles on this site – many thanks!

    First question – given that dwarfpool only issues payments of 1 ETH or higher – is there any way to check what your status on “the journey” to that 1 ETH is?

    Secondly – I have 2 miners (210Mh/s) pointing at the same wallet, but each has different worker names – will they both contribute to the 1 ETH threshold or do it separately?

    Thanks for any info!

    • As long as both workers are pointing to the same ETH address they will contribute to the 1 ETH threshold. Worker names just provide a cleaner way to check individual worker (rig) statistics, this can help in troubleshooting in case one is causing more errors or stale shares than others.

      • Thanks a mill – I checked your dwarfpool article afterwards (didn’t see it before) and found out how to see the stats. Unfortunately my wallet address just shows a completely blank page when looking at stats, but I’ve contacted them about that. Thanks again!

Leave a Reply

Your email address will not be published.


*