Pages:
Author

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

sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
Another update, sorry for the spam.

Managed to install devtoolset-6 (GCC 6.3.1), it was quite straightforward:

Code:
sudo yum install centos-release-scl
sudo yum install devtoolset-6
scl enable devtoolset-6 bash



The errors are always there, but at least they more detailed. They are all very similar, I'll paste just one:

Code:
In file included from algo/echo/aes_ni/vperm.h:20:0,
    from algo/echo/aes_ni/hash:21:
/opt/rh/devtoolset-6/root/usr/lib/gcc/x86_64-redhat-linux/6.3.1/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8' : target specific option mismatch
 _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
 ^~~~~~~~~~~~~~~~

Searching in and here found just this similar question: https://stackoverflow.com/questions/43128698/inlining-failed-in-call-to-always-inline-mm-mullo-epi32-target-specific-opti but not much idea how to proceed.
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
configure: WARNING: The assembler does not support the AVX2 instruction set.

It seems for that I need gcc 4.7 at least, I'm running gcc 4.4.7, I'll try to update this as first thing.

Sorry if I flood the thread, but it may be useful information to others, too.

Managed to update to gcc 4.9 (thanks to this guy's comment), with:

(reminder: I'm on Centos6.9)

sudo yum install centos-release-scl
sudo yum install devtoolset-3-toolchain
scl enable devtoolset-3 bash

Relaunched make, got these lines on screen (still out of redirected txt, duh):



warning: implicit declaration of function ‘syslog’ [-Wimplicit-function-declaration]

Then many other lines started to popout, ending with these, that may be related to Intel intrinsics already mentioned before:



Now I try to fix all these, if you have any clues to spare, thank you in advance.

Found this for _mm_shuffle_epi8 of the last screenshot : https://msdn.microsoft.com/en-us/library/bb531427(v=vs.120).aspx

The full makelog2.txt: https://pastebin.com/yr6dexwL

---

after digging here and there, it looks like a matter of upgrading GCC to the greater version available, from my current 4.9 to 6.x or 7.x even.
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
You could run everything inside docker, if you are comfortable with that

First time I heard of it, this could give an hint on how comfy I'm with it Smiley

Is is a vm manager like virtualbox or some kinda vps? Fact is I'm already paying - well, my boss is - for some dedicated servers with much power not to use and I'd loved to use them before going to spend other money around.

(sorry to the op because of this offtopic)

here is a good starting point on what docker is: https://opensource.com/resources/what-docker

Thank you, I'll surely need that once I manage to compile the miner.
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
I'm trying to compile the 3.7.0 on a Centos 6.9 vm on virtualbox to later copy it ont a real machine server running the same Centos 6.9, I don't even know if it makes sense, but I'm doing it to not install extra packages in the real server.

After managing to bypass several errors and difficulties such as the #pragma error of gcc 4.4.7 by upgrading gcc (not so obvious), now I'm stuck with these:


Does a fix exist for the errors above or alternatively does a precompiled version exist of cpuminer-opt-3.7.0 to run in a Centos 6.9 system with this processor: https://ark.intel.com/it/products/88173/Intel-Xeon-Processor-E3-1245-v5-8M-Cache-3_50-GHz ( SSE4.1/4.2, AVX2 )?

Thank you in advance.

Those real servers would need most of the same packages, it's probably not worth it.

As for your compile error the first error is always the most important. From what you posted it looks like the Intel intrinsics aren't insrtalled.
You may find earlier errors for missing immintrin.h or files with similar names. I don't know if they exist for Centos 6, it's very old, or what
the package might be called.

I'm slowly trying to come to an end at this Smiley

Followed your advice, did a make -B > makelog.txt.

First lines to popup on screen (they weren't redirected to makelog.txt, strange), were about 10 of this:

configure: WARNING: The assembler does not support the AVX2 instruction set.

It seems for that I need gcc 4.7 at least, I'm running gcc 4.4.7, I'll try to update this as first thing.

full member
Activity: 322
Merit: 100
Is this "yescryptR16" actually a new algorithm, or is it just yescrypt?   https://bitcointalksearch.org/topic/ann-cpu-mining-yenten-v201-ytn-yescryptr16-exchange-avilable-2329470

If new, any plans to support?  

Thanks!

Edit: source is at https://github.com/conan-equal-newone/yenten

Not until there's a stratum pool where I can test. It looks like the same hash function with different parameters.

Is http://www.ypool.co a stratum pool?  Could you use that?  The pool operator apparently thought it was regular yescrypt so he set it up that way, but he's obviously not finding any blocks because no one is actually sending him yescryptR16 solutions.  Can you use his mistake to test, or does it not work that way?

BTW I don't mean to be pushy, if you can't be bothered (edit: or if it won't work) it's fine, I just thought I'd let you know in case you wanted to.
legendary
Activity: 1470
Merit: 1114
Is this "yescryptR16" actually a new algorithm, or is it just yescrypt?   https://bitcointalksearch.org/topic/ann-cpu-mining-yenten-v201-ytn-yescryptr16-exchange-avilable-2329470

If new, any plans to support?  

Thanks!

Edit: source is at https://github.com/conan-equal-newone/yenten

Not until there's a stratum pool where I can test. It looks like the same hash function with different parameters.
full member
Activity: 322
Merit: 100
Is this "yescryptR16" actually a new algorithm, or is it just yescrypt?   https://bitcointalksearch.org/topic/ann-cpu-mining-yenten-v201-ytn-yescryptr16-exchange-avilable-2329470

If new, any plans to support?  

Thanks!

Edit: source is at https://github.com/conan-equal-newone/yenten
hero member
Activity: 700
Merit: 500
You could run everything inside docker, if you are comfortable with that

First time I heard of it, this could give an hint on how comfy I'm with it Smiley

Is is a vm manager like virtualbox or some kinda vps? Fact is I'm already paying - well, my boss is - for some dedicated servers with much power not to use and I'd loved to use them before going to spend other money around.

(sorry to the op because of this offtopic)

here is a good starting point on what docker is: https://opensource.com/resources/what-docker
legendary
Activity: 1470
Merit: 1114
yup, after linking with pthreadGC2 it works fine.
and it looks like it brings a very slight improve in performance (about 1% or so in a few algos that i benchmarked)
compiling sha version also works, too bad i don't have hardware to test it

Good to read you got it working but too bad no significant improvement.

At my end I got it working using http://www.msys2.org/ but again no significant performance difference.

Msys2 is pretty clumsy to setup, nice installer but it only installs a minimal base system. Then you use a clumsy
package manager to install everything else.

gcc 6.3 7.2 and openssl 1.0.2l are available. Compiling with SHA works but I couldn't verify due to lack of SHA CPU.
It works fine from within Msys2 shell, getting it to work from a DOS shell required copying all the DLLs included in Mingw,
over 40 of them.

I don't like bundling DLLs, just delivering a Windows binary is scary enough. I was hoping there was a way to download
just the DLLs from Msys2 but they are all hidden in individual package files. It seems the only way to get them is to install
Msys2 and all the packages that provide the DLLs.
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
You could run everything inside docker, if you are comfortable with that

First time I heard of it, this could give an hint on how comfy I'm with it Smiley

Is is a vm manager like virtualbox or some kinda vps? Fact is I'm already paying - well, my boss is - for some dedicated servers with much power not to use and I'd loved to use them before going to spend other money around.

(sorry to the op because of this offtopic)
member
Activity: 473
Merit: 18
It's controlled by configure.ac at line 111:

Code:
# GC2 for GNU static
if test "x$OS" = "xWindows_NT" ; then
   # MinGW
   AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthreadGC2",[])
else
   AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread",[])
fi

It works as intended in the old MSYS environment but on cygwin linking fails because it can't find pthreadGC2.
I can't get cygwin to use the mingw toolchain which includes pthreadGC2. I've tried using --host and --build with
no luck.

yup, after linking with pthreadGC2 it works fine.
and it looks like it brings a very slight improve in performance (about 1% or so in a few algos that i benchmarked)
compiling sha version also works, too bad i don't have hardware to test it
hero member
Activity: 700
Merit: 500
Those real servers would need most of the same packages, it's probably not worth it.

As for your compile error the first error is always the most important. From what you posted it looks like the Intel intrinsics aren't insrtalled.
You may find earlier errors for missing immintrin.h or files with similar names. I don't know if they exist for Centos 6, it's very old, or what
the package might be called.

Thanks for reply. Since I've root access on those dedicated machines I could install the packages but I preferrerd not, let's see. Too bad Centos was installed instead of Ubuntu. Sad

You could run everything inside docker, if you are comfortable with that
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
Those real servers would need most of the same packages, it's probably not worth it.

As for your compile error the first error is always the most important. From what you posted it looks like the Intel intrinsics aren't insrtalled.
You may find earlier errors for missing immintrin.h or files with similar names. I don't know if they exist for Centos 6, it's very old, or what
the package might be called.

Thanks for reply. Since I've root access on those dedicated machines I could install the packages but I preferrerd not, let's see. Too bad Centos was installed instead of Ubuntu. Sad
legendary
Activity: 1470
Merit: 1114
I'm trying to compile the 3.7.0 on a Centos 6.9 vm on virtualbox to later copy it ont a real machine server running the same Centos 6.9, I don't even know if it makes sense, but I'm doing it to not install extra packages in the real server.

After managing to bypass several errors and difficulties such as the #pragma error of gcc 4.4.7 by upgrading gcc (not so obvious), now I'm stuck with these:


Does a fix exist for the errors above or alternatively does a precompiled version exist of cpuminer-opt-3.7.0 to run in a Centos 6.9 system with this processor: https://ark.intel.com/it/products/88173/Intel-Xeon-Processor-E3-1245-v5-8M-Cache-3_50-GHz ( SSE4.1/4.2, AVX2 )?

Thank you in advance.

Those real servers would need most of the same packages, it's probably not worth it.

As for your compile error the first error is always the most important. From what you posted it looks like the Intel intrinsics aren't insrtalled.
You may find earlier errors for missing immintrin.h or files with similar names. I don't know if they exist for Centos 6, it's very old, or what
the package might be called.
sr. member
Activity: 840
Merit: 267
Chad Hodler since 2013
I'm trying to compile the 3.7.0 on a Centos 6.9 vm on virtualbox to later copy it ont a real machine server running the same Centos 6.9, I don't even know if it makes sense, but I'm doing it to not install extra packages in the real server.

After managing to bypass several errors and difficulties such as the #pragma error of gcc 4.4.7 by upgrading gcc (not so obvious), now I'm stuck with these:



Does a fix exist for the errors above or alternatively does a precompiled version exist of cpuminer-opt-3.7.0 to run in a Centos 6.9 system with this processor: https://ark.intel.com/it/products/88173/Intel-Xeon-Processor-E3-1245-v5-8M-Cache-3_50-GHz ( SSE4.1/4.2, AVX2 )?

Thank you in advance.
legendary
Activity: 1470
Merit: 1114

i have tried all of the -march options you have in winbuild-allarch.sh, and it also compiles with -march=znver1 , bringing sha support to windows (if you can find the source of workio thread issue)

hope you can take it from here and make it work Smiley

workio is just a message relay between the miner threads and the stratum thread. If it's broken there is something
fundamentally wrong with the build. The only dependencies workio has are curl and pthreads. A curl error would have
produced a different error message.

I'm still suspicious it's pthreads related because the workio polling loop would break down if pthreads was broken
causing it to exit and producing the error message you saw. Can you confirm how it was linked? You should see either
-lpthreads or -lpthreadsGC2. For mingw it should be -lpthreadsGC2 which it probably is because it was compiled for
a mingw host.

I have no other ideas.


-lpthread

how can i fix that?

It's controlled by configure.ac at line 111:

Code:
# GC2 for GNU static
if test "x$OS" = "xWindows_NT" ; then
   # MinGW
   AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthreadGC2",[])
else
   AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS="-lpthread",[])
fi

It works as intended in the old MSYS environment but on cygwin linking fails because it can't find pthreadGC2.
I can't get cygwin to use the mingw toolchain which includes pthreadGC2. I've tried using --host and --build with
no luck.
member
Activity: 473
Merit: 18

i have tried all of the -march options you have in winbuild-allarch.sh, and it also compiles with -march=znver1 , bringing sha support to windows (if you can find the source of workio thread issue)

hope you can take it from here and make it work Smiley

workio is just a message relay between the miner threads and the stratum thread. If it's broken there is something
fundamentally wrong with the build. The only dependencies workio has are curl and pthreads. A curl error would have
produced a different error message.

I'm still suspicious it's pthreads related because the workio polling loop would break down if pthreads was broken
causing it to exit and producing the error message you saw. Can you confirm how it was linked? You should see either
-lpthreads or -lpthreadsGC2. For mingw it should be -lpthreadsGC2 which it probably is because it was compiled for
a mingw host.

I have no other ideas.


-lpthread

how can i fix that?
legendary
Activity: 1470
Merit: 1114

i have tried all of the -march options you have in winbuild-allarch.sh, and it also compiles with -march=znver1 , bringing sha support to windows (if you can find the source of workio thread issue)

hope you can take it from here and make it work Smiley

workio is just a message relay between the miner threads and the stratum thread. If it's broken there is something
fundamentally wrong with the build. The only dependencies workio has are curl and pthreads. A curl error would have
produced a different error message.

I'm still suspicious it's pthreads related because the workio polling loop would break down if pthreads was broken
causing it to exit and producing the error message you saw. Can you confirm how it was linked? You should see either
-lpthreads or -lpthreadsGC2. For mingw it should be -lpthreadsGC2 which it probably is because it was compiled for
a mingw host.

I have no other ideas.
member
Activity: 473
Merit: 18
Have you tries cross-compiling in Linux to windows? That could solve the old mingw version issues, let you use a newer gcc and perhaps allow to add SHA support
I have tried cross-compiling, but the build configurations you have, need some changes and I'm yet to have success figuring it out, due to lack of experience. Although cross-compiling openssl was pretty simple

edit:
after some playing around, i have managed to cross-compile, but, unfortunately, executions fails with "workio thread dead, exiting" message
any suggestions on where to dig? Smiley


How do you cross-compile? Isn't that what mingw does? How did you make it portable?

That last question may be why the workio thread is dying, possibly a pthread issue. To run on Windows it needs to link to
pthreadGC2 instead of pthread. I have run in to this problem trying to compile on cygwin. I have discovered that I had
set up a "cygwin" compile environment instead of a "mingw" compile environment. The mingw toolchain includes pthreadGC2.

in short what i did, on ubuntu 17.04
install mingw-w64 package
download latest sources for openssl, curl and gmp
1. openssl
./Configure mingw64 shared --cross-compile-prefix=x86_64-w64-mingw32-
make
2. curl
./configure --with-winssl --with-winidn --host=x86_64-w64-mingw32
make
3. gmp
./configure --host=x86_64-w64-mingw32 #can also be compiled as shared lib instead of static
make
4. cpuminer
ln -s ../gmp-6.1.2/gmp.h #can probably be specified as lib path, but it was the simplest way to do that
export LDFLAGS="-L/home/ffwd/build/curl-7.56.1/lib/.libs -L/home/ffwd/build/gmp-6.1.2/.libs -L/home/ffwd/build/openssl-1.1.0f"
CFLAGS="-O3 -march=core-avx2 -Wall" CXXFLAGS="$CFLAGS -std=gnu++11 -fpermissive" ./configure --with-curl=../curl-7.56.1 --with-crypto=../openssl-1.1.0f --host=x86_64-w64-mingw32
make

now, the dlls are spread over the system, so i used a highly scientific method of running the .exe file and copying the dlls that it was complaining about.
this is the list of dlls that were missing:
from compiled openssl:
libcrypto-1_1-x64.dll

from compiled curl:
libcurl-4.dll

from /usr/x86_64-w64-mingw32/lib
libwinpthread-1.dll
zlib1.dll

from /usr/lib/gcc/x86_64-w64-mingw32/6.2-win32
libgcc_s_seh-1.dll
libstdc++-6.dll


i have tried all of the -march options you have in winbuild-allarch.sh, and it also compiles with -march=znver1 , bringing sha support to windows (if you can find the source of workio thread issue)

hope you can take it from here and make it work Smiley
legendary
Activity: 1470
Merit: 1114
Unfornutaly, this miner don't work with equihash algorithm (exept an error from my side ?) !
Do you know a good CPU miner for equihash ?
yes, it doesnt support equihash
try nheqminer: https://github.com/nicehash/nheqminer/

Ok, thank you for the reply.
NHEQMiner have no update since 10 months...
But I will try this last version (My last version was the first, a long time ago :-).).

Most brand new algos leave little room for improvement as they were initially written for the latest technolgies,
unlike the reshuffled sha3 chains like phi, tribus, hsr ...
They often also have a completely different code structure that is very difficult to import into cpuminer.
In other words all pain, no gain.
Pages:
Jump to: