Bitcoin Forum
May 23, 2024, 01:02:19 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 »  All
  Print  
Author Topic: [ANN] cpuminer-opt v24.2, Optimized multi-algo CPU miner for x86_64 and AArch64  (Read 9898 times)
nak333
Jr. Member
*
Offline Offline

Activity: 112
Merit: 2


View Profile WWW
May 17, 2020, 02:52:37 PM
 #41

The stratum problem at rplant pool is weird. There is no reason the miner would fail based on thread count.
There is also no reason it would exit silently unless it crashed. I'm not familiar with Windows crash debugging
so I don't know how to determine if it crashed or how it crashed.

I can only suggest trying different things to see if there's a pattern.

- try default thread count
- try stratum+tcps port, if available
- try different algo same pool
- try different pool same algo

I'll try to find more info about the RPC error solo mining.

First time when I ran the miner with two threads, a dialog box of error appeared, atm I can't remember what the error was.
After that the dialog box doesn't appear, just the miner exits silently. I'm sure the miner is crashing when I use more than 1 thread.
I think there is something wrong in coding.

- try default thread count  -  doesn't work with more than 1 thread

- try stratum+tcps port, if available  -  doesn't work with more than 1 thread

- try different algo same pool  -  it works with different algo same pool

- try different pool same algo  -  doesn't work with more than 1 thread

Try a different pool ...

See if the same situation exists.

#crysx

I think you missed this point in my previous post.
Quote
- try different pool same algo  -  doesn't work with more than 1 thread

I tried in two other pools, PoolMine and my2coins, same result.
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 17, 2020, 04:44:41 PM
 #42

I've reproduced it using benchmark so I don't need a live pool to test it.

- It's a crash
- Windows only
- Minotaur algo only
- AVX build and above only (sse2 & aes-sse42 work)
- More than one thread only

Windows only crashes have typically been due to data misalingment in the past.
AVX introduces 256 bit vectors which require stricter alignment, Windows defaults to 128 bit alignment.

Minotaur uses the _ALIGN macro to specify alignment, which is defined in compat.h but isn't included in
minotaur.c. The missing macro defnition apparently doesn't break the compile but leaves the data at the
default alignment.

I have no idea why the number of threads makes a difference.

It should be fixed by including compat.h in minotaur.c.

That's the analysis, now I have to test it. Testing on Windows will take some time, it's a lot more work,
my Windows test machine is on a differnt floor.

OBTfx
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 17, 2020, 08:00:02 PM
 #43

- Windows only
- Minotaur algo only
- AVX build and above only (sse2 & aes-sse42 work)
- More than one thread only

In my case, I have tested it on Linux and I have problems, even with one of the two you mention that works (AES-SSE42). I wanted to leave you an attachment with the screen outputs, but I see can't; You tell me what options you need me to put in to help you improve the problem.
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 17, 2020, 08:43:52 PM
 #44

- Windows only
- Minotaur algo only
- AVX build and above only (sse2 & aes-sse42 work)
- More than one thread only

In my case, I have tested it on Linux and I have problems, even with one of the two you mention that works (AES-SSE42). I wanted to leave you an attachment with the screen outputs, but I see can't; You tell me what options you need me to put in to help you improve the problem.

My testing confirmed it was more than a data alignment issue. It was a thread corruption issue which explains why
it works with 1 thread. I don't understand why it worked when I initialy tested it on Linux.

I've found the bug and testing the fix now.

Unfortunately I don't know of a way to copy text from a DOS window.


OBTfx
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 17, 2020, 11:13:02 PM
 #45

Unfortunately I don't know of a way to copy text from a DOS window.

Copying text from a command window in Windows is:
- In the command window, right-click
- Use the 'mark' option
- (Optional) Scroll in the window with the right sidebar, from where you want to copy
- Press the left mouse button (the marker is shown here) and drag/slide the score for everything you want to copy
- Once everything is marked, press the right mouse button; and the selection remains on the clipboard to be copied where needed (Ctrl + V)

Cheers  Grin
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 17, 2020, 11:29:29 PM
 #46

cpuminer-opt-3.13.1.1 fixes minotaur crash & GCC 10 compile failure.

https://github.com/JayDDee/cpuminer-opt/releases

nak333
Jr. Member
*
Offline Offline

Activity: 112
Merit: 2


View Profile WWW
May 18, 2020, 12:32:16 AM
 #47

cpuminer-opt-3.13.1.1 fixes minotaur crash & GCC 10 compile failure.

https://github.com/JayDDee/cpuminer-opt/releases

Yes, Minotaur is working with any thread I choose. Thanks.   Grin
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 02:01:42 AM
 #48

And this is the error that I get when do solo mining.



This is because minotaur is enforcing segwit (bip141). I don't know how to implement segwit in the miner.
This will likely affect other coins that enforce segwit.

