Bitcoin Forum
November 13, 2024, 04:19:07 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 [11] 12 »  All
  Print  
Author Topic: Generating Bitcoins with your video card (OpenCL/CUDA)  (Read 135404 times)
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 06, 2010, 06:17:25 PM
 #201

OK, now I'm confused.

1. I installed the NVIDIA developer drivers
2. I installed NVIDIA cuda toolkit
3. I downloaded the svn rev. 158 source
4. I patched the source
5. I used CMAKEfiles on the source to make it buildable
6. I compiled / emerged everything

And the result is that on GUI version i get 1200khash/sec always, it does not matter if i used -gpu, -aggresion, -gputhreads, or any other switch.
It seems that the client is not working on graphics card, it is just using CPU, and single core only.

Also, the client in graphics mode keeps breaking wxGTK/wxWidgets (wxWidgets often popup with some debug messages). But that is bearable.

----
EDIT:
I guess i will try compiling only the daemon now and tell You how it went.

ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 06, 2010, 06:25:54 PM
 #202

UPDATE:

I tried everything again with bitcoind. The same results.
1200khash/sec with -gpu switch, and 4700 khash/sec without (and 8500 khash/sec with -4way switch).

So the client seems not to be using GPU at all.

BTW,
I have NVIDIA Geforce 9800GT

EDIT:
It would be really useful if the GPU client displayed any debugging info, because i don't even know if my card was detected, if CUDA is enabled properly etc etc.

nightrow
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
October 06, 2010, 06:31:21 PM
 #203

I have a nvidia card, 8800gt, i can test under windows and why not under linux in virtualbox.
Don't hesitate to publish step by test it, or publish a windows binary package, i'm willing to help as i can.
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 06, 2010, 06:54:47 PM
 #204

Here it is:

SVN Rev 158, patched & cmaked.
However, still not working.

http://www.tinyurl.pl/?KMsRtkuR

Maybe somebody will figure out what i did wrong.

BTW,
Forget any hope that it will work under VirtualBox. No way.

puddinpop
Member
**
Offline Offline

Activity: 103
Merit: 17


View Profile
October 06, 2010, 09:11:42 PM
 #205

EDIT:
It would be really useful if the GPU client displayed any debugging info, because i don't even know if my card was detected, if CUDA is enabled properly etc etc.
Why are you assuming it doesn't display any debug info?  If you look in the debug.log, you'll see lots of info on what is detected and what it is doing.  Why was this info not useful to you?

Anyway, it sounds like you either don't have a CUDA capable driver installed, or you somehow compiled with CPU emulation turned on.  It's probably the CPU emulation.  A 9800 should get 21 Mhash/s.

ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 06, 2010, 09:19:09 PM
Last edit: October 06, 2010, 09:29:49 PM by ShadowOfHarbringer
 #206

Well i debugged the compile process a little, and concluded that i have wrong makefile, which does not include gpucommon.h/cpp and bitcoinminercuda.h/cpp, and does not convert them to objects.

However, after adding them to makefile,

Code:
HEADERS=(...) cuda/bitcoinminercuda.h cuda/cudashared.h gpucommon/gpucommon.h

all: bitcoind

OBJS= \
 (...)
        obj/gpucommon.o \
        obj/bitcoinminercuda.o

, make complains that it "cannot find rules to make object. Stop."

EDIT:
Code:
make: *** No rule to make target `obj/gpucommon.o', needed by `bitcoin'.  Stop.
.

I know, I'm not a C++ programmer.

puddinpop
Member
**
Offline Offline

Activity: 103
Merit: 17


View Profile
October 06, 2010, 09:41:15 PM
 #207

So that points to you not using the CMake build files.  So your first step should be to use cmake to generate appropriate makefiles with CUDA enabled and then use those to make bitcoin.

kslaughter
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250



View Profile WWW
October 07, 2010, 04:48:17 AM
 #208

puddinpop,

You are in violation of the GPL since you CUDA is linked to the bitcoin source.

I will build a CUDA enabled build of the bitcoin client and post the source code
here.
 
