Author

Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner - page 164. (Read 444067 times)

legendary
Activity: 1470
Merit: 1114
sr. member
Activity: 292
Merit: 250
It looks like you are trying to solo mine the wallet. I have not been able to test this and didn't know if it worked.
Thanks for being my tester. I'll look into it to see what I can do.

Edit: can you provide the output without -q?

Code:
         **********  cpuminer-opt 3.3  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AES_NI extension.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT
     Forked from TPruvot's cpuminer-multi with credits
     to Lucas Jones, elmad, palmd, djm34, pooler, ig0tik3d,
     Wolf0 and Jeff Garzik.

Checking CPU capatibility...
               Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
   CPU arch supports AES_NI...YES.
   SW built for AES_NI........YES.
   Algo supports AES_NI.......YES.
Start mining with AES_NI optimizations...

[2016-06-01 13:25:04] Binding thread 0 to cpu 0 (mask 1)
[2016-06-01 13:25:04] Binding thread 1 to cpu 1 (mask 2)
[2016-06-01 13:25:04] Binding thread 2 to cpu 2 (mask 4)
[2016-06-01 13:25:04] 4 miner threads started, using 'hodl' algorithm.
[2016-06-01 13:25:04] Binding thread 3 to cpu 3 (mask 8)
[2016-06-01 13:25:05] Current block is 64418
[2016-06-01 13:25:05] Unrecognized block version: 4
[2016-06-01 13:25:05] Long-polling on http://192.168.1.8:11989
[2016-06-01 13:25:06] json_rpc_call failed, retry after 10 seconds
[2016-06-01 13:25:07] JSON-RPC call failed: Method not found
[2016-06-01 13:25:17] Current block is 64418
[2016-06-01 13:25:17] Unrecognized block version: 4
[2016-06-01 13:25:18] json_rpc_call failed, retry after 10 seconds
[2016-06-01 13:25:29] Current block is 64418
[2016-06-01 13:25:29] Unrecognized block version: 4
[2016-06-01 13:25:30] json_rpc_call failed, retry after 10 seconds

The output with Debug option without -q.

Also regarding the low difficulty share issue, it also occurred to me before. i5-2500K on ubuntu 14.04 x64.

Edit: Output with protocol dump (-P)

Code:
[2016-06-01 13:44:32] JSON protocol request:
{"method": "getblocktemplate", "params": [{"capabilities": ["coinbasetxn", "coinbasevalue", "longpoll", "workid"]}], "id":0}


