genesismining / sgminer-gm

A multi-algo GPU miner
GNU General Public License v3.0
339 stars 146 forks source link

ETH,ETC Does not work wit minergate using urls from Genoil config #42

Closed rumatoest closed 7 years ago

rumatoest commented 7 years ago

Hello.

This is related to ETH, ETC mining.

Looks like sgminer build does not work properly for minergate I can connect only using Genoil url with stratum+tcp prefix (in other cases it does not work) It will begin to hash something but do not submit any shares

https://en.minergate.com/faq/how-to-mine-eth-with-console

DominiLux commented 7 years ago

The URL has to be formatted differently. Are you running it with command line arguments or are you using a configuration file? (Recommendation is to use the configuration file)

rumatoest commented 7 years ago

I've tried both. It does not want to work with URLs like: http://eth.pool.minergate.com:55751/YOUR_EMAIL eth.pool.minergate.com:45791

DominiLux commented 7 years ago

Give me a second and I will post an example configuration for you that should work altho I have no way to test it and am not creating an account on that pool.

DominiLux commented 7 years ago

Put the following as the pools section in your config file "pools": [ { "url": "stratum+tcp://eth.pool.minergate.com:45791", "user": "YOUR_EMAIL", "pass": "x", "no-extranonce": true } ],

DominiLux commented 7 years ago

change URL and port number but leave the stratum+tcp:// this is how sgminer knows to use stratum protocol.

DominiLux commented 7 years ago

I hope that worked well for you. The code that this miner is based off of is the standard for most miners who then tweak and optimze it. SGminer-GM already has a lot of optimizations in it. for ETHASH I usually see an increase of 4 to 6 MH/S compared with genoils miner but prior to him stopping work on it it was the best. Also most of the other kernels in here are highly optomized by Wolf as well. Wolf is well known in the community for his amazing ability to optomize code. I believe he may very well be the best in the world at streamlining performance. Ive never personally met him but he definitely knows his hardware inside and out and knows how to manipulate code to be completely fine tuned with the hardware. If I had to give him a label I would say he's the Mozart of optimizing code. So in my opinion this is currently the best publicly available miner.

rumatoest commented 7 years ago

I think my problem related to minergate connection.

Minergate tell that connection is active, but no new shares appeared. From console I can see 5.267M (avg):5.539Mh/s | A:0 R:1000000 HW:0 WU:0.000/m Which means that there is some work right now, but still from minergate - no shares.

DominiLux commented 7 years ago

If you look at the top of the screen where it says "Diff" it should have a number beside it with a G. This is the level of difficulty that the pools stratum server has told the miner it will accept as a minimum per share. From that number you can calculate on average how many shares it should be finding per minute. For example at 5.267Mhs with a Difficulty of 2Ghs the formula would be

T = (G * 1000) / M Variable Definitions: T represents the amount of time in minutes on average you can expect to receive a share at that hash rate. M represents the value you shared of 5.267 which is in Mhs G represents the difficulty which is in Ghs so we convert it to Mhs by multiplying the value by 1000.

So presuming the pool operates at a 2G difficulty we can plug in the number T = (2*1000) / 5.267 T = 2000 / 5.267 T = 64.5528764

So at a 2G difficulty we can expect that hashrate to find one share once every 64 to 65 seconds on average. So about once a minute but luck is a factor as well and you may see two come back to back and not get another one for 4 minutes. To smoothen out the luck you have to consider an average over a period of time. I just taylored made that formula but it was a pretty simple one. As long as your mining in Mhs and the difficulty is in Ghs this formula will apply. The formula can be broken down to a more complex formula that also factors in the difficulty of the share you found because if you found a 1GH share then you've done 1GHs worth of work with only 5.267Mhs so therefore lady luck would eventually have to balance that out by getting her extra 994.733 Ghs of energy free work back from you. Under PoW the same physics laws of conservation of energy apply so it's really not luck but the laws of physics keeping all miners in check with there hashrate. That doesnt stop us from figuring out ways to increase our hashrate tho.

I will tell you that 5.267 is pretty slow and if you arent mining at a certain speed you will never see a share because most pools use a couple of algorithms to calculate how to pay. The first is they value the difficulty of the share you submitted based on the difficulties of the other shares submitted by all miners on that pool in a round. This means that some of your shares will count as 100000 shares and some will only count as 1. That's the first step they take to keep everything even to ensure fairness amongs the miners in the pool. The second phase is called PPLNS (There are a few others but PPLNS is the most common) and stands for Pay Per Last 'N' Shares. Basically that's where it looks at all the shares of all miners and divides the spoils up proportionally to the percentage of shares the miner found. The problem with a lower hashrate of 5.267 Mhs is that if the pool has too many miners your share of the pplns round gets diluted down to an infinit number of a fraction of a percent. Computers cant quantify a number that small so the you never see a payout. You really should get that hashrate up. Are you mining with a CPU or a Graphics Card because even a lower end graphics card like an RX460 should net you at least 10 MHs in it's stock form. If your using a CPU there are other algorithms you can use that this miner supports.

