pooler / cpuminer

CPU miner for Litecoin and Bitcoin
https://bitcointalk.org/index.php?topic=55038.0
Other
2.77k stars 1.21k forks source link

Lower hash rate with miner compiled from source code #141

Closed mlsBlue closed 7 years ago

mlsBlue commented 7 years ago

Hi everyone, For few days now I have a problem and I hope somebody can give me the answer. Are they any particular flags that I need to use during building miner from the source code for Windows? Used LIBCURL="-lcurldll" ./configure CFLAGS="-O3" to configure and make to create .exe file. Because my compiled and builded .exe file produces much lower hash rate then .exe file downloaded externally. My .exe 5-7 kH/s, Binaries .exe 20-25 kH/s. Also is much slower in acceptiong blocks. CPU is Intel i7-7500U, 2.7 GHz, hp laptop. Thank you in advance.

pooler commented 7 years ago

Please post your config.log.

mlsBlue commented 7 years ago

There is config.log file. config.log

pooler commented 7 years ago

You compiled for 32-bit x86. Judging from the hash rate you reported, I'm guessing the the binary you downloaded is 64-bit, and that would explain the difference in hash rate.

mlsBlue commented 7 years ago

Yes I downloaded 64-bit binaries. Also I downloaded and 32-bit binaries and there is the difference in hash rate. So that is the probable reason for it lower hash rate in my builded miners. Now when I try to build 64-bit version on Windows using MinGW, I get undefined reference errors. I went through Makefile and I saw that some parts are commented for 64-bit version. Errors are in file. error64bit.txt

pooler commented 7 years ago

It looks like something was configured incorrectly. Please post the new config.log.

mlsBlue commented 7 years ago

New config.log. config.log

pooler commented 7 years ago

It's still using the 32-bit compiler. I don't know how your environment is set up, but shouldn't you be passing something like --host x86_64-w64-mingw32?

mlsBlue commented 7 years ago

I passed host parameter but the problem is still the same. Now my configure command looks like LIBCURL="-lcurldll" ./configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 CFLAGS="-O3" but the error still remains. Also the gcc compile command looks like this gcc -fno-strict-aliasing -O3 -o minerd.exe minerd-cpu-miner.o minerd-util.o minerd-sha2.o minerd-scrypt.o minerd-sha2-x64.o minerd-scrypt-x64.o -lcurldll -ljansson -lpthread -lws2_32 I have feeling that some lib is missing at the and of the command so linker can't connect it in right way.

mlsBlue commented 7 years ago

New config log config.log

pooler commented 7 years ago

I have feeling that some lib is missing at the and of the command so linker can't connect it in right way.

I don't think this has anything to do with libraries. My guess is that the code in the two assembly files is being skipped (as instructed) because the compiler doesn't define __x86_64__, and if that's the case it must be compiling for 32-bit x86.

mlsBlue commented 7 years ago

I tried with several different ways to define compiler for 64-bit. Is there any place where I need to look up in Makefile for compiler definition, just to check if I am doing things right? Thank you for all informations.

pooler commented 7 years ago

Sorry, my experience with MinGW (and Windows in general) is rather limited, and I don't currently have time to investigate.

mlsBlue commented 7 years ago

Finally I've sorted everything out. Problem was I used MinGW32 whole time, after installing MinGW64 and all dependecies everything is working as expected. Thank you for your help, eventually the problem was with compiler like you guessed.