Pages:
Author

Topic: New demonstration CPU miner available - page 10. (Read 386323 times)

newbie
Activity: 3
Merit: 0
I'm still getting this when trying to compile 1.0.1 on OSX:
Code:
ld: warning: in x86_64/libx8664.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols:
  "_CalcSha256_x64", referenced from:
      _scanhash_sse2_64 in sha256_sse2_amd64.o
      _scanhash_sse2_64 in sha256_sse2_amd64.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [minerd] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
member
Activity: 98
Merit: 13

Version 1.0.1 is released.

The only change is the addition of OSX build support.  FreeBSD is also reported to be working out of the box.

There is no Windows build for this release (no need).

newbie
Activity: 14
Merit: 0
I have a bitcoind server running and accepting connections aswell (rpcallowip=*).

I have tried to run minerd connecting to my bitcoind server, but all I got is:

# ./minerd -c miner.cfg
[2011-05-14 20:24:41] 8 miner threads started, using SHA256 'sse2_64' algorithm.
[2011-05-14 20:33:41] PROOF OF WORK RESULT: false (booooo)
[2011-05-14 20:34:16] PROOF OF WORK RESULT: false (booooo)

Also, the hash meter on the other side (bitcoind) did not increase at all.
Shouldn't the bitcoind (server) hash meter increase aswell ?

Am I missing something ? Am I 'pooling' wrong ?
I'm running openSUSE 11.3, kernel 2.6.34.8-0.2, i7 930.

Thanks in advance.
newbie
Activity: 40
Merit: 0
Sorry I've missed most of the recent discussion...busy with a new addition...

The r10 "trick" of letting it get clobbered requires you know something about the calling convention of the OS in use. The Linux SSE2 code for x86_64 will completely break on Windows, since there's a different set of registers saved between function calls. Depending on what OSX does with r8, you may be able to let it get clobbered, saving you a cycle or two.

I never really found any docs on how the calling convention works under Darwin/Mac OSX. I'm sure reading the GCC source code would enlighten someone. But I also like my sanity.
newbie
Activity: 2
Merit: 0
I got Mach-O x86_64 SSE2 to work (Mac OS 10.6.7). Here's the list of everything I did:

1. I got the file libcurl.m4 from a curl source tarball and stuck it in an m4 directory.

2. I installed the gnulib byteswap module into the cpuminer directory and updated build scripts as necessary.

3. When configuring, I had to use both "-arch x86_64" in CFLAGS and the '--build=x86_64-apple-darwin10.7.0' flag, since it seems to detect that my kernel is 32 bit rather than that my processor is 64 bit.

4. To assemble sha256_xmm_amd64.asm, I set "-f macho64" in the Makefile (todo: integrate this into configure)

5. To fix the assembly failures, I applied the patch here: .

It fixes the 32-bit offset by using another register to hold the current target, which is then used directly and updated as necessary. This adds one extra line of assembly (I'm not sufficiently familiar with x86_64 assembly to know whether or not it actually adds an extra _instruction_, but it probably does) to the main loop as well as a push and a pop to save and restore the values of the register I used (r8). The assembly already uses r10 without doing a save and restore, but I'm not sure how to check that r8 is unused, so this might be unnecessary. It also fixes a problem where my gcc apparently adds leading underscores to all of the names.

This is the least clean section because it probably breaks the build on Linux. Nobody said assembly was supposed to be portable...
member
Activity: 98
Merit: 13
Quote
@sikon: I’m not sure about the binary name "minerd". It sounds too generic, not specific to BitCoin. Could it be renamed?

A rename will only be considered if a conflict exists with an existing, real-world program.

Otherwise, you're already looking at a program that's seen six months of heavy use on Windows and Linux, using the "minerd" name.  A rename would create pointless churn, with zero value for existing cpuminer users.

newbie
Activity: 40
Merit: 0
Hi, I like to give some news about the not oficial debian/ubuntu package of bitcoin-cpuminer:

* You can find the version 0.8.1 in ubuntu and debian, only in ubuntu (maverick, natty, oneiric) have SSE2_64 enable.
* If not exist any issue in the last version 1.0, i will create a package in a couple days.
* If possible this package get in the next ubuntu release, please check: https://bugs.launchpad.net/ubuntu/+bug/780258, give you comment's or any feedback.

* @jgarzik: In ubuntu revu get this comment
http://revu.ubuntuwire.com/p/bitcoin-cpuminer

Quote
@sikon: I’m not sure about the binary name "minerd". It sounds too generic, not specific to BitCoin. Could it be renamed?

what you think @jgarzik ?

read more ...
https://bitcointalksearch.org/topic/m.115320
member
Activity: 224
Merit: 12
Found it on another page in this thread:

Quote
sudo apt-get install libcurl4-openssl-dev

Works! Smiley
member
Activity: 224
Merit: 12
Code:
root@vs1028:/home/tarion/apps/cpuminer# apt-cache show libcurl3
Package: libcurl3
Priority: optional
Section: libs
Installed-Size: 444
Maintainer: Domenico Andreoli
Architecture: i386
Source: curl
Version: 7.18.2-8lenny4

But configure gives me:
Code:
checking whether libcurl is usable... no
configure: error: Missing required libcurl >= 7.10.1

Any Idea what is wrong?
full member
Activity: 373
Merit: 100
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available
sha256_4way.c:458: sorry, unimplemented: called from here
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available

Use a newer compiler.
Shouldn't the configure script be checking for that, then?
newbie
Activity: 29
Merit: 0
newbie
Activity: 2
Merit: 0
Thanks xf2_org, I'm now up to gcc 4.3.3

gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.3-5ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)