rumatoest commented 7 years ago

Actually I'm using saphire radeon rx 480 nitro+ 8G and it is able to get about 24Mhz with claymore miner and up to 22Mhz on ethminer. I will try to fix performance issue first and then try again.

rumatoest commented 7 years ago

Ok. I was able to increase performance up to 40 mHs but still no shares. And this debug output

[00:08:52] Last ulong: 0x3A1205D5389413E0.
[00:08:52] [THR0] GPU0: invalid nonce - HW error
[00:08:52] [THR0] Discarded cloned or rolled work
[00:08:52] GPU 0 found something?
[00:08:52] [THR0] OCL NONCE 07a64098 (128336024) found in slot 0 (found = 255)
[00:08:52] Regenhash: First qword of input: 0x796F26D907A64098.
[00:08:52] Regenhash result: a2633c5e2e2d18eb420b340f36aee422e572ba9235e08a65c0749f32fcb989fe.
[00:08:52] Last ulong: 0xA2633C5E2E2D18EB.
[00:08:52] [THR0] GPU0: invalid nonce - HW error
[00:08:52] [THR0] Discarded cloned or rolled work
[00:08:52] GPU 0 found something?
[00:08:52] [THR1] OCL NONCE 0f3fac38 (255831096) found in slot 0 (found = 255)
[00:08:52] Regenhash: First qword of input: 0x796F26E00F3FAC38.
[00:08:52] Regenhash result: 38f119a96708058b0dfcba319bb1972d0eaa509e0e418be8c7f2359e87f8f2cb.
[00:08:52] Last ulong: 0x38F119A96708058B.
[00:08:52] [THR1] GPU0: invalid nonce - HW error
[00:08:52] [THR1] Discarded cloned or rolled work
[00:08:52] GPU 0 found something?
[00:08:52] [THR1] OCL NONCE 0f5b714c (257651020) found in slot 0 (found = 255)
[00:08:52] Regenhash: First qword of input: 0x796F26EC0F5B714C.
[00:08:52] Regenhash result: 58df536d4a2d2c1ea764f6a334c167f999e7c670dc051a881385fc56bc82f0d0.
[00:08:52] Last ulong: 0x58DF536D4A2D2C1E.
[00:08:52] [THR1] GPU0: invalid nonce - HW error
[00:08:52] [THR1] Discarded cloned or rolled work
[00:08:52] [THR0] Staged work: total (2) > max (1), discarding
[00:08:52] [THR0] Discarded work
DominiLux commented 7 years ago

Do you mind sharing your config while with your email address removed? I can probabley help.

DominiLux commented 7 years ago

I'm not a dev on this miner but I've been doing some MAJOR optimizations on my test rig which is tedious work. But I'm almost complete for the day. I am just checking stability now. This test rig is based of 6 RX 470s running at 30.35Mh/s per GPU. So the whole rig is cranking out just over 182 MH/s without my custom miner running that has additional software level optimizations but I always optimize a system with a miner that has proven stability.

When hardware optimizing I'm so meticulous that I literally pull out a soldering iron and remove components I'm not going to use from the motherboard as long as they are not something that could cause stability or performance issues. I micromanage them down the the last watt of overhead I can squeeze off.

DominiLux commented 7 years ago

If your on Linux using amdgpu-pro proprietary driver your going to need to use ethash-new kernel which will likely require a compile from source because I don't think the current 5-5-5-a revision has been compiled as a release yet. It is the master branch tho. On windows don't use ethash-new because I think it's tailored for the Linux proprietary driver. Oh and I would avoid ethash-genoil as well because it's going to be slower but it never hurts to try all the different ones.

rumatoest commented 7 years ago

@DominiLux that is fun, kernel ethash-new seems to work, shares submitted well, hash power 23 Mhz (hope I will manage how increase it) But I'm not able to find via github search any reasonable match in sources by "ethash", "ethash-new" etc. Where are you hiding this parameters?

AFAIK intensity, xintensity, rawintensity behaves different for different algorithms. How does it work with ethash-new? What parameter should I tune?

DominiLux commented 7 years ago

https://github.com/genesismining/sgminer-gm/releases

on that page you will find 3 links to example configurations. Adjust the pool section, adjust your temperature settings, adjust xintensity (Or try the default value) and change the algo to the one that is working best for your miner. The algo's arent really kept well documented by the devs but you can see what's availabe in the ocl folder of the source code. Those sample configs should help you a lot. Like I said this isnt my repository I just felt like helping them clear a couple of issues today as a way to say thanks for there work. Once you tweak the parameters you will see a higher hashrate than the other miners. ethash is just one of the aglos this miner is capable of. There are lots of others you can try. I noticed the pool you mentioned allows for more than just ethash.