Ken
em3rgentOrdr
Sr. Member
****
Offline Offline

Activity: 434
Merit: 252


youtube.com/ericfontainejazz now accepts bitcoin


View Profile WWW
October 07, 2010, 05:38:05 AM
Last edit: October 07, 2010, 05:50:11 AM by em3rgentOrdr
 #209

puddinpop,

You are in violation of the GPL since you CUDA is linked to the bitcoin source.

I will build a CUDA enabled build of the bitcoin client and post the source code
here.
 
Ken

Good point!  We should report puddinpop to gpl-violations.org immediately!  Get ready to be sued by Richard Stallman and his lawyer buddies!  Shocked

Just Kidding!  Bitcoin uses The MIT License/X11 license, which is permissive...

"We will not find a solution to political problems in cryptography, but we can win a major battle in the arms race and gain a new territory of freedom for several years.

Governments are good at cutting off the heads of a centrally controlled networks, but pure P2P networks are holding their own."
mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 513



View Profile
October 07, 2010, 06:55:54 AM
 #210

puddinpop,

You are in violation of the GPL since you CUDA is linked to the bitcoin source.

I will build a CUDA enabled build of the bitcoin client and post the source code
here.
 
Ken

This doesn't seem correct.  How does GPL come into play when Bitcoin is under MIT license?
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 07, 2010, 06:58:10 AM
 #211

So that points to you not using the CMake build files.  So your first step should be to use cmake to generate appropriate makefiles with CUDA enabled and then use those to make bitcoin.

I tried that at first, but build failed. This is the debug output i got:

Code:
bitcoin-svn-rev-158 # make bitcoind
-- Found BerkeleyDB: /usr/lib64/libdb.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/Bitcoin/bitcoin-svn-rev-158
[  5%] Building NVCC (Device) object cmake-bitcoind/./bitcoind_generated_bitcoinminercuda.cu.o
Scanning dependencies of target bitcoind
[ 11%] Building CXX object cmake-bitcoind/CMakeFiles/bitcoind.dir/__/src/db.cpp.o
In file included from /home/Bitcoin/bitcoin-svn-rev-158/src/db.cpp:5:
/home/Bitcoin/bitcoin-svn-rev-158/src/headers.h:45:20: error: db_cxx.h: Nie ma takiego pliku ani katalogu
In file included from /home/Bitcoin/bitcoin-svn-rev-158/src/headers.h:123,
                 from /home/Bitcoin/bitcoin-svn-rev-158/src/db.cpp:5:
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:26: error: ‘DbEnv’ does not name a type
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:37: error: ISO C++ forbids declaration of ‘Db’ with no type
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:37: error: expected ‘;’ before ‘*’ token
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:39: error: ‘DbTxn’ was not declared in this scope
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:39: error: template argument 1 is invalid
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:39: error: template argument 2 is invalid
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:152: error: ISO C++ forbids declaration of ‘Dbc’ with no type
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:152: error: expected ‘;’ before ‘*’ token
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:163: error: expected `;' before ‘int’
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:163: error: ‘Dbc’ has not been declared
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:202: error: ISO C++ forbids declaration of ‘DbTxn’ with no type
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:202: error: expected ‘;’ before ‘*’ token
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:210: error: expected `;' before ‘public’
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:163: error: ‘DB_NEXT’ was not declared in this scope
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h: In member function ‘bool CDB::Read(const K&, T&)’:
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:54: error: ‘pdb’ was not declared in this scope
/home/Bitcoin/bitcoin-svn-rev-158/src/db.h:61: error: ‘Dbt’ was not declared in this scope
(...)
(...)

However that approach won't work with Gentoo ebuild/emerge system, so i abandoned it.


EDIT:
This doesn't seem correct.  How does GPL come into play when Bitcoin is under MIT license?

He included GPL sourcecode in the CUDA-patch.

ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 07, 2010, 07:14:47 AM
 #212

Here is my Gentoo makefile, if anybody is interested.

http://pastebin.com/73aFW42p

Also, i grepped all the CMake makefiles for "gpucommon.h" and "bitcoinminercuda.h". No results.
So i'm not so sure the CMakefiles are going to work at all.

mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 513



View Profile
October 07, 2010, 07:38:17 AM
 #213

I modified my makefile for bitcoin-9999.ebuild for svn Bitcoin and then
Code:
LC_ALL=C TZ=UTC0 diff -Naur makefile.unix makefile.gentoo > files/bitcoin-9999-Makefile.patch
ebuild bitcoin-9999.ebuild digest
emerge bitcoin

The emerge failed.  What else do I need to do besides update the makefile?
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 07, 2010, 08:19:00 AM
 #214

I modified my makefile for bitcoin-9999.ebuild for svn Bitcoin and then
Code:
LC_ALL=C TZ=UTC0 diff -Naur makefile.unix makefile.gentoo > files/bitcoin-9999-Makefile.patch
ebuild bitcoin-9999.ebuild digest
emerge bitcoin

The emerge failed.  What else do I need to do besides update the makefile?

The ebuild-9999 is bad, don't use it.
I'm using a modified 0.3.13 ebuild all the time - it works for SVN rev 158 source too.

Also, You need to create additional separate makefile for CUDA version, place it in the files/ directory and then put an digest entry for it in the Manifest. At least this is what i did.
For me, it emerges successfully, however the CUDA header & cpp files are omitted. So i need a better makefile.

mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 513



View Profile
October 07, 2010, 08:22:23 AM
 #215

The ebuild-9999 is bad, don't use it.

How is it bad?  More importantly, though, without losing focus of my original question, what else do I need to do besides update the makefile?
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470
Merit: 1006


Bringing Legendary Har® to you since 1952


View Profile
October 07, 2010, 08:37:27 AM
 #216

The ebuild-9999 is bad, don't use it.

How is it bad?  More importantly, though, without losing focus of my original question, what else do I need to do besides update the makefile?

Why it is bad ? Well, i looked at the source and i didn't like it, so i took the 0.3.13 one.

I have no idea what do You need. I downloaded source, patched it and **it just worked** with 0.3.13 ebuild on my Gentoo AMD64.
I only changed the digests in Manifest to match added/modified files.

kslaughter
Sr. Member
****
Offline Offline

Activity: 476
Merit: 250



View Profile WWW
October 07, 2010, 07:08:23 PM
 #217

I would not have made a mistake by assuming it was licensed under
the GPL if puddinpop had included in his license the MIT license as
was required.  Of course if he had included the MIT license all of
the restrictions he placed in his license would have been moot.

Ken
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
October 07, 2010, 08:02:10 PM
 #218

I would not have made a mistake by assuming it was licensed under
the GPL if puddinpop had included in his license the MIT license as
was required.  Of course if he had included the MIT license all of
the restrictions he placed in his license would have been moot.

puddinpop's original open sourced client was MIT.

But he makes his changes GPL'd, which is disappointing, leading to confusing situations like this.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
lfm
Full Member
***
Offline Offline

Activity: 196
Merit: 104



View Profile
October 10, 2010, 05:35:11 AM
 #219

So I've been trying to figure out.. just how many coins did
1HZNsUqQxKVLmfPfCAzLwrnVDzx8CxwxnM
receive?

I now see 37 blocks with the 5.00 BTC going to this address. It seems there are still people running the old proprietary version. Still negligible tho.

That latest was Block #84274 at 2010-10-09 20:29:52
nightrow
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
October 10, 2010, 12:12:23 PM
 #220

I'm one of the people running the proprietary version, even if i yet generated no block.
This is the only ready to use binary i found for windows.

I can get 21Mh/s with a 8800gt, comparing to 2.2Mhz with a e6750 2.66ghz processor.
I would say *10 -10% is better than nothing, that still make a *9 speedup.
sure, a *10 speedup would be best :p

Any news of a windows version that can get such a speed without compilation ?
Pages: « 1 2 3 4 5 6 7 8 9 10 [11] 12 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!