chrysophylax
Legendary
*
Offline Offline

Activity: 2828
Merit: 1091


--- ChainWorks Industries ---


View Profile WWW
May 18, 2020, 03:23:01 AM
 #49

The stratum problem at rplant pool is weird. There is no reason the miner would fail based on thread count.
There is also no reason it would exit silently unless it crashed. I'm not familiar with Windows crash debugging
so I don't know how to determine if it crashed or how it crashed.

I can only suggest trying different things to see if there's a pattern.

- try default thread count
- try stratum+tcps port, if available
- try different algo same pool
- try different pool same algo

I'll try to find more info about the RPC error solo mining.

First time when I ran the miner with two threads, a dialog box of error appeared, atm I can't remember what the error was.
After that the dialog box doesn't appear, just the miner exits silently. I'm sure the miner is crashing when I use more than 1 thread.
I think there is something wrong in coding.

- try default thread count  -  doesn't work with more than 1 thread

- try stratum+tcps port, if available  -  doesn't work with more than 1 thread

- try different algo same pool  -  it works with different algo same pool

- try different pool same algo  -  doesn't work with more than 1 thread

Try a different pool ...

See if the same situation exists.

#crysx

I think you missed this point in my previous post.
Quote
- try different pool same algo  -  doesn't work with more than 1 thread

I tried in two other pools, PoolMine and my2coins, same result.


I did miss it mate ...

Apologies!

I really should leave these comments to JayDee Wink

#crysx

JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 03:36:36 AM
 #50


I did miss it mate ...

Apologies!

I really should leave these comments to JayDee Wink

#crysx

It never hurts to have more eyes on a problem, that's why I like open discussion.

chrysophylax
Legendary
*
Offline Offline

Activity: 2828
Merit: 1091


--- ChainWorks Industries ---


View Profile WWW
May 18, 2020, 03:39:17 AM
 #51


I did miss it mate ...

Apologies!

I really should leave these comments to JayDee Wink

#crysx

It never hurts to have more eyes on a problem, that's why I like open discussion.

Thanks mate ...

Though it does help when i READ the entire posts too Wink hehehe!

I hope it's all doing well your end of the world mate.

#crysx

nak333
Jr. Member
*
Offline Offline

Activity: 112
Merit: 2


View Profile WWW
May 18, 2020, 03:59:54 AM
 #52

This is because minotaur is enforcing segwit (bip141). I don't know how to implement segwit in the miner.
This will likely affect other coins that enforce segwit.

hmm.
There is a miner available to do solo mining of Ring (Minotaur algo). But, it generates very low hash rate compare to other miners.
https://github.com/litecoincash-project/cpuminer-multi
Your miner is better than many other miners, e.g. rplant miner, it is only lacking solo mining of Minotaur.
If you able to add this, I think then it will be best CPU miner.
SpceGhst
Jr. Member
*
Offline Offline

Activity: 269
Merit: 4


View Profile
May 18, 2020, 11:25:36 AM
Last edit: May 18, 2020, 12:48:13 PM by SpceGhst
 #53

Don’t know if this helps or not, but Ring is built on BTC core 18 which changed getblocktemplate.  This is from core website.

Notable changes

Mining

Calls to getblocktemplate will fail if the segwit rule is not specified. Calling getblocktemplate without segwit specified is almost certainly a misconfiguration since doing so results in lower rewards for the miner. Failed calls will produce an error message describing how to enable the segwit rule.

I found this for Litecoin:
You need to explictly declare the segwit rule:

litecoin-cli getblocktemplate '{"rules":["segwit"]}'
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 03:33:58 PM
 #54

Adding segwit support would be a significant improvement and I'm willing to give it a shot.
However, I will need a lot of help with testing and progress will be slow with a lot of back and forth.

The changes will affect all solo mining with any algo. The good news is that if segwit works for
ring it should work for any coin/algo. The bad news is that it could break solo mining for others.

If you can use Linux (Ubuntu preferably) it would save a lot of time by compiling it yourself.
You wouldn't need a seperate PC, a Virtualbox VM would work. With that you could make small code
changes and test them quicker instead of waiting for me to build Windows binaries.

You would also be able to do a control test with the litecoin-cash fork as there are no binaries available
for it.

The code changes would be made by me and you would test them and report your results.

The basic plan is as follows:

1. Me: analyze the code changes and merge the segwit code.
    You: Perform a control test solo mining with the litecoin-cash fork (if using Linux)

2.  Me: provide source (if using linux) or Windows binaries with new code.
     You: test and report

3. Me: fix bugs and return to step 2 until it's working correctly.

4. You: once minotaur is working with GBT/segwit do some regression testing by solo mining other coins to make sure
nothing broke.

Let me know if this plan works for you. Other volunteers would also be welcome to help with testing, particularly regression
testing if they are already solo mining their favorite coin.

OBTfx
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 18, 2020, 03:56:02 PM
 #55

Other volunteers would also be welcome to help with testing, particularly regression
testing if they are already solo mining their favorite coin.

I can help you with testing and compiling on Linux computers.  Grin
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 04:11:20 PM
 #56

Other volunteers would also be welcome to help with testing, particularly regression
testing if they are already solo mining their favorite coin.

I can help you with testing and compiling on Linux computers.  Grin


That's great. Are you volunteering to test Ring or another coin? Do you know if it uses getwork or GBT?
I think I can avoid breaking getwork, but the segwit changes are interleaved with GBT code so there is
a bigger risk of breakage.

OBTfx
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
May 18, 2020, 05:13:59 PM
 #57

Other volunteers would also be welcome to help with testing, particularly regression
testing if they are already solo mining their favorite coin.

I can help you with testing and compiling on Linux computers.  Grin


That's great. Are you volunteering to test Ring or another coin? Do you know if it uses getwork or GBT?
I think I can avoid breaking getwork, but the segwit changes are interleaved with GBT code so there is
a bigger risk of breakage.

I can try Ring (because it's what I've already installed on my computers) and the one I'm most familiar with (also the one that knocks on the door); but I guess the other currencies (CPU only, which is what I can help with) shouldn't be much different;
- put the wallet down
- sync (which is the heaviest, but a pruning = 100 MB)
- request a legacy address
- put a mine against your node

I don't understand very well about 'getwork'; if i use it myself or if the blockchain responds to that command? if it is the latter, I don't see that command between rpc commands; maybe my other colleagues know more about it

Let's say I'm new, among the RPC commands, mining ... but I dock quickly, if you tell me what to do exactly or where to read I can keep up with you.
nak333
Jr. Member
*
Offline Offline

Activity: 112
Merit: 2


View Profile WWW
May 18, 2020, 06:00:14 PM
 #58

Adding segwit support would be a significant improvement and I'm willing to give it a shot.
However, I will need a lot of help with testing and progress will be slow with a lot of back and forth.

The changes will affect all solo mining with any algo. The good news is that if segwit works for
ring it should work for any coin/algo. The bad news is that it could break solo mining for others.

If you can use Linux (Ubuntu preferably) it would save a lot of time by compiling it yourself.
You wouldn't need a seperate PC, a Virtualbox VM would work. With that you could make small code
changes and test them quicker instead of waiting for me to build Windows binaries.

You would also be able to do a control test with the litecoin-cash fork as there are no binaries available
for it.

The code changes would be made by me and you would test them and report your results.

The basic plan is as follows:

1. Me: analyze the code changes and merge the segwit code.
    You: Perform a control test solo mining with the litecoin-cash fork (if using Linux)

2.  Me: provide source (if using linux) or Windows binaries with new code.
     You: test and report

3. Me: fix bugs and return to step 2 until it's working correctly.

4. You: once minotaur is working with GBT/segwit do some regression testing by solo mining other coins to make sure
nothing broke.

Let me know if this plan works for you. Other volunteers would also be welcome to help with testing, particularly regression
testing if they are already solo mining their favorite coin.

I can help you in testing Windows binaries. But, I don't know much about mining, I'm newbie in this field.
Your miner supports more than 90 algorithm. I can test some coins that can be mine via CPU.
JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 06:17:30 PM
 #59

Let's say I'm new, among the RPC commands, mining ... but I dock quickly, if you tell me what to do exactly or where to read I can keep up with you.

Well I don't know if I'm the best to give instructins, I've never actually solo mined.

Getwork is the old protocol still used by many coins.

Getblocktemplate (GBT) is the new protocol used by Bitcoin and many clones. I'm adding segwit support to GBT.

The command line syntax is slightly different between them but there is some auto-detection in the code.
Generally GBT will be tried first then fallback to getwork. The messages at startup should be clear on which is being used.

It would be good if you could do a control test mining ring with the litecoincash fork of cpuminer-multi (step 1 of the plan):

https://github.com/litecoincash-project/cpuminer-multi

The main goals are 1:  to confirm it can connect, get work from the server, and start hashing; 2: confirm it can find a block
which could take some time.

It would be good to know if the code I'm copying actually works.

I recommend adding -D -P the command line to gather more data in case of problems. You can also add --hash-meter to confim
it's hashing if things are too quiet.

I've started analyzing the code and so far it looks like the segwit code is mostly protected when segwit is not enabled
so adding segwit should break anything (fingers crossed).

JayDDee (OP)
Full Member
***
Offline Offline

Activity: 1397
Merit: 221


View Profile
May 18, 2020, 06:20:06 PM
 #60

I can help you in testing Windows binaries. But, I don't know much about mining, I'm newbie in this field.
Your miner supports more than 90 algorithm. I can test some coins that can be mine via CPU.

Thanks, I'll produce binaries when I have something to test.

Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!