joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 30, 2016, 06:47:34 PM |
|
Edit2: I downloaded your code but there are files missing, most noticeably configure. What's up with that?
Regarding files missing, I cloned hmage's source from github so I have the same files that he put up there. configure is generated by autoconf, which is called by autogen.sh, which is called by build.sh. There's no point in keeping build artifacts. Same goes for Makefile, Makefile.in, aclocal.m4, autom4te.cache, compile, config.guess, config.log, config.status, config.sub, cpuminer-config.h, cpuminer-config.h.in, depcomp, install-sh, missing and stamp-h1 -- they are generated during complete build process and it's general etiquiette to not commit those (since their output will vary from machine to machine). PS: they're even mentioned in joblo's .gitignore Uh. no, configure is part of the clean package, I edit it every version with the new version number. Thanks for the tip about _WIN32, I'll add it back in the next release.
|
|
|
|
pallas
Legendary
Offline
Activity: 2716
Merit: 1094
Black Belt Developer
|
|
May 30, 2016, 07:00:57 PM |
|
You shouldn't edit configure, but the files used to generate it: configure.in for example.
|
|
|
|
hmage
Member
Offline
Activity: 83
Merit: 10
|
|
May 30, 2016, 07:11:43 PM |
|
Uh. no, configure is part of the clean package, I edit it every version with the new version number.
No, configure is not part of clean package, it is an auto-generated script. Here's a way to prove that: * Delete configure and then run build.sh -- magically it somehow reappears. * Where from? From configure.ac! If you want your changes in configure to persist, change the source of that file -- configure.ac For more info how configure works, read the docs -- https://www.gnu.org/software/autoconf/manual/autoconf.pdf
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 30, 2016, 08:30:08 PM |
|
Uh. no, configure is part of the clean package, I edit it every version with the new version number.
No, configure is not part of clean package, it is an auto-generated script. Here's a way to prove that: * Delete configure and then run build.sh -- magically it somehow reappears. * Where from? From configure.ac! If you want your changes in configure to persist, change the source of that file -- configure.ac For more info how configure works, read the docs -- https://www.gnu.org/software/autoconf/manual/autoconf.pdfThat's not how it currently works in cpuminer-opt. configure is persistent and is not modified by anyone or anything but me. Whether it is the correct way or not is irrelevent, it works And once again, you are making the claim, you prove it. I'm not saying you are wrong in that using configure.ac is the correct way of doing things but there are obviously others and you have, not only, failed to show any evidence the current cpuminer-opt implementation is wrong, you have failed to accept that it even exists. I don't know about autoconf to debate the virtues of either method but I'm not about to implement a disruptive change for no apparent benefit. Sound familiar? Thanks for the link, I'll add it to the long list of reading material.
|
|
|
|
hmage
Member
Offline
Activity: 83
Merit: 10
|
|
May 30, 2016, 08:32:38 PM Last edit: May 30, 2016, 08:58:14 PM by hmage |
|
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/AutoreconfDebian (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.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 30, 2016, 09:17:39 PM |
|
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/AutoreconfDebian (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.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 30, 2016, 11:50:25 PM |
|
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.
|
|
|
|
hmage
Member
Offline
Activity: 83
Merit: 10
|
|
May 31, 2016, 12:36:32 AM Last edit: May 31, 2016, 01:17:56 AM by hmage |
|
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.htmlmake 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.htmlSeveral 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.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 03:19:47 AM |
|
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.htmlmake 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.htmlSeveral 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.
|
|
|
|
Epsylon3
Legendary
Offline
Activity: 1484
Merit: 1082
ccminer/cpuminer developer
|
|
May 31, 2016, 09:17:07 AM |
|
|
|
|
|
hmage
Member
Offline
Activity: 83
Merit: 10
|
|
May 31, 2016, 01:10:12 PM |
|
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 01:24:01 PM |
|
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?
|
|
|
|
Epsylon3
Legendary
Offline
Activity: 1484
Merit: 1082
ccminer/cpuminer developer
|
|
May 31, 2016, 02:52:44 PM |
|
[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
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 03:59:43 PM |
|
[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.
|
|
|
|
ryen123
|
|
May 31, 2016, 06:20:58 PM |
|
@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
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 06:42:37 PM Last edit: May 31, 2016, 07:54:11 PM by joblo |
|
@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?
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 07:11:38 PM Last edit: May 31, 2016, 09:13:45 PM by joblo |
|
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=sharingThere is a small change in build procedure, a new option to configure not documented in README.md or supported in build,sh. ./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.
|
|
|
|
joblo (OP)
Legendary
Offline
Activity: 1470
Merit: 1114
|
|
May 31, 2016, 08:56:44 PM |
|
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.
|
|
|
|
clipto
Member
Offline
Activity: 311
Merit: 10
|
|
May 31, 2016, 09:57:26 PM |
|
Having the same issue @ i5-6200U @ 2.4Ghz on Windows 10
|
|
|
|
scryptr
Legendary
Offline
Activity: 1797
Merit: 1028
|
|
May 31, 2016, 10:26:28 PM |
|
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
|
|
|
|
|