Bitcoin Forum
May 28, 2018, 04:29:44 AM *
News: Latest stable version of Bitcoin Core: 0.16.0  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 190 »
  Print  
Author Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner  (Read 408694 times)
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 15, 2016, 07:51:40 PM
 #41

Progress update

I've worked through some of the windows compile errors I was getting frustrated sochanged gears
and started working on sse2 support.

sse2 qubit works and will be included in the first release.

I can get sse2 working on one algo that uses groestl at a time. If I include the sse2 groestl files in two algo
at the same time I get multiple definition linker errors. The included files are full of macros so that kind of
explains it. I may try turning them into functions so the files that include them don't pull the coded into
themselves. If that works it will probably have a performance impact, hopefully not too big. I

This affects all the x algos and quark.

I'm going to change my approach slightly. Instead of cloning the macros into a function I'll just wrap
them in a function. I'm more optimistic about the perrformance impact of this. There will be a cost
in the overhead of the function call/return but this design opens up other optimization opportunities.
It remains to be seen what the net effect will be. If there is a net gain this change could be applied
to other macro based sse2 sub-algos, which are still used by the aes_ni kernels ultimately speeding
up aes_ni kernels as well.

These changes are what caused the compile problem above, hopefuly the'l magically disappear.
it's exciting times for a cpu miner.

Well the compoile errors didn't magically disappear. It's still a better design so I'll keep it.

I just declared and defined wrappers in the same files where the macros were defined, eliminating the need
for grso-nomacro files. And the wrappers do nothing else but call the macros. When I can get it to compile
it should work.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
1527481784
Hero Member
*
Offline Offline

Posts: 1527481784

View Profile Personal Message (Offline)

Ignore
1527481784
Reply with quote  #2

1527481784
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1527481784
Hero Member
*
Offline Offline

Posts: 1527481784

View Profile Personal Message (Offline)

Ignore
1527481784
Reply with quote  #2

1527481784
Report to moderator
1527481784
Hero Member
*
Offline Offline

Posts: 1527481784

View Profile Personal Message (Offline)

Ignore
1527481784
Reply with quote  #2

1527481784
Report to moderator
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 15, 2016, 10:08:10 PM
 #42

I am preparing the first publlic release of cpuminer-2.0.

Unless I make significant progress on windows compilation or sse support it will
be released in the next day or two pending results from the beta testers.

The current features:

Optimized AES-NI kernels for the X algos, quark and qubit.
Optimized SSE2 kernels for quark & qubit
Other miscelaneous kernel optimizations
CPU capabilities checking on startup to select the appropriate kernel
CPU info displayed on startup

Possible additions:

Windows support
SSE2 support for X kernels

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 16, 2016, 06:55:25 AM
 #43

Here it is, see the OP for details.

https://drive.google.com/file/d/0B0lVSGQYLJIZclh6QVlMTmNEVG8/view?usp=sharing



cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Alpinat
Sr. Member
****
Offline Offline

Activity: 471
Merit: 250



View Profile
January 16, 2016, 10:04:32 AM
 #44

Do you plan to release one for Cryptonight algorithm?

UbiatarPlay

▄▄▄▄▄▄
  ████
   ███
   ███
   ███
   ███
   ███
   ███
   ███
   ███
   ███
  ████
▀▀▀▀▀▀
        Cryptocurrency to be Everywhere     
   ●Power of Ubiquity  ●Connect- People  ●HumanNetwork  ●Marketplace   

▄▄▄▄▄▄
  ████
   ███
   ███
   ███
   ███
   ███
   ███
   ███
   ███
   ███
  ████
▀▀▀▀▀▀
■Facebook   ■ANN Thread      ■Linkedin 
■Twitter         ■Telegram          ■Github
■Medium       ■Whitepaper    ■Googleplus
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 16, 2016, 10:19:52 AM
 #45

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
number2
Member
**
Offline Offline

Activity: 63
Merit: 10


View Profile
January 17, 2016, 01:00:47 AM
 #46

Forgive my stupidity, but can I use this to mine BCN faster than what I am mining right now with my quad core CPU?  I am thinking of getting more into this, but I need to learn more before I invest more money.  Are there any BCN miners out there that I can buy?
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
January 17, 2016, 01:24:02 AM
 #47

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 01:55:31 AM
 #48

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
January 17, 2016, 02:10:12 AM
 #49

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 03:03:43 AM
 #50

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
January 17, 2016, 03:57:46 AM
 #51

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 04:59:09 AM
 #52

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Looks good based on the file name (aesni in it). I'll investigate and if faster and with your
permission I'll add it to my fork, with credit.

I don't have any wallets for this algo so I can mine to your adress while testing. It probaby
won't be a lot but I'll let it run for a bit.

I'm pretty tied up right now, more hash coming for the big 4 and I'm still trying to workaround
macros causing multiple def errors on link. I think I'm getting there, I converted them all to inline
functions, cloned them and gave the clones unique names. I can't help thinking there is a better
way because of my inexperience withc/c++.

I don't know if an inline function is as fast as a macro, it should be, all the work is at compile time.

Which leads me to a question. Using functions means I have to access the context struct members using
'->' instead of '.'.  This says to me there is an added level of indirection. Does this also apply to inline
functions or is the compiler smart enough to optimize it out and code it like it was a ',' as it would be
if the code was truly inline?

It will be interesting to see if there is a penalty in converting to inliners as well as dealing with struct*
instead of struct. On the bright side splitting everything up into the standard init, update & close functions
allows me to take the init out of the loop.

Edit: I'm stumped about these multi defs. I must be missing something fundamental. I think I'll drop it for
now. I think I can get a little more out of aesni. After I release that I'll take a look at your cryptonight.
It looks like it's using some slower sub-algos so I should be able to improve on it.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
January 17, 2016, 09:46:18 AM
 #53

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Looks good based on the file name (aesni in it). I'll investigate and if faster and with your
permission I'll add it to my fork, with credit.

I don't have any wallets for this algo so I can mine to your adress while testing. It probaby
won't be a lot but I'll let it run for a bit.

I'm pretty tied up right now, more hash coming for the big 4 and I'm still trying to workaround
macros causing multiple def errors on link. I think I'm getting there, I converted them all to inline
functions, cloned them and gave the clones unique names. I can't help thinking there is a better
way because of my inexperience withc/c++.

I don't know if an inline function is as fast as a macro, it should be, all the work is at compile time.

Which leads me to a question. Using functions means I have to access the context struct members using
'->' instead of '.'.  This says to me there is an added level of indirection. Does this also apply to inline
functions or is the compiler smart enough to optimize it out and code it like it was a ',' as it would be
if the code was truly inline?

It will be interesting to see if there is a penalty in converting to inliners as well as dealing with struct*
instead of struct. On the bright side splitting everything up into the standard init, update & close functions
allows me to take the init out of the loop.

Edit: I'm stumped about these multi defs. I must be missing something fundamental. I think I'll drop it for
now. I think I can get a little more out of aesni. After I release that I'll take a look at your cryptonight.
It looks like it's using some slower sub-algos so I should be able to improve on it.


Compiler errors with Groestl? Yeah, you're gonna kick yourself when you figure out why. I had to take a bit more than a cursory look at that optimized Groestl before I saw it.

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 10:23:31 AM
 #54

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Looks good based on the file name (aesni in it). I'll investigate and if faster and with your
permission I'll add it to my fork, with credit.

I don't have any wallets for this algo so I can mine to your adress while testing. It probaby
won't be a lot but I'll let it run for a bit.

I'm pretty tied up right now, more hash coming for the big 4 and I'm still trying to workaround
macros causing multiple def errors on link. I think I'm getting there, I converted them all to inline
functions, cloned them and gave the clones unique names. I can't help thinking there is a better
way because of my inexperience withc/c++.

I don't know if an inline function is as fast as a macro, it should be, all the work is at compile time.

Which leads me to a question. Using functions means I have to access the context struct members using
'->' instead of '.'.  This says to me there is an added level of indirection. Does this also apply to inline
functions or is the compiler smart enough to optimize it out and code it like it was a ',' as it would be
if the code was truly inline?

