Pages:
Author

Topic: [XPM] CUDA enabled qt client miner for primecoins. Source code inside. WIP (Read 31718 times)

sr. member
Activity: 406
Merit: 250
I can take this on. Donate 75 bitcoins to me and you will receive an early beta. Tongue

(joking, of course)
full member
Activity: 210
Merit: 100
Community projects always die. It needs to have a motivation. ie. bitcoins.
I would donate to a developer willing to take this on.
sr. member
Activity: 406
Merit: 250
Community projects always die. It needs to have a motivation. ie. bitcoins.
full member
Activity: 210
Merit: 100
Too bad, I have an awesome nvidia based gaming rig.  I use the cpu for xpm mining but the gpus just sit idle
legendary
Activity: 2674
Merit: 2965
Terminated.
newbie
Activity: 21
Merit: 0
legendary
Activity: 2674
Merit: 2965
Terminated.
full member
Activity: 210
Merit: 100
hero member
Activity: 820
Merit: 1000
How long did you leave it running for before checking? (and yeah my numbers were based on change in chains per day)
About 10 minutes, although I have just checked again and it is still 9% slower.    I can also see the marked drop in the chains/day stats in debug.log.  Weird.

Upon further inspection the chainsperday number seems to jump around all over the place.  anywhere from 0.58 to 0.89.  Currently it seems to have stabilized at 0.77, which is still markedly higher than it was before the changes at 0.69.

edit: are you using other settings?

Also, sorry for thread jacking primedigger.  We really should move this conversation back to the correct thread.
My i7 was running stable at 1.10, it is now running stable at 1.00, which is actually 10% slower.  I'll revert the code back later and see if it makes a difference.
Anyway we're hijacking this thread so suggest starting a new one if you want to continue to figuring this out.
sr. member
Activity: 363
Merit: 250
How long did you leave it running for before checking? (and yeah my numbers were based on change in chains per day)
About 10 minutes, although I have just checked again and it is still 9% slower.    I can also see the marked drop in the chains/day stats in debug.log.  Weird.

Upon further inspection the chainsperday number seems to jump around all over the place.  anywhere from 0.58 to 0.89.  Currently it seems to have stabilized at 0.77, which is still markedly higher than it was before the changes at 0.69.

edit: are you using other settings (or default settings)?

Also, sorry for thread jacking primedigger.  We really should move this conversation back to the correct thread.
hero member
Activity: 820
Merit: 1000
How long did you leave it running for before checking? (and yeah my numbers were based on change in chains per day)
About 10 minutes, although I have just checked again and it is still 9% slower.    I can also see the marked drop in the chains/day stats in debug.log.  Weird.
sr. member
Activity: 363
Merit: 250
How long did you leave it running for before checking? (and yeah my numbers were based on change in chains per day)
hero member
Activity: 820
Merit: 1000
I can confirm this gave me a speed up on my 4 machines as follows:
1: 6.88%
2: 4.52%
3: 4.69%
4: 8.42%


Interesting - I saw a 9% decrease in Chains/day???
sr. member
Activity: 363
Merit: 250
I can confirm this gave me a speed up on my 4 machines as follows:
1: 6.88%
2: 4.52%
3: 4.69%
4: 8.42%
sr. member
Activity: 363
Merit: 250
Thanks!  Just as an aside, in c++ what does it mean to wrap a block of code in { } when there isn't a function definition, if, else, while, for, etc. statement? (in regards to the second block of code you mentioned to comment out, it seems wrapped in {} with no initial statement.
It's a nice simple way to limit the scope of any variables declared inside the {} to only be "visible" inside those brackets

Ahhh. sweet, good to know.  I don't write much c++, just learning it now.
hero member
Activity: 820
Merit: 1000
Thanks!  Just as an aside, in c++ what does it mean to wrap a block of code in { } when there isn't a function definition, if, else, while, for, etc. statement? (in regards to the second block of code you mentioned to comment out, it seems wrapped in {} with no initial statement.
It's a nice simple way to limit the scope of any variables declared inside the {} to only be "visible" inside those brackets
sr. member
Activity: 363
Merit: 250
If you can't wait for Mikaelh's fix: The fast div can be disabled easily, open prime.cpp in an editor and comment out the whole "if (fFastDiv) {...}" block in the function FermatProbablePrimalityTestFast and comment out the block after the comment "// Compute parameters for fast div test" in MineProbablePrimeChain.

The number of candidates it filtered out was depended on "nFastDivPrimes", which by default was chosen fairly low, thus only ~6% of candidates are (wrongly) discarded. But hp-9 is still doing unnecessary divisions on all candidates, so you can speed up hp-9 by commenting out those divisions.

Thanks!  Just as an aside, in c++ what does it mean to wrap a block of code in { } when there isn't a function definition, if, else, while, for, etc. statement? (in regards to the second block of code you mentioned to comment out, it seems wrapped in {} with no initial statement.
member
Activity: 75
Merit: 10
If you can't wait for Mikaelh's fix: The fast div can be disabled easily, open prime.cpp in an editor and comment out the whole "if (fFastDiv) {...}" block in the function FermatProbablePrimalityTestFast and comment out the block after the comment "// Compute parameters for fast div test" in MineProbablePrimeChain.

The number of candidates it filtered out was depended on "nFastDivPrimes", which by default was chosen fairly low, thus only ~6% of candidates are (wrongly) discarded. But hp-9 is still doing unnecessary divisions on all candidates, so you can speed up hp-9 by commenting out those divisions.
sr. member
Activity: 301
Merit: 250
I think there might be a bug in hp-9 somewhere, so that the trial division doesn't work quite right in that version and sorts out wrong candidates. I will need to confirm this with the hp-9 sources without my changes, so that I'm sure I didn't introduce that bug. The CUDA trial division seems to be doing the right think and it doesn't find any candidates to discard, because if I understand it right, the sieve already did that. To put it in different words: this idea is likely a dead end.

I can confirm that fast division is buggy in hp9. It's also not needed in hp9 anymore because of Sunny's optimization. I'll remove the code in my next release. Thanks for spotting the bug.

So uhh... should we not be using HP9 then?

The fast-div test seems to be filtering out about 6% of candidates. HP9 should still be faster than HP8 despite that.
legendary
Activity: 2674
Merit: 2965
Terminated.
Pages:
Jump to: