Permalink
| cpuminer-opt now supports HW SHA acceleration available on AMD Ryzen CPUs. | |
| This feature requires recent SW including GCC version 5 or higher and | |
| openssl version 1.1 or higher. It may also require using "-march=znver1" | |
| compile flag. | |
| HW SHA support is only available when compiled from source, Windows binaries | |
| are not yet available. | |
| cpuminer-opt is a console program, if you're using a mouse you're doing it | |
| wrong. | |
| Security warning | |
| ---------------- | |
| Miner programs are often flagged as malware by antivirus programs. This is | |
| a false positive, they are flagged simply because they are miners. The source | |
| code is open for anyone to inspect. If you don't trust the software, don't use | |
| it. | |
| The cryptographic code has been taken from trusted sources but has been | |
| modified for speed at the expense of accepted security practices. This | |
| code should not be imported into applications where secure cryptography is | |
| required. | |
| Compile Instructions | |
| -------------------- | |
| Requirements: | |
| Intel Core2 or newer, or AMD Steamroller or newer CPU. ARM CPUs are not | |
| supported. | |
| 64 bit Linux or Windows operating system. Apple is not supported. | |
| Building on linux prerequisites: | |
| It is assumed users know how to install packages on their system and | |
| be able to compile standard source packages. This is basic Linux and | |
| beyond the scope of cpuminer-opt. | |
| Make sure you have the basic development packages installed. | |
| Here is a good start: | |
| http://askubuntu.com/questions/457526/how-to-install-cpuminer-in-ubuntu | |
| Install any additional dependencies needed by cpuminer-opt. The list below | |
| are some of the ones that may not be in the default install and need to | |
| be installed manually. There may be others, read the error messages they | |
| will give a clue as to the missing package. | |
| The following command should install everything you need on Debian based | |
| distributions such as Ubuntu: | |
| sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev libjansson-dev libgmp-dev automake | |
| build-essential (for Ubuntu, Development Tools package group on Fedora) | |
| automake | |
| libjansson-dev | |
| libgmp-dev | |
| libcurl4-openssl-dev | |
| libssl-dev | |
| pthreads | |
| zlib | |
| SHA support on AMD Ryzen CPUs requires gcc version 5 or higher and openssl 1.1 | |
| or higher. Reports of improved performiance on Ryzen when using openssl 1.0.2 | |
| have been due to AVX and AVX2 optimizations added to that version. | |
| Additional improvements are expected on Ryzen with openssl 1.1. | |
| "-march-znver1" or "-msha". | |
| Additional instructions for static compilalation can be found here: | |
| https://lxadm.com/Static_compilation_of_cpuminer | |
| Static builds should only considered in a homogeneous HW and SW environment. | |
| Local builds will always have the best performance and compatibility. | |
| Extract cpuminer source. | |
| tar xvzf cpuminer-opt-x.y.z.tar.gz | |
| cd cpuminer-opt-x.y.z | |
| Run ./build.sh to build on Linux or execute the following commands. | |
| ./autogen.sh | |
| CFLAGS="-O3 -march=native -Wall" CXXFLAGS="$CFLAGS -std=gnu++11" ./configure --with-curl | |
| make | |
| Additional optional compile flags, add the following to CFLAGS to activate: | |
| -DUSE_SPH_SHA | |
| SPH may give slightly better performance on algos that use sha256 when using | |
| openssl 1.0.1 or older. Openssl 1.0.2 adds AVX2 and 1.1 adds SHA and perform | |
| better than SPH. | |
| -DFOUR_WAY | |
| 4 way will give much better performance on supported algos with CPUs | |
| that have AVX2 and should only be used on CPUs with AVX2. 4 way algo | |
| support will be added incrementally, see change log below for supported algos. | |
| Start mining. | |
| ./cpuminer -a algo -o url -u username -p password | |
| Windows | |
| The following in how the Windows binary releases are built. It's old and | |
| not very good but it works, for me anyway. | |
| Building on Windows prerequisites: | |
| msys | |
| mingw_w64 | |
| Visual C++ redistributable 2008 X64 | |
| openssl | |
| Install msys and mingw_w64, only needed once. | |
| Unpack msys into C:\msys or your preferred directory. | |
| Install mingw_w64 from win-builds. | |
| Follow instructions, check "msys or cygwin" and "x86_64" and accept default | |
| existing msys instalation. | |
| Open a msys shell by double clicking on msys.bat. | |
| Note that msys shell uses linux syntax for file specifications, "C:\" is | |
| mounted at "/c/". | |
| Add mingw bin directory to PATH variable | |
| PATH="/c/msys/opt/windows_64/bin/:$PATH" | |
| Instalation complete, compile cpuminer-opt. | |
| Unpack cpuminer-opt source files using tar from msys shell, or using 7zip | |
| or similar Windows program. | |
| In msys shell cd to miner directory. | |
| cd /c/path/to/cpuminer-opt | |
| Run winbuild.sh to build on Windows or execute the following commands. | |
| ./autogen.sh | |
| CFLAGS="-O3 -march=native -Wall" CXXFLAGS="$CFLAGS -std=gnu++11 -fpermissive" ./configure --with-curl | |
| make | |
| Start mining | |
| cpuminer.exe -a algo -o url -u user -p password | |
| The following tips may be useful for older AMD CPUs. | |
| AMD CPUs older than Piledriver, including Athlon x2 and Phenom II x4, are not | |
| supported by cpuminer-opt due to an incompatible implementation of SSE2 on | |
| these CPUs. Some algos may crash the miner with an invalid instruction. | |
| Users are recommended to use an unoptimized miner such as cpuminer-multi. | |
| Some users with AMD CPUs without AES_NI have reported problems compiling | |
| with build.sh or "-march=native". Problems have included compile errors | |
| and poor performance. These users are recommended to compile manually | |
| specifying "-march=btver1" on the configure command line. | |
| Support for even older x86_64 without AES_NI or SSE2 is not availble. | |
| Change Log | |
| ---------- | |
| v3.7.9 | |
| Partial 4way optimizations for veltor, skunk, polytimos, lyra2z. | |
| Additional 4way optimizations for X algos. | |
| New algo yescryptr8 for BitZeny, not to be confused with original | |
| yescrypt Globalboost-Y. | |
| v3.7.8 | |
| Partial 4way optimization for most X algos including c11, xevan, phi, hsr | |
| v3.7.7 | |
| Fixed regression caused by 64 CPU support. | |
| Fixed lyra2h. | |
| v3.7.6 | |
| Added lyra2h algo for Hppcoin. | |
| Added support for more than 64 CPUs. | |
| Optimized shavite512 with AES, improves x11 etc. | |
| v3.7.5 | |
| New algo keccakc for Creative coin with 4way optimizations | |
| Rewrote some AVX/AVX2 code for more consistent implementation and some | |
| optimizing. | |
| Enhanced capabilities check to support 4way, more precise reporting of | |
| features (not all algos use SSE2), and better error messages when using | |
| an incompatible pre-built version (Windows users). | |
| v3.7.4 | |
| Removed unnecessary build options. | |
| Added 4way support for tribus and nist5. | |
| v3.7.3 | |
| Added polytimos algo. | |
| Introducing 4-way AVX2 optimization giving up to 4x performance inprovement | |
| on many compute bound algos. First supported algos: skein, skein2, blake & | |
| keccak. This feature is only available when compiled from source. See above | |
| for instcuctions how to enable 4-way during compilation. | |
| Updated Dockerfile. | |
| v3.7.2 | |
| Fixed yescryptr16 | |
| Changed default sha256 and sha512 to openssl. This should be used when | |
| compiling with openssl 1.0.2 or higher (Ubuntu 16.04). | |
| This should increase the hashrate for yescrypt, yescryptr16, m7m, xevan, skein, | |
| myr-gr & others when openssl 1.0.2 is installed. | |
| Users with openssl 1.0.1 (Ubuntu 14.04) may get better perforance by adding | |
| "-DUSE_SPH_SHA" to CLAGS. | |
| Windows binaries are compiled with -DUSE_SPH_SHA and won't get the speedup. | |
| v3.7.1 | |
| Added yescryptr16 algo for Yenten coin | |
| Added SHA support to yescrypt and yescryptr16 | |
| Small code cleanup | |
| v3.7.0 | |
| Fixed x14 misalignment bug. | |
| Fixed decred stake version bug. | |
| Getwork fixes for algos that use big endian data encoding: m7m, zr5, neoscrypt, | |
| decred. | |
| v3.6.10 | |
| Fixed misalignment bug in hsr. | |
| v3.6.9 | |
| Added phi1612 algo for LUX coin | |
| Added x13sm3 algo, alias hsr, for Hshare coin | |
| v3.6.8 | |
| Fixed timetravel10 on Windows. | |
| v3.6.7 | |
| Skunk algo added. | |
| Tribus a little faster. | |
| Minor restructuring. | |
| v3.6.6 | |
| added tribus algo for Denarius (DNR) | |
| configure removed from .gitignore. This should allow git clone to compile | |
| on Windows/mingw. | |
| Fixed CPU temperature monitoring on some CPUs (Linux only). | |
| Fixed a compile error on FreeBSD (unsupported YMMV). | |
| v3.6.5 | |
| Cryptonight a little faster. | |
| Added jha algo (Jackpotcoin) with AES optimizations. | |
| v3.6.4 | |
| Added support for Bitcore (BTX) using the timetravel10 algo, optimized for | |
| AES and AVX2. | |
| "-a bitcore" works as an alias and is less typing that "-a timetravel10". | |
| v3.6.3 | |
| Fixed all known issues with SHA support on AMD Ryzen CPUs, still no | |
| Windows binaries. | |
| v3.6.2 | |
| SHA accceleration is now supported on AMD Ryzen CPUs when compiled from source, | |
| Windows binaries not yet available. | |
| Fixed groestl algo. | |
| Fixed dmd-gr (Diamond) algo. | |
| Fixed lbry compile error on Ryzen. | |
| Added SHA support to m7m algo. | |
| Hodl support for CPUs without AES has been removed, use legacy version. | |
| v3.6.1 | |
| Fixed data alignment issue that broke lyra2rev2 AVX2 on Windows. | |
| Added preliminary support for HW accelerated SHA. | |
| Solo mining most algos should now work, cryptonight confirmed exception. | |
| v3.6.0 | |
| Preliminary support for solo mining using getwork. | |
| v3.5.13 | |
| Found more speed in Cubehash, algo improvement depends on chain length, | |
| deep +8%, timetravel +1% , xevan +1% | |
| Fixed a getwork bug, solo mining is not yet supported but testing is encouraged | |
| v3.5.12 | |
| New algo sha256t for Onecoin (OC), 29% faster than ocminer version. | |
| lyra2zoin algo renamed to lyra2z330, lyra2zoin and zoin still work | |
| as aliases. | |
| v3.5.11 | |
| Fixed hmq1725 crash on Ubuntu 16.04 | |
| Fixed compile error in hodl.cpp with gcc 6.3 | |
| Fixed x11 crash on Windows with AVX2 | |
| v3.5.10 | |
| Some AVX2 optimizations introduced for Luffa, shorter chained algos such | |
| as Qubit and Deep should see the biggest gains, but many other algos should | |
| also see improvement, longer chains like xevan not so much. | |
| Rewrite of Groestl AES, now 100% vectorized, small improvement. | |
| build.sh and winbuild.sh initialize with distclean instead of clean. | |
| Implemented a workaround for a compile error in hodl code when compiling | |
| with gcc 6.3. | |
| V3.5.9 | |
| Reduced stack usage for hmq1725 and small speedup. | |
| Added Deep algo optimized for AES and AVX2 | |
| Rewrite of SSE2 Luffa, midstate now supported in deep, qubit & timetravel | |
| Small changes to algo-gate. | |
| v3.5.8 | |
| Lyra2RE fixed on Windows, broken in v3.5.6. | |
| Ported AES cryptonight optimizations from v3.5.7 to non-AES version | |
| with little improvement. | |
| Marginal improvements to xevan and veltor. | |
| v3.5.7 | |
| Cryptonight 5% faster | |
| v3.5.6 | |
| Updated Lyra2z algo for new zcoin algo post block 2050. | |
| Cleaned up Lyra2 code and increased performance | |
| - Lyra2Z (zcoin) +12% | |
| - Lyra2REv2 +11% | |
| - Lyra2RE +6% | |
| Fixed x11evo algo performance on Windows. | |
| Timetravel algo 3% to 5% faster | |
| Whirlpool algo 15% faster. | |
| Removed aclocal.m4 from .gitignore. | |
| v3.5.5 | |
| x11evo fixed on Windows but at reduced performance. | |
| Changed benchmark stats collection default to false and | |
| added proper user and password checks to enable it. | |
| v3.5.4 | |
| x11evo fixed (broken in v3.5.2) and optimized 23% faster | |
| Small improvements of 1% to 3% on many algos including timetravel, | |
| xevan and cryptonight. | |
| More code cleanup and compiler warning reduction. | |
| Improved checking for missing command line arguments. | |
| v3.5.3 | |
| More optimizations | |
| Timetravel +16% | |
| Xevan +3% | |
| Qubit +12% | |
| V3.5.2 | |
| Timetravel (machinecoin) added and optimized. | |
| v3.5.1 | |
| Bastion 9% faster with AES, benchkmark still not working. | |
| Worked around git automatically removing m4 directory. | |
| Fixed occasional compile error in algo-gate.h. | |
| v3.5.0 | |
| Fixed blakecoin and vanilla increasing rejects with number of threads. | |
| Removed support for SSE2 Groestl functions. SSE2 groestl remains available | |
| in v3.4.12 and the legacy branch. | |
| It is no longer necessary to specify stratum+tcp:// in the url, it is assumed | |
| and is the only supported protocol. | |
| v3.4.12 | |
| lyra2z (zcoin) modified for blocks after 8192 | |
| fixed scryptjane to support various N factors | |
| v3.4.11 | |
| groestl algo AES optimized +200% | |
| myr-gr algo AES optimized +100% | |
| v3.4.10 | |
| xevan AES optimized +35% | |
| v3.4.9 | |
| fixed zr5, broken in v3.4.8 | |
| added xevan algo (Bitsend, BSD) with 10% improvement | |
| added lyra2zoin (Zoin, ZOI) fully optimized but YMMV | |
| v3.4.8 | |
| added zcoin support, optimized for AVX2 but no increase in performance | |
| fixed API display of diff for cryptonight | |
| --show-diff is now the default, use "--hide-diff" to disable | |
| cleaned up some cpuminer-multi artifacts | |
| v3.4.7 | |
| fixed benchmark, except for x11evo | |
| added CPU temperature to share submission report (Linux only) | |
| v3.4.6 | |
| For users: | |
| - cryptolight algo is now supported with AES optimizations | |
| - display format changed for share submissions | |
| - colour keyed "Accepted" or "Rejected" status. | |
| - reject count and rate displayed when share is rejected. | |
| For developers: | |
| - code restructuring for detecting new work | |
| - cleaned up detection and handling of new work | |
| - removed call to stratum_gen_work from niner_thread. | |
| - eliminated gen_work_now gate function. | |
| - renamed gate function init_nonce to get_new_work. | |
| - renamed gate function alloc_scratchbuf to miner_thread_init, | |
| removed all scracthbuf references from miner_thread and moved | |
| implementation to the local algo files of those algos that need it. | |
| - moved most gate targets from algo-gate.c to cpu-miner.c removing | |
| most mining related code from algo-gate-api.c. | |
| v3.4.5 | |
| fixed stale share rejects mining cryptonight at Nicehash | |
| fixed compile error on Westmere CPUs | |
| v3.4.4 | |
| fixed compile errors on Westmere CPUs, this is an interim fix that | |
| will compile without AES on Westmere | |
| added support for cryptonight at Nicehash, some rejects may be produced | |
| at Nicehash only. | |
| v3.4.3 | |
| imported optimized m7m, +42% | |
| v3.4.2 | |
| added veltor algo | |
| tweaked lyra2 AVX/AVX2 code for small improvement. | |
| v3.4.1 | |
| big AVX2 optmizations for lyra2 +35%, lyra2v2 +11%, AVX also faster | |
| fixed hmq1725 | |
| v3.4.0 | |
| fixed Windows compile error introduced in v3.3.9 | |
| fixed x11gost, broken in v3.3.7 | |
| AVX2 optimizations improving many algos: | |
| - Lyra2RE +3% | |
| - Lyra2REv2 +19% | |
| - x11gost (sib) +6% | |
| - x11evo +2.4% | |
| - c11 +6.9% | |
| - x11 +5% | |
| - x13 +5% | |
| - x14 +3.6% | |
| - x15 +2.4% | |
| - x17 +2.8% | |
| - qubit +8.4% | |