* Rebuilt URL to: http://192.168.1.8:11989/
* Found bundle for host 192.168.1.8: 0x7fead8013d00
* Re-using existing connection! (#0) with host 192.168.1.8
* Connected to 192.168.1.8 (192.168.1.8) port 11989 (#0)
* Server auth using Basic with user 'hodl'
> POST / HTTP/1.1
Authorization: Basic Zm9ydHJlc3Nob2RsOjdBMjV2TjlGbGljSnhwcVk=
Host: 192.168.1.8:11989
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 126
User-Agent: cpuminer-opt/3.3
X-Mining-Extensions: longpoll reject-reason
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Date: Wed, 01 Jun 2016 05:44:36 +0000
< Connection: keep-alive
< Content-Length: 583
< Content-Type: application/json
* Server bitcoin-json-rpc/v1.0.0 is not blacklisted
< Server: bitcoin-json-rpc/v1.0.0
<
* Connection #0 to host 192.168.1.8 left intact
[2016-06-01 13:44:33] JSON protocol response:
{
   "error": null,
   "result": {
      "transactions": [],
      "sizelimit": 1000000,
      "previousblockhash": "00000018958d65d48ce5f3ef329ab9b8a49eb9e6ad8c56c67cd4518b992841f5",
      "mutable": [
         "time",
         "transactions",
         "prevblock"
      ],
      "longpollid": "00000018958d65d48ce5f3ef329ab9b8a49eb9e6ad8c56c67cd4518b992841f5331",
      "version": 4,
      "mintime": 1464759040,
      "height": 64428,
      "capabilities": [
         "proposal"
      ],
      "coinbaseaux": {
         "flags": ""
      },
      "sigoplimit": 20000,
      "coinbasevalue": 5000000000,
      "target": "0000004556e10000000000000000000000000000000000000000000000000000",
      "curtime": 1464759870,
      "noncerange": "00000000ffffffff",
      "bits": "1d4556e1"
   },
   "id": 0
}
[2016-06-01 13:44:33] Current block is 64428
[2016-06-01 13:44:33] Unrecognized block version: 4
[2016-06-01 13:44:33] JSON protocol request:
{"method": "getmininginfo", "params": [], "id":8}


* Rebuilt URL to: http://192.168.1.8:11989/
* Found bundle for host 192.168.1.8: 0x7fead8013d00
* Re-using existing connection! (#0) with host 192.168.1.8
* Connected to 192.168.1.8 (192.168.1.8) port 11989 (#0)
* Server auth using Basic with user 'hodl'
> POST / HTTP/1.1
Authorization: Basic Zm9ydHJlc3Nob2RsOjdBMjV2TjlGbGljSnhwcVk=
Host: 192.168.1.8:11989
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 51
User-Agent: cpuminer-opt/3.3
X-Mining-Extensions: longpoll reject-reason
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Date: Wed, 01 Jun 2016 05:44:37 +0000
< Connection: keep-alive
< Content-Length: 246
< Content-Type: application/json
* Server bitcoin-json-rpc/v1.0.0 is not blacklisted
< Server: bitcoin-json-rpc/v1.0.0
<
* Connection #0 to host 192.168.1.8 left intact
[2016-06-01 13:44:34] JSON protocol response:
{
   "error": null,
   "result": {
      "difficulty": 0.01356886,
      "errors": "",
      "currentblocksize": 1000,
      "currentblocktx": 0,
      "pooledtx": 0,
      "blocks": 64427,
      "genproclimit": -1,
      "networkhashps": 402233,
      "generate": false,
      "testnet": false,
      "chain": "main",
      "hashespersec": 0
   },
   "id": 8
}
[2016-06-01 13:44:34] json_rpc_call failed, retry after 10 seconds
legendary
Activity: 1484
Merit: 1082
ccminer/cpuminer developer
For the version, you need to update that :

configure.ac:1:AC_INIT([cpuminer-multi], [1.2-dev])

sample from ccminer :

AC_INIT([ccminer], [1.8-dev], [], [ccminer], [http://github.com/tpruvot/ccminer])


then autoreconf && make

./cpuminer --version

         **********  cpuminer-opt 3.3.1  ***********


Code:
-AC_INIT([cpuminer-multi], [1.2-dev])
+AC_INIT([cpuminer-opt], [3.3.1])
legendary
Activity: 1470
Merit: 1114
I think the low difficulty rejects in hodl were left over from the mess in v3.2.  v3.1.18 seems to be clean.
If anyone has evidence to the contrary please let me know.
legendary
Activity: 1470
Merit: 1114
CRYPTOMINING-BLOG ARTICLE--

Congratulations!  Your software was featured on the blog!  I tried it, and found that it does at least 100% better than CPU-Multi on Yescript!  I do see that Yescript software algo is not yet optimized.  I hope that you will find the time to do that bit of code soon.

Running on i7 2600 here, I get about 2kh/s for Yescript.  With CPU-Multi, it was closer to 800H/s.

Thank you!       --scryptr

Unfortunately I can't optimize scrypt algos, only the chained algos like x11, quark etc. You get 2x multi, not sure why,
I just took whatever was there and it worked. Never compared performance.

Pretty cool to be featured on CMB, they already updated to v3.3.1.
legendary
Activity: 1797
Merit: 1028
CRYPTOMINING-BLOG ARTICLE--

Congratulations!  Your software was featured on the blog!  I tried it, and found that it does at least 100% better than CPU-Multi on Yescript!  I do see that Yescript software algo is not yet optimized.  I hope that you will find the time to do that bit of code soon.

Running on i7 2600 here, I get about 2kh/s for Yescript.  With CPU-Multi, it was closer to 800H/s.

Thank you!       --scryptr
member
Activity: 311
Merit: 10
Having the same issue @ i5-6200U @ 2.4Ghz on Windows 10
legendary
Activity: 1470
Merit: 1114
I have observed for several releases that on occasion cpuminer-opt fails to start up properly
mining hodl and produces only low difficulty shares. Also when mining there is the occasional
low difficulty share at a rate of 1 or 2%. This only seems to occur on certain systems.

For example it occurs on my i7-6700K Linux, but not on my i7-4790K windows or i5-2400 linux.

Cryptomining blog has also noted this problem.

If you get low difficulty shares on startup when mining hodl hit Ctrl-C and try again. I would also
appreciate if users could report whether they have this problem and which CPU and OS they use.

legendary
Activity: 1470
Merit: 1114
Cpuminer-opt v3.3.1 released with support for new algo x11evo (Revolver coin).
The algo has been optimized +109% for AES_NI and 42% for SSE2.

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

There is a small change in build procedure, a new option to configure not documented in README.md
or supported in build,sh.

Code:
./autogen.sh
./configure CFLAGS="-O3 -march=native" CXXFLAGS="$CFLAGS -std=gnu++11" --with-curl
make

Full Windows support is provided except for hodl algo on CPUs without AES_NI. See README.md
for instructions to install mingw_w64 and msys for compiling on Windows. Compiling with Visual
Studio is not supported and no precompiled Windows binaries are provided.

Edit: Cryptomining Blog has built Windows binaries for v3.3. Will give it a try.

http://cryptomining-blog.com/7900-windows-binaries-for-the-cpuminer-opt-3-3-cpu-miner/

Edit2: The CMB package comes with a bunch of DLLs needed to run so it should work for most users.
It runs fine on my i7-4790K Windows 8.1.
legendary
Activity: 1470
Merit: 1114
@joblo I'm getting this error while trying to solo-mine hodlcoin.

The launch parameters (below), works with the original hodlminer and hodlminer-wolf versions.

./cpuminer -a hodl -o http://192.168.1.x:xxxx -u xxxx -p xxxx -t 4 --coinbase-addr=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --no-getwork -q



It looks like you are trying to solo mine the wallet. I have not been able to test this and didn't know if it worked.
Thanks for being my tester. I'll look into it to see what I can do.

Edit: can you provide the output without -q?
sr. member
Activity: 292
Merit: 250
@joblo I'm getting this error while trying to solo-mine hodlcoin.

The launch parameters (below), works with the original hodlminer and hodlminer-wolf versions.

./cpuminer -a hodl -o http://192.168.1.x:xxxx -u xxxx -p xxxx -t 4 --coinbase-addr=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --no-getwork -q

legendary
Activity: 1470
Merit: 1114
Code:
[2016-05-31 16:48:25] x11evo block 4752, diff 11.644
[2016-05-31 16:48:33] x11evo block 4753, diff 15.657
[2016-05-31 16:49:19] GPU #0: EVGA GTX 970, 7656.44 kH/s
[2016-05-31 16:49:19] accepted: 1299/1299 (diff 0.106), 14.98 MH/s yes!
[2016-05-31 16:49:21] GPU #1: ASUS GTX 970, 7320.42 kH/s

also made yiimp support ^^ all since 5h this morning


i use autoreconf alone when i add a file in Makefile.am, i rarely use -fi

Pretty good, that's .85 x11, I get .78 x11 on cpuminer-opt.
legendary
Activity: 1484
Merit: 1082
ccminer/cpuminer developer
Code:
[2016-05-31 16:48:25] x11evo block 4752, diff 11.644
[2016-05-31 16:48:33] x11evo block 4753, diff 15.657
[2016-05-31 16:49:19] GPU #0: EVGA GTX 970, 7656.44 kH/s
[2016-05-31 16:49:19] accepted: 1299/1299 (diff 0.106), 14.98 MH/s yes!
[2016-05-31 16:49:21] GPU #1: ASUS GTX 970, 7320.42 kH/s

also made yiimp support ^^ all since 5h this morning


i use autoreconf alone when i add a file in Makefile.am, i rarely use -fi
legendary
Activity: 1470
Merit: 1114
autoreconf (with -fi on newer systems)

else new algo to add : https://github.com/tpruvot/cpuminer-multi/commit/22dd788c10dfbdb5e493986376d9fe0cf757c24c

Thanks, you beat me to it. Got it working last night on Linux. trying to get it working on Win, might be similar
issue to non AES hodl on Win and I have an idea how to fix it, otherwise I would have released x11evo last night.

The implementation took:

1 line added to Makefile.am
3 lines added to miner.h to define algo enum, name and help.
1 line added to algo-gate-api.c to call register function
1 line in x11evo.c to #include algo-gate-api.h
4 lines to define algo register function
1 line changed to fix scanhash parameter list

Total 11 lines. This was a particularly easy implementation because it uses the defaults for everything.

The I added the optimizations and doubled the speed.

Is autoreconf the solution to the issue with configure that was being discussed, how to migrate to a new compiler
or both?
legendary
Activity: 1484
Merit: 1082
ccminer/cpuminer developer
legendary
Activity: 1470
Merit: 1114
You shouldn't edit configure, but the files used to generate it: configure.in for example.


Funny thing is the only thing I do differently than cpuminer-multi is, presumably,  manually edit configure but noticed no
change in the building after doing so. I edit once every release with many make distclean before and after the edit. My changes
never get tossed so there must be something preventing make distclean from deleting configure and autogen.sh from
overwriting it, and it's nothing I've done.

I don't disagree philosophically with anything that has been said about it, but it's not my problem, I'm just doing what the
previous guy did. Since I didn't break it I can't fix it in the sense of putting it back the way I found it.

Also configure.in doesn't exist, configure.ac hasn't changed since October. I'd be shooting in the dark trying to figure it out.
if it didn't work immediately I'd be lost.

Make distclean will not touch configure, because configure generates makefiles.

https://www.gnu.org/software/automake/manual/html_node/Standard-Targets.html

Quote
make clean
Erase from the build tree the files built by make all.

make distclean
Additionally erase anything ./configure created.

Generating configure is one level of abstraction higher.

PS: I think the reason why editing configure gave you false impression that this is the right thing to do is because configure.ac you inherited from another fork uses AM_MAINTAINER_MODE. Which disables such checks.

https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html

Quote
Several years ago François Pinard pointed out several arguments against this AM_MAINTAINER_MODE macro. Most of them relate to insecurity. By removing dependencies you get non-dependable builds: changes to sources files can have no effect on generated files and this can be very confusing when unnoticed. He adds that security shouldn’t be reserved to maintainers (what --enable-maintainer-mode suggests), on the contrary. If one user has to modify a Makefile.am, then either Makefile.in should be updated or a warning should be output (this is what Automake uses missing for) but the last thing you want is that nothing happens and the user doesn’t notice it (this is what happens when rebuild rules are disabled by AM_MAINTAINER_MODE).

Jim Meyering, the inventor of the AM_MAINTAINER_MODE macro was swayed by François’s arguments, and got rid of AM_MAINTAINER_MODE in all of his packages.

emphasis mine.

Counter intuitively, the presence of that macro disables maintainer mode, and if you run ./configure --enable-maintainer-mode, then edit configure.ac (just change the version number from 1.2-dev), then run make, such edit will be detected and autoconf will be used to re-generate configure from its source file (configure.ac), effectively deleting all changes you did to that file because you were running in non-maintainer mode.

It can be frustrating at times when you bring up issues I inherited, know nothing about, and aren't causing me any problems
at the moment. But other than that you know your stuff and I could learn a lot from you, but preferably at a time of my
choosing.
member
Activity: 83
Merit: 10
You shouldn't edit configure, but the files used to generate it: configure.in for example.


Funny thing is the only thing I do differently than cpuminer-multi is, presumably,  manually edit configure but noticed no
change in the building after doing so. I edit once every release with many make distclean before and after the edit. My changes
never get tossed so there must be something preventing make distclean from deleting configure and autogen.sh from
overwriting it, and it's nothing I've done.

I don't disagree philosophically with anything that has been said about it, but it's not my problem, I'm just doing what the
previous guy did. Since I didn't break it I can't fix it in the sense of putting it back the way I found it.

Also configure.in doesn't exist, configure.ac hasn't changed since October. I'd be shooting in the dark trying to figure it out.
if it didn't work immediately I'd be lost.

Make distclean will not touch configure, because configure generates makefiles.

https://www.gnu.org/software/automake/manual/html_node/Standard-Targets.html

Quote
make clean
Erase from the build tree the files built by make all.

make distclean
Additionally erase anything ./configure created.

Generating configure is one level of abstraction higher.

PS: I think the reason why editing configure gave you false impression that this is the right thing to do is because configure.ac you inherited from another fork uses AM_MAINTAINER_MODE. Which disables such checks.

https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html

Quote
Several years ago François Pinard pointed out several arguments against this AM_MAINTAINER_MODE macro. Most of them relate to insecurity. By removing dependencies you get non-dependable builds: changes to sources files can have no effect on generated files and this can be very confusing when unnoticed. He adds that security shouldn’t be reserved to maintainers (what --enable-maintainer-mode suggests), on the contrary. If one user has to modify a Makefile.am, then either Makefile.in should be updated or a warning should be output (this is what Automake uses missing for) but the last thing you want is that nothing happens and the user doesn’t notice it (this is what happens when rebuild rules are disabled by AM_MAINTAINER_MODE).

Jim Meyering, the inventor of the AM_MAINTAINER_MODE macro was swayed by François’s arguments, and got rid of AM_MAINTAINER_MODE in all of his packages.

emphasis mine.

Counter intuitively, the presence of that macro disables maintainer mode, and if you run ./configure --enable-maintainer-mode, then edit configure.ac (just change the version number from 1.2-dev), then run make, such edit will be detected and autoconf will be used to re-generate configure from its source file (configure.ac), effectively deleting all changes you did to that file because you were running in non-maintainer mode.
legendary
Activity: 1470
Merit: 1114
You shouldn't edit configure, but the files used to generate it: configure.in for example.


Funny thing is the only thing I do differently than cpuminer-multi is, presumably,  manually edit configure but noticed no
change in the building after doing so. I edit once every release with many make distclean before and after the edit. My changes
never get tossed so there must be something preventing make distclean from deleting configure and autogen.sh from
overwriting it, and it's nothing I've done.

I don't disagree philosophically with anything that has been said about it, but it's not my problem, I'm just doing what the
previous guy did. Since I didn't break it I can't fix it in the sense of putting it back the way I found it.

Also configure.in doesn't exist, configure.ac hasn't changed since October. I'd be shooting in the dark trying to figure it out.
if it didn't work immediately I'd be lost.
legendary
Activity: 1470
Merit: 1114
That's not how it currently works in cpuminer-opt. configure is persistent and is not modified by anyone or anything
but me.

Write a warning about that somewhere, because this is not how the rest of the world does it.

https://wiki.debian.org/Autoreconf

Debian (and, by extension, Ubuntu) deletes configure and regenerates it from configure.ac on almost every single package that is in the repository.

Your copy of configure also might be too old for newer distros like Arch or Gentoo, and will end up tripping on errors. A simple run of "autoreconf -f -i -v" fixes many of those problems by regenerating that configure script.

Keeping nonperishable source-class information in that place is not sane idea. This is equivalent of editing *.o files after compilation from *.c.

PS: if you insist on keeping configure, then remove it from .gitignore and delete the source file -- configure.ac.


Noted, something must be done before I upload to git.
Jump to: