nicehash / excavator

NiceHash's proprietary low-level CUDA miner
https://www.nicehash.com
53 stars 19 forks source link

Improve Equihash algorithm speed #219

Closed borzaka closed 6 years ago

borzaka commented 6 years ago

Excavator ~3860 kH/s (shouldn't be Sol/s?)

Competitors:

Same rig, same settings. Tested today.

t4nja commented 6 years ago

We're working on improvements for Equihash.

FYI. Be careful when using Bminer - https://github.com/nicehash/NiceHashMinerLegacy/issues/908. There are multiple reports about inflated hashrate.

lear001 commented 6 years ago

https://www.google.com/search?dcr=0&q=how+pool+calculated+hashrate&spell=1&sa=X&ved=0ahUKEwi8spLS3O3ZAhVBCpoKHbJECToQBQgkKAA&biw=1396&bih=668

https://www.bminer.me/faq/#why-the-reported-hashrate-of-bminer-is-higher-than-the-reported-hashrate-from-mining-pools

Pls check these posts to figure out why the reported hashrate is higher than the reported hashrate from mining pools, and all mining softwares have the same issues.

apiontek commented 6 years ago

For me, excavator is already faster than dstm on linux, when factoring in dstm's 2% fee. But yes, would love to see the same thing on the Windows side!

Something's definitely fishy with bminer, I wouldn't recommend anyone gamble with it.

BeefBaby commented 6 years ago

@apiontek I get "Failed to connect to miner (ExcavatorNvidia1)" everytime I try to use it with the newest Python version.

Angel996 commented 6 years ago

I don't know why everyone is so hyped about excavator, for me it's much slower than DSTM's. I get ~ 1340 h/s on DSTM whereas around 1220 h/s on Excavator 1.4.4. GPUs are 2x1060, 2x970, 1x1050, Ubuntu.

[05:19:10][0x00007f4ef16a1700][info] core | Device #1-1 speed: 255.535607 H/s
[05:19:10][0x00007f4ef16a1700][info] core | Device #2-2 speed: 131.059529 H/s
[05:19:10][0x00007f4ef16a1700][info] core | Device #3-3 speed: 272.361441 H/s
[05:19:10][0x00007f4ef16a1700][info] core | Device #4-4 speed: 280.311712 H/s
[05:19:10][0x00007f4ef16a1700][info] core | Algorithm 'equihash' total speed: 1.206035 kH/s
[05:19:25][0x00007f4ef0ea0700][info] core | Device #0-0 speed: 265.192160 H/s
[05:19:25][0x00007f4ef0ea0700][info] core | Device #1-1 speed: 268.521757 H/s
[05:19:25][0x00007f4ef0ea0700][info] core | Device #2-2 speed: 134.608174 H/s
[05:19:25][0x00007f4ef0ea0700][info] core | Device #3-3 speed: 284.220811 H/s
[05:19:25][0x00007f4ef0ea0700][info] core | Device #4-4 speed: 285.758546 H/s
[05:19:25][0x00007f4ef0ea0700][info] core | Algorithm 'equihash' total speed: 1.238267 kH/s
>  GPU0  61C  Sol/s: 293.8  Sol/W: 3.46  Avg: 293.8  I/s: 161.0  Sh: 2.99   1.00 85  +
>  GPU1  63C  Sol/s: 302.7  Sol/W: 3.53  Avg: 302.7  I/s: 160.3  Sh: 0.00   . .
>  GPU2  59C  Sol/s: 152.9  Sol/W: 0.00  Avg: 152.9  I/s: 82.0   Sh: 0.00   . .
>  GPU3  64C  Sol/s: 300.4  Sol/W: 2.15  Avg: 300.4  I/s: 165.4  Sh: 5.96   1.00 69  ++
>  GPU4  59C  Sol/s: 310.6  Sol/W: 2.24  Avg: 310.6  I/s: 166.4  Sh: 0.00   . .
   ========== Sol/s: 1360.4 Sol/W: 2.84  Avg: 1360.4 I/s: 735.2  Sh: 8.95   1.00 77
apiontek commented 6 years ago

That's true for me on Windows. On Linux they're close enough that excavator wins when accounting for dstm's fee. And since excavator beats other miners for some other algorithms, and equihash is generally the best algorithm for Nvidia at Nicehash, that's why people are Keen for excavator to perform better than it currently does on equihash.

Angel996 commented 6 years ago

Well, DSTM's fee is 2%, whereas difference in hashrate is 10%, as per my example.

apiontek commented 6 years ago

Ok? Yes? So if the difference were less than 2%, or excavator we're faster, that'd be good, no? What's your concern?

Angel996 commented 6 years ago

That'd be good, exactly. :-)

joseortiz3 commented 6 years ago

@apiontek Interesting! How did you get excavator to match (within 2%) dstm on linux? I was not aware this was possible.

How did you compile? Or did you use an internet-downloaded binary? If you compiled, which Cuda version and gcc version did you use? Thanks.

apiontek commented 6 years ago

Well, obviously YMMV but this is my situation and results:

Ubuntu 17.10, kernel 4.13.0-37-generic Nvidia 390.30-0ubuntu1, cuda 9.1.85-1 GTX 1070 GPU i7-4790 CPU ewbf 0.3.4b dstm 0.6 excavator 1.4.4a_nvidia

(I don't think we can compile excavator, can we? This github is just for info & releases, there's no source, right?)

For me, with no overclocking I get the following (30 minute averages)

ewbf: run command: ~/mining/bin/ewbf/miner --fee 0 --tempunits C --solver 0 --user 1bitcoinaddress1bitcoinaddress.worker --pass x --server equihash.usa.nicehash.com --port 3357 --eexit 3 --pec --api 30 min average: 424.24 Sol/s

dstm: run command: ~/mining/bin/dstm/zm --server equihash.usa.nicehash.com --port 3357 --user 1bitcoinaddress1bitcoinaddress.worker --pass x --noreconnect --telemetry 30 min average: 431.80 Sol/s

excavator: run command: /usr/bin/excavator -p 3456 -na -c excavator_equihash_nicehash.json 30 min average: 424.80 Sol/s

I'll share the contents of my excavator_equihash_nicehash.json below. For now, just note that while dstm is faster it's only faster by 1.6%, which you lose in fees, and neither excavator nor ewbf (with the --fee 0 argument) have fees. So, in this case, for me, excavator wins.

dstm sometimes spikes higher, but it also drops lower. They all do, really. That's why I test over a long time, sampling the hashrate from the API every 15 seconds and averaging out over time.

When I pump up my overclocking to 150/500, I get:

ewbf: 452.74 dstm: 464.16 excavator: 456.85

Again, dstm is faster but only by 1.6%, so on average over time I earn more with excavator when accounting for the 2% fee.

EDIT: oh, and my excavator json:

[ { "time": 0, "commands": [ { "id": 1, "method": "algorithm.add", "params": [ "equihash", "198.11.220.44:3357", "1bitcoinaddress1bitcoinaddress.worker:x" ] } ] }, { "time": 3, "commands": [ { "id": 1, "method": "worker.add", "params": [ "0", "0", "2" ] } ] }, { "time": 10, "loop": 10, "commands": [ { "id": 1, "method": "algorithm.print.speeds", "params": [ "0" ] } ] } ]

Angel996 commented 6 years ago

apiontek, I wonder why your results are so different from mine. Couldn't be Linux version, I run 16.04 LTS.

Are you mining on a single GPU? That could be a bit different. You know, PCIE bandwidth Does affect hashrate too. And it tends to get worse per card once you install additional GPUs.

apiontek commented 6 years ago

I only have one GPU in this machine, yes. Yes, with your results I'd be using dstm.

apiontek commented 6 years ago

I take it back. When I look at the hashrates actually reported on pools, including Nicehash, excavator isn't the best anywhere. In fact, for me, ewbf with 0 fee option comes out on top. Seems to me the hashrate the pool sees over time is more important than what the miner says it's doing.

borzaka commented 6 years ago

@apiontek That's right. You are payed based on the hashrate what the pool sees, not what the miner shows.

igorvoltaic commented 6 years ago

Regarding Bminer. I've setup a small pool. Bminer's reported hashrate is ~2070sol/s, on pool side it is ~2000-2010sol/s on average (what is really important and not what miner shows us). DSTM's only gives me ~1950-1980sol/s on average (pool side) and ewbf is only ~1880sol/s on average (pool side). Bminer is more stable, dstm crashed from time to time. I think i need to give excavator another try and post it here. Really hope to see improvements.

I've got 4xGTX1060 & 1xGTX1080ti on centos7 linux rig. cuda 9.1 and latest nvidia driver.

==update== okay, I've got the results. I used excavator version 1.4.4a (the latest one which I can point to a different server, but there were no improvements of equihash algo on change log since then.) gave me ~1950-1960sol/s on average. with the following settings:

[
    {"time":0,"commands":[
        {"id":1,"method":"algorithm.add","params":["equihash","somepool.com:7777","myaddresshere.rig"]}
    ]},
    {"time":3,"commands":[
        {"id":1,"method":"worker.add","params":["0","0", "2"]},
        {"id":1,"method":"worker.add","params":["0","1", "2"]},
        {"id":1,"method":"worker.add","params":["0","2", "2"]},
        {"id":1,"method":"worker.add","params":["0","3", "2"]},
        {"id":1,"method":"worker.add","params":["0","4", "2"]}
    ]},
    {"time":10,"loop":10,"commands":[
        {"id":1,"method":"worker.print.speed","params":["0"]},
        {"id":1,"method":"worker.print.speed","params":["1"]},
        {"id":1,"method":"worker.print.speed","params":["2"]},
        {"id":1,"method":"worker.print.speed","params":["3"]},
        {"id":1,"method":"worker.print.speed","params":["4"]},
        {"id":1,"method":"algorithm.print.speeds","params":["0"]}
    ]}
]

IMHO, excavator can really be used instead of dstm's zm miner without almost any performance loss.

t4nja commented 6 years ago

I'm closing this issue due to equihash ASICs.

borzaka commented 6 years ago

Bitcoin Gold will have a Network Upgrade in less than two days. The main goal for the network upgrade is to prevent current ASICs from mining. Probably more coins will follow.

Maybe the same thing is happening as with the CryptoNight algo?

t4nja commented 6 years ago

@borzaka Yes, BTG is planning a network upgrade to prevent ASIC mining. They changed the equihash parameters from 200,9 to 144,5 (some other coins are doing the same thing: bitcoinZ, litecoinZ, bitcoin private, etc.). Currently we decided not to support the new equihash algorithm, but we might in the future.

joseortiz3 commented 6 years ago

@dropky Nicehash will continue experience an exodus of GPU miners if the new algorithms are not supported quickly. Switching to new algorithm support should be first-priority for NiceHash at this point, unless you guys want to rely on asic alone.

t4nja commented 6 years ago

I'll see what I can do.