CryptoGoblin
CryptoGoblin copied to clipboard
Lower hashrate on 4.2.1 vs 4.1.0
Xeon L3650, Ubuntu 16.04, mining Monero (CNR)
On 4.1.0 approx 30 H/s per core. Now on 4.2.1, approx 22 H/s per core. Compiled on the same VM with the same build settings. Using the config files from 4.1.0. Should there be any need to remake the config files? Any new settings that should be modified from previous versions?
Hmm, that cpu supports AES-NI, so it should still use the asm code that was only slightly tweaked.
Could you try changing "aes_override" from null to true in config.txt? If that does not help, also try changing "asm" from "auto" to "intel_avx" in cpu.txt.
One recent change in cpu detection is that we now check for XSAVE being enabled, and it might possibly not be in your VM, so that is a thing you can check too: "cat /proc/cpuinfo | grep xsave"
My own cpus of the same generation show an increase in hashrate, so I am suspecting the VM is somehow fooling the miner into thinking that this is not a capable enough cpu.
Please report back with results :)
Thanks for exploring this. Unfortunately no success yet.
Changing "aes_override" to true didn't have any effect. I already use "intex_avx" in cpu.txt, as I was only getting about 6 H/s with "auto."
Just to be clear, I compile the miner in a VM but copy it over to my servers, which are bare metal. Used the same process and options in "build.sh" for both 4.1.0 and 4.2.0.
Could you re-test with a 4.3+ release please? I fixed several issues that might be related in 4.3.0. Also, it might be worth testing with prefetch on and off, there has been some work done on that end too, maybe that is what is hitting you.,
Unfortunately, I can't even get 4.3.3 or 4.3.2 to compile and 4.3.0 doesn't even get this far. Same machine will compile 4.1 and 4.2 without error.
+ cmake .. -L -DCMAKE_VERBOSE_MAKEFILE=OFF -DCMAKE_LINK_STATIC=ON -DCMAKE_INSTALL_PREFIX=/opt/CryptoGoblin/ -DARCH=westmere -DCG_LTO=ON -DCG_PORTABLE=ON -DCG_ONLY_XMR=OFF -DHWLOC_ENABLE=ON -DMICROHTTPD_ENABLE=ON -DOpenSSL_ENABLE=ON -DCPU_ENABLE=ON -DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF
-- The C compiler identification is GNU 6.5.0
-- The CXX compiler identification is GNU 6.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_ALWAYS_INLINE
-- Performing Test COMPILER_ALWAYS_INLINE - Success
-- Performing Test COMPILER_FLATTEN
-- Performing Test COMPILER_FLATTEN - Success
-- Performing Test COMPILER_ALIGN
-- Performing Test COMPILER_ALIGN - Success
-- Performing Test COMPILER_OPTIMIZE
-- Performing Test COMPILER_OPTIMIZE - Success
-- Performing Test COMPILER_TARGETS
-- Performing Test COMPILER_TARGETS - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'libmicrohttpd'
-- Found libmicrohttpd, version 0.9.44
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g")
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Configuring done
-- Generating done
-- Build files have been written to: /home/master/Downloads/cryptogoblin/CryptoGoblin-4.3.3/build
-- Cache values
ARCH:STRING=westmere
CG_FLATTEN1:BOOL=ON
CG_FLATTEN2:BOOL=ON
CG_FLATTEN3:BOOL=ON
CG_LTO:BOOL=ON
CG_ONLY_XMR:BOOL=OFF
CG_PORTABLE:BOOL=ON
CG_TUNING_ENABLE:BOOL=ON
CMAKE_BUILD_TYPE:STRING=Release
CMAKE_INSTALL_PREFIX:PATH=/opt/CryptoGoblin
CMAKE_LINK_STATIC:BOOL=ON
CPU_ENABLE:BOOL=ON
CUDA_ENABLE:BOOL=OFF
EXECUTABLE_OUTPUT_PATH:STRING=bin
HWLOC:FILEPATH=/usr/lib/x86_64-linux-gnu/libhwloc.so
HWLOC_ENABLE:BOOL=ON
HWLOC_INCLUDE_DIR:PATH=/usr/include
LIBRARY_OUTPUT_PATH:STRING=bin
MHTD:FILEPATH=/usr/lib/x86_64-linux-gnu/libmicrohttpd.so
MICROHTTPD_ENABLE:BOOL=ON
MTHD_INCLUDE_DIR:PATH=/usr/include
OpenCL_ENABLE:BOOL=OFF
OpenSSL_ENABLE:BOOL=ON
+ make -j3
Scanning dependencies of target CryptoGoblin
[ 3%] Building CXX object CMakeFiles/CryptoGoblin.dir/xmrstak/cli/cli-miner.cpp.o
[ 6%] Building CXX object CMakeFiles/CryptoGoblin.dir/xmrstak/version.cpp.o
[ 10%] Building CXX object CMakeFiles/CryptoGoblin.dir/xmrstak/jconf.cpp.o
cc1plus: error: invalid --param name ‘dse-max-object-size’
CMakeFiles/CryptoGoblin.dir/build.make:86: recipe for target 'CMakeFiles/CryptoGoblin.dir/xmrstak/jconf.cpp.o' failed
make[2]: *** [CMakeFiles/CryptoGoblin.dir/xmrstak/jconf.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1plus: error: invalid --param name ‘dse-max-object-size’
cc1plus: error: invalid --param name ‘dse-max-object-size’
CMakeFiles/CryptoGoblin.dir/build.make:62: recipe for target 'CMakeFiles/CryptoGoblin.dir/xmrstak/cli/cli-miner.cpp.o' failed
make[2]: *** [CMakeFiles/CryptoGoblin.dir/xmrstak/cli/cli-miner.cpp.o] Error 1
CMakeFiles/CryptoGoblin.dir/build.make:110: recipe for target 'CMakeFiles/CryptoGoblin.dir/xmrstak/version.cpp.o' failed
make[2]: *** [CMakeFiles/CryptoGoblin.dir/xmrstak/version.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/CryptoGoblin.dir/all' failed
make[1]: *** [CMakeFiles/CryptoGoblin.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
+ set +x
strip: 'build/bin/CryptoGoblin': No such file
If compilation succeeded, you can now run 'make install', or run/copy the executable directly in/from the build/bin/ folder
Sorry about that, fixed in c22242fdba7937be142a3c79cc820e4512e697fa
PS: If you only want to mine XMR, then you can set the only_xmr flag to ON in build.sh. It leaves out all unrelated code, sometimes resulting in a very small perf increase. ;)
https://github.com/Dead2/CryptoGoblin/commit/c22242fdba7937be142a3c79cc820e4512e697fa fixed the compile issue.
No improvement in H/s for 4.3.3 vs 4.2.1. If anything just a bit worse now ~16 H/s vs ~22 H/s per core. 4.1.0 still producing ~30 H/s.
No change "only_xmr" ON vs OFF, except smaller executable :)
No change for me "prefetch" false vs true in cpu.txt.
Let me know if there's anything else I can send you that would help track this down. Hopefully I'm not the only one with this issue. (If I am, I can be content stuck on 4.1.0 for now.)