but now I get

 make
make  all-recursive
make[1]: Entering directory `/home/spoddy/cpuminer-1.0'
Making all in compat
make[2]: Entering directory `/home/spoddy/cpuminer-1.0/compat'
Making all in jansson
make[3]: Entering directory `/home/spoddy/cpuminer-1.0/compat/jansson'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/spoddy/cpuminer-1.0/compat/jansson'
make[3]: Entering directory `/home/spoddy/cpuminer-1.0/compat'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/spoddy/cpuminer-1.0/compat'
make[2]: Leaving directory `/home/spoddy/cpuminer-1.0/compat'
make[2]: Entering directory `/home/spoddy/cpuminer-1.0'
gcc  -O3 -Wall -msse2 -pthread  -o minerd cpu-miner.o util.o sha256_generic.o sha256_4way.o sha256_via.o sha256_cryptopp.o sha256_sse2_amd64.o -lcurl -Wl,-Bsymbolic-functions -lgssapi_krb5 compat/jansson/libjansson.a -lpthread 
cpu-miner.o: In function `miner_thread':
cpu-miner.c:(.text+0xb2e): undefined reference to `ScanHash_4WaySSE2'
collect2: ld returned 1 exit status
make[2]: *** [minerd] Error 1
make[2]: Leaving directory `/home/spoddy/cpuminer-1.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/spoddy/cpuminer-1.0'
make: *** [all] Error 2


Is this still a gcc version issue? And what version have others managed to compile on?

Thanks
member
Activity: 98
Merit: 13
anyway to support sse2 on ubuntu ?

Do you mean 4way or sse2_64 algorithm?

sse2_64 requires yasm, and a 64-bit machine.

member
Activity: 98
Merit: 13
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available
sha256_4way.c:458: sorry, unimplemented: called from here
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available

Use a newer compiler.

full member
Activity: 184
Merit: 100
A new CPU miner is now available, making use of the new 'getwork' RPC command.

In the beginning, this is intended largely to demonstrate a 'getwork' miner.  It is written in straight C, with minimal dependencies (libcurl, jansson).

It has successfully generated blocks on testnet, mainnet and almost all pools.

Linux/BSD release tarball: http://yyz.us/bitcoin/cpuminer-1.0.tar.gz
Windows installer: http://yyz.us/bitcoin/cpuminer-installer-1.0.zip
git repository: git://github.com/jgarzik/cpuminer.git

Contributions welcomed!  (GPL v2 license)




anyway to support sse2 on ubuntu ?
full member
Activity: 184
Merit: 100
If anybody is interested, this is the assembly code from Intel Compiler which gives me the fastest 4way code on AMD K10. 1.13 GH/s MH/s per 1 GHz per physical core.
https://gist.github.com/853566
Compile cpuminer-0.7.1, download the above code, issue:
gcc -c sha256_4way.s
and do make again to link the object file to the executable.  It's about 7% faster than the gcc version.

That is what I get

sha256_4way.s:11221: Error: bad register name `%rbp'
sha256_4way.s:11223: Error: bad register name `%rbx'
sha256_4way.s:11225: Error: bad register name `%r15'
sha256_4way.s:11227: Error: bad register name `%r14'
sha256_4way.s:11229: Error: bad register name `%r13'
sha256_4way.s:11231: Error: bad register name `%r12'

a lot of this when i tried

gcc -c sha256_4way.s
newbie
Activity: 2
Merit: 0
Configure runs ok, but I'm getting a make error, .

sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available
sha256_4way.c:458: sorry, unimplemented: called from here
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available
sha256_4way.c:458: sorry, unimplemented: called from here
sha256_4way.c:51: sorry, unimplemented: inlining failed in call to ‘ROTR’: function body not available
sha256_4way.c:458: sorry, unimplemented: called from here
make[1]: *** [sha256_4way.o] Error 1
make[1]: Leaving directory `/home/spoddy/cpuminer-1.0'
make: *** [install-recursive] Error 1
spoddy@bob:~/cpuminer-1.0$ cd ../bitcoin-0.3.21/


I'm a *nix newbie so any help would be appreciated.
member
Activity: 98
Merit: 13
Version 1.0 release.  See top post for URLs.

Changes:
- jansson 2.0 compatibility
- correct off-by-one in date (month) display output
- fix platform detection
- improve yasm configure bits
- support full URL, in X-Long-Polling header
full member
Activity: 184
Merit: 100
As an interesting data point: 4way with 3 threads gave me 700 khash/s, whereas the normal c impl gets me 930khash/s

So which algo is the fastest on teh same intel CPU ?

c or crpto or arypto_asm32 or 4way ?
full member
Activity: 184
Merit: 100
Why sse2_amd64 algorithm did not compiling? My system is ubuntu 10.04 64 bit and Core2Duo P8400 cpu.

As I can see in miner.h there is a definition WANT_X8664_SSE2, with checking sse2 support. But checking don't passing. When i comment this checking and try to 'make' there is an error:

Don't do that. There's a reason the check is failing.

If you looked at config.log, it probably says your version of yasm is 0.8.0. You need 1.1.0. For Ubuntu, you either compile it yourself or get the right version from Debian's repository.

I have yasm 1.1 and it shows it is ok on ubuntu natty but still no 4way in the compiled minderd.

any help ?

Pages:
Jump to: