Xenoncat's solver integrated into nheqminer

???

If you want to use AVX2, use Sarath-hotspot’s. I’m only interested in Xenoncat’s AVX1.

Well, a lot of people don’t understand AVX1 vs AVX2 or just want a single binary they can deploy on a mix of CPUs without SIGILLs.

@rph @cloudhax @Dworf
Done.

Now code detects avx/avx2 and selects solver accordingly.

4 Likes

Sweet! Thanks! This is really good… let me test it out

looks like you forgot to include equihash_avx1.o in the repo

make[2]: *** No rule to make target ../equihash_avx1.o', needed by nheqminer’. Stop.
make[1]: *** [CMakeFiles/nheqminer.dir/all] Error 2

Oops… my bad…
Committed the file. Check now.

Awesome thanks - it’s working great on the systems I’ve tried.

works great now!

Thanks

Does not compile, latest HEAD:

    ZcashStratum.o: In function `ZcashMinerThread(ZcashMiner*, int, int)':
    ZcashStratum.cpp:(.text+0x6325): undefined reference to `EhPrepare_AVX1'
    ZcashStratum.cpp:(.text+0x6333): undefined reference to `EhSolver_AVX1'
    ZcashStratum.cpp:(.text+0x6547): undefined reference to `EhPrepare'
    ZcashStratum.cpp:(.text+0x6555): undefined reference to `EhSolver'
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:315: nheqminer] Error 1

csnt get this to run … tried installing it as per instructions for ubuntu 16.4

when i get to “make”

it gives me a fatal error

boost/predef/hardware/simd/x86/versions.h: no such file or directory
compilation terminated

Oh hah, I just did the same thing, looks like we crossed paths. Mine also just kludges AVX1 in - I add a mode setting in the code but had doubled up symbols so just swapped out the bin in CMakeList. If people are having problems w/ peakay’s feel free to give mine a try:

Performance went from:

5.6 sol/s → 9.4 sol/s w/ -t3 on an Intel(R) Core™ i3-2130 CPU @ 3.40GHz (4C) ; Ubuntu 16.04
12.2 sol/s → 20.2 sol/s w -t6 on an Intel(R) Core™ i7-3770S CPU @ 3.10GHz (4C/8HT) ; Arch

Note, even w/ @sarath-hotspot’s build w/ XC AVX2 running on an i7-5600U 2.6GHz, I get better hashing (11.2 sol/s vs 7.8 sol/s) running the latest 0.3a Windows miner so if you can choose to run Windows or Linux, you’ll definitely be getting more bang/buck using one of those.

1 Like

hi,
I’ am trying to compile nheqminer on debian wheezy, I installed the libboost 1.55 (compiled for wheezy) and then I tried to compile:

cmake …
– Boost version: 1.55.0
– Found the following Boost libraries:
– system
– log_setup
– log
– date_time
– filesystem
– thread
– Configuring done
– Generating done
– Build files have been written to: /root/sarath-hotspot/nheqminer/nheqminer/build

~/sarath-hotspot/nheqminer/nheqminer/build# make
Scanning dependencies of target nheqminer
[ 6%] Building CXX object CMakeFiles/nheqminer.dir/main.cpp.o
In file included from /root/sarath-hotspot/nheqminer/nheqminer/primitives/transaction.h:12:0,
from /root/sarath-hotspot/nheqminer/nheqminer/primitives/block.h:9,
from /root/sarath-hotspot/nheqminer/nheqminer/main.cpp:5:
/root/sarath-hotspot/nheqminer/nheqminer/uint256.h:22:21: error: ISO C++ forbids declaration of ‘alignas’ with no type [-fpermissive]
/root/sarath-hotspot/nheqminer/nheqminer/uint256.h:22:21: error: expected ‘;’ at end of member declaration
make[2]: *** [CMakeFiles/nheqminer.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/nheqminer.dir/all] Error 2
make: *** [all] Error 2

any hint?

You did a good job modifying the function name with _AVX1.

Regarding AMD CPU, I am curious to know which AMD CPU does not run the code. There should be no problem as long as it supports AVX/AVX2.

Oh… I was under impression that this assembly code works only on intel-x86 CPUs.
I did not verify it on AMD CPUs.

@leevancleef Check out Compiling on older systems · Issue #13 · nicehash/nheqminer · GitHub

Nice, thank you very much. Just recompiled, Now my amd fx 8350 shows it’s using xenoncat’s avx1 solver. My sols increased to 16 using -t 7!!! :slight_smile:

Nice! My AMD FX-8350 goes from ~9 Sol/s, to ~16! :smiley:

[02:15:03][0x00007f4601ea4700] stratum | Submitting share #4, nonce 02000000000000000000000000000002
[02:15:03][0x00007f4603cdb700] stratum | Accepted share #4
[02:15:04][0x00007f4601ea4700] stratum | Submitting share #5, nonce 02000000000000000000000000000002
[02:15:04][0x00007f4603cdb700] stratum | Rejected share #5 (duplicate share)
Almost each share is duplicated, there is any way to fix that?

1 Like

Any way to add tromp’s Cuda solver into this? It would be great to mine on both my gpu and cpu on Linux, no need for annoying windows.

Hmm, I am seeing a lot of dupes now too w/ AVX2, appears to have been caused by the AVX1 commits somehow. For now you can try reverting them on AVX2 systems (git checkout c07ad755ee92cac025a96ee9eed95dfd2ef97775).

2 Likes