Your explanation makes sense and is mostly true, but I think the code needs to be refined to reduce rejects. I stopped using TeamRedMiner for anything but my Vega cards. There is solid improvement on my Vegas, maybe 30%, over XMR-Stak, but the rejects are still there. My lesser RX series cards do not show real improvement on pool-side statistics. The rig-side hash rate is higher, but after fees and rejects, pool-side is slightly less.
Smooth out the code please. I am hoping to build more Vega rigs. Your miner is good, but it needs some work.
Thanks for the good code, make it better! --scryptr
You need to consider the lower power usage with TeamRedMiner. Atleast it's quite big difference between for example SRBMiner/XMR-Stak and TeamRedMiner. With TeamRedMiner I'll get around 1100 W with my rig, and with the other miners I gets around 1250 W, big difference! I have a mix of RX 560/570/580 and Vegas in that rig. I also are running a rig with some RX 550/560 and that rig saves only about 10 W.
EDIT: But I can agree with you about rejected shares. When looking right now at my bigger rig, it says 9691 accepted and 253 rejected. Seems very high.
Hm, it is interesting though. I mean, I believe we _always_ submit stale shares rather than discard them, even though we know we just received a new job. This means you'll see them as rejected in TRM but not see them at all in e.g. stak. At the end of the day, the only interesting number is the accepted poolside hashrate, all other numbers can be dependent on different miner implementations and strategies.
For the "true" rejects, they should only be dependent on (1) pool policy for stale shares, (2) miner thread job runtime, (3) any additional overhead/latency in the network/miner.
(1) above has nothing to do with the miner, (2) should be very aligned between TRM and stak. (3) is a little interesting though. We refuse to steal any open source code, so we wrote our CN CPU verification from scratch in plain C code. It is def a lot slower than the AES-NI code in xmr-stak and others and could maybe be bumping the reject rate a little, but it shouldn't really be much.
So SCRYPTR, just curious if you see any difference if you disable the cpu verification with "--no_cpu_check"? I don't know if some pools have a window after sending out a new job where old shares are still accepted, but after 100ms they are rejected. If that's the case our slower cpu verification could very much be a factor.