It will be interesting to see if there is a penalty in converting to inliners as well as dealing with struct*
instead of struct. On the bright side splitting everything up into the standard init, update & close functions
allows me to take the init out of the loop.

Edit: I'm stumped about these multi defs. I must be missing something fundamental. I think I'll drop it for
now. I think I can get a little more out of aesni. After I release that I'll take a look at your cryptonight.
It looks like it's using some slower sub-algos so I should be able to improve on it.


Compiler errors with Groestl? Yeah, you're gonna kick yourself when you figure out why. I had to take a bit more than a cursory look at that optimized Groestl before I saw it.

You're teasing me. Are you suggesting there's a bug in the macros?

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 10:59:03 AM
 #55

Things have been moving fast. I was preparing to release a new version withmore hash
for aesni cpus in quark, qubit and x*. Increases are generally in the 1% range. However,
some new opportunities came up.

Wolf0, thanks Wolf, has offered up his cryptonight miner which has aesni optimizations.
I know someone has been asking about cryptonight.

I also found a neoscrypt miner laying around on my hard drive that is faster than the current one.
It appears to be by John Doering.

Both use the same cpuminer-multi architecture so should be easy to integrate. In the meanine
here are the latest numbers...

sh rates with Intel Core i7-4790K, 4 GHz, 8 threads.

                     quark        qubit       x11     x13     x15     neoscrypt
                     -------         ------       -----     -----     -----     --------------
2.0.1 aesni   1096kh/s   1046      722      344     291         -
2.0 aesni      1080          1041      707      338     290         -
sse2               906            765        -           -          -          30
x86_64           557            427       266      179    165         -
predecessor   904            427       684      179    165        35*

* not yet integrated

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 11:34:01 AM
 #56

The rapid deveopment is likely to slow down so here are some things I'm planning to
do after I get through with cryptonight and neoscrypt.

Qubit sse2 could be improved if I could get the sse2 optimized luffa to work. It works on
x* but not qubit. No shares ever submitted.

Quark aesni might be improved if I could remove init from the scanhash loop. Groestl runs
twice on quark and I suspect that's the reason it doesn't work.

lyrav2 produces 90% rejects and I'd like to dig into that. It submits some valid shares so it
must be doing something right. That's going to require digging into the guts of the algo which
is going to be a challenge for me.

Some of you may think I'm crazy doing all this for CPU mining which most people consider
obsolete. Other than the fact that I have the time and enjoy doing this kind of work I'm
learning a hell of a lot about crypto.  I think I've risen to the second level of competence.*

I'm hoping the knowledge I gain will eventually be applicable to cuda, were the real action
is. When things slow down here I'll take a run at ccminer. Look out SP, here I come.

* the 4 levels of competence, origin unknown

1. unconcious incompetence, you don't know what you don't know

2. concious incompetence, you know enough to know you don't know much

3. concious competence, you are competent if you think about it

4. unconcious competence, you are competent without thinking about it

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Epsylon3
Legendary
*
Offline Offline

Activity: 1344
Merit: 1075


ccminer/cpuminer developer


View Profile WWW
January 17, 2016, 03:02:36 PM
 #57

don't know what you are trying to do... but im still the most active dev on the project... which is not "deprecated" or "obsolete" as you are saying

CPU specific optimizations are free to be made by all. but its specific and not the goal of my fork which is meant to works on most platforms (including arm)

Where are your commits ? common... Are you just tweeking one algo for a special cpu/os and claiming you made the project (like sp) ?

There is still a lot to do on this project, like Wolf said, to handle at runtime specific variants of the algos (AVX, SSE, AES) and not at compile time which require a lot of binaries

edit: oh sorry, didnt see you put the sources, ok its a good start... i see so often infected binaries on the cloud Wink

but advice, change the project name, original cpuminer is pooler's project and their version number is already 2.4.2 -> https://github.com/pooler/cpuminer

BTC: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd - My Projects: ccminer - cpuminer-multi - yiimp - Forum threads : ccminer - cpuminer-multi - yiimp
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
January 17, 2016, 03:29:50 PM
 #58

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Looks good based on the file name (aesni in it). I'll investigate and if faster and with your
permission I'll add it to my fork, with credit.

I don't have any wallets for this algo so I can mine to your adress while testing. It probaby
won't be a lot but I'll let it run for a bit.

I'm pretty tied up right now, more hash coming for the big 4 and I'm still trying to workaround
macros causing multiple def errors on link. I think I'm getting there, I converted them all to inline
functions, cloned them and gave the clones unique names. I can't help thinking there is a better
way because of my inexperience withc/c++.

I don't know if an inline function is as fast as a macro, it should be, all the work is at compile time.

Which leads me to a question. Using functions means I have to access the context struct members using
'->' instead of '.'.  This says to me there is an added level of indirection. Does this also apply to inline
functions or is the compiler smart enough to optimize it out and code it like it was a ',' as it would be
if the code was truly inline?

It will be interesting to see if there is a penalty in converting to inliners as well as dealing with struct*
instead of struct. On the bright side splitting everything up into the standard init, update & close functions
allows me to take the init out of the loop.

Edit: I'm stumped about these multi defs. I must be missing something fundamental. I think I'll drop it for
now. I think I can get a little more out of aesni. After I release that I'll take a look at your cryptonight.
It looks like it's using some slower sub-algos so I should be able to improve on it.


Compiler errors with Groestl? Yeah, you're gonna kick yourself when you figure out why. I had to take a bit more than a cursory look at that optimized Groestl before I saw it.

You're teasing me. Are you suggesting there's a bug in the macros?

I'm suggesting you're misusing the implementation such that there's symbols defined in multiple places! Cheesy

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 04:45:59 PM
 #59

don't know what you are trying to do... but im still the most active dev on the project... which is not "deprecated" or "obsolete" as you are saying

CPU specific optimizations are free to be made by all. but its specific and not the goal of my fork which is meant to works on most platforms (including arm)

Where are your commits ? common... Are you just tweeking one algo for a special cpu/os and claiming you made the project (like sp) ?

There is still a lot to do on this project, like Wolf said, to handle at runtime specific variants of the algos (AVX, SSE, AES) and not at compile time which require a lot of binaries

edit: oh sorry, didnt see you put the sources, ok its a good start... i see so often infected binaries on the cloud Wink

but advice, change the project name, original cpuminer is pooler's project and their version number is already 2.4.2 -> https://github.com/pooler/cpuminer

Hi Tanguy.

Thanks for your input, as the precedessor of my fork I have a lot of respect for your opinions on the matter. Also in respect
to Pooler I'll remame it and bump the lelease number to 3.0 to avoid overlap.

I'd like to think of our forks coexisting where I would focus on the older algos while you would continue with the emerging
algos and infrastructure improvements. I might do some of that also. I'm targetting lyra2v2 as the next most important
algo to work on. I might take a look at argon2 also, it also has its roots in cpuminer-multi and pooler design so it should
be easy to integrate. It will also gove me some practive adding a ne algo the optiopns list. I'll keep you informed of what
I'm up to so we don't trip over each other. I love that the modules are almost plug and play.

I fear I've already introduced some bloat as I have different files for each variant of each algo. There is a lot of cloned code
in each file but my problems with multiple definitions at link time drove me do do that. Once I understand what the hell
I'm doing wrong I can merge the common code and shrink the code size significantly. I also like the idea of a single binary
does that does all the cpu identification and kernel selection transparently. Maybe some of it can be applied to ccminer also.

I'm not intentionally tweaking for specific CPUs, I want to maintain full backward compatibility but some of my optimizations
may help on some CPUs and hurt on others. Things like inlining are affected by cache size. Even with my CPU some hash
functions were faster inlined while others weren't. Quark for example is faster if the hash function and alomst everything below
it is inlined while x11 is faster if the hash function is not inlined, but everything below it is. I'm trying to work my way
from the bottom inlining and testing and i stop inlining when the inlined code segment gets too large and cache performance
starts to suffer. I'm almost done that.

It's funny you mentioned SP. While  doing some tinkering with static and inlining I was wondering if that's what SP was
doing. Maybe I am but I'm not asking for donations, just giving back to the community in a non-monetary way. I want to
cooperate with you and the other developpers and avoid the sniping that goes on in the other thread.

I didn't mean to offend with my comments about CPU mining being obsolete, I'm just trying to be realistic and manage
my expectations. I thought CPU mining was obsolete before I discovered cpuminer-multi and got interested again.
Now I'm excited by what I have been able to do in the past coule of weeks. A good morale boost with mining revenue
so low lately.

I hear you about the name. I could stick with cpuminer-multi if you're ok with that or come up with a new variant.

Thanks again for your hard work with so many projects and I look forward to maybe graduating to ccminer some day.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1134
Merit: 1016


View Profile
January 17, 2016, 04:50:52 PM
 #60

Do you plan to release one for Cryptonight algorithm?

cpuminer already has cryptonight built in but I haven't looked at it yet. it's the code as tpruvot's version.
I wanted to get the first version out quickly to implement the available optimizations.

Give cryptonight it a try and let me know how it goes.

I did the original CN code - I kinda doubt it's getting much faster...

Open or private?

Both. It's open now.

Where can I get it? I've already given you credits in the startup header.

My github... I think. Let me look.

Yup: https://github.com/wolf9466/cpuminer-multi

Looks good based on the file name (aesni in it). I'll investigate and if faster and with your
permission I'll add it to my fork, with credit.

I don't have any wallets for this algo so I can mine to your adress while testing. It probaby
won't be a lot but I'll let it run for a bit.

I'm pretty tied up right now, more hash coming for the big 4 and I'm still trying to workaround
macros causing multiple def errors on link. I think I'm getting there, I converted them all to inline
functions, cloned them and gave the clones unique names. I can't help thinking there is a better
way because of my inexperience withc/c++.

I don't know if an inline function is as fast as a macro, it should be, all the work is at compile time.

Which leads me to a question. Using functions means I have to access the context struct members using
'->' instead of '.'.  This says to me there is an added level of indirection. Does this also apply to inline
functions or is the compiler smart enough to optimize it out and code it like it was a ',' as it would be
if the code was truly inline?

It will be interesting to see if there is a penalty in converting to inliners as well as dealing with struct*
instead of struct. On the bright side splitting everything up into the standard init, update & close functions
allows me to take the init out of the loop.

Edit: I'm stumped about these multi defs. I must be missing something fundamental. I think I'll drop it for
now. I think I can get a little more out of aesni. After I release that I'll take a look at your cryptonight.
It looks like it's using some slower sub-algos so I should be able to improve on it.


Compiler errors with Groestl? Yeah, you're gonna kick yourself when you figure out why. I had to take a bit more than a cursory look at that optimized Groestl before I saw it.

You're teasing me. Are you suggesting there's a bug in the macros?

I'm suggesting you're misusing the implementation such that there's symbols defined in multiple places! Cheesy

Uh, yeah, the compiler told me that already. my preoblem is my experience is on a comletely different kind of
system with a different panguage, OS and HW architecture. And my understanding of the basic concepts is
based on that implementation. It's like when someone speaks in a foreign language, they still think in their native
language and have to translate in their mind in real time. That would be the third level of competence.

This project is getting more exciting every day.

Oh crap I'm starting to sound like Tom Cruise on scientology.

[rant]
PS Going Clear is a great movie. I was approached by scientology back in my mid teens. I had very little money at the
time and since the're all about money nothing came of it. I took their personality test and it seemed pretty acurate.
Then came the pitch. They had courses available that could help me with the deficiencies in my personality. They were
new and didn't have the machine yet. The courses they offered cost hundreds of dollars, something no 15 YO has
unless the're selling drugs. I wa initially inteague by thewoird science in their name. It soon became clear (pun intended)
that the science angle was just a smoke screen for another scam artist using religion to get rich. I was already questioning
my religion at the time and I think it help convert me to atheism. Not atheism as a religion, which is an oxymoron,
but truly the lack of any supreme creator. Religionns cause wars and stifle progress. If we hadn't woken up from the
dark ages the world would still be flat and we'd still be using abacusses to count.
[/rant

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ... 190 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!