Bitcoin Forum

Bitcoin => Mining => Topic started by: zaxx on February 19, 2011, 11:34:31 PM



Title: Why no GPU support in the standard client ?
Post by: zaxx on February 19, 2011, 11:34:31 PM
I'm sorry if this has been covered before but I am interested to know if there is any good reason why there is no GPU support in the standard client.

Is it an intentional choice so that users dont have to understand how to install the latest GFX drivers ?

Even if this were the case, would it not make sense to build it in as an option.

zx


Title: Re: Why no GPU support in the standard client ?
Post by: Cryptoman on February 20, 2011, 12:05:00 AM
I'm sorry if this has been covered before but I am interested to know if there is any good reason why there is no GPU support in the standard client.

Is it an intentional choice so that users dont have to understand how to install the latest GFX drivers ?

Even if this were the case, would it not make sense to build it in as an option.

zx

There are too many variations in GPU hardware and thus too many dependencies to deal with.


Title: Re: Why no GPU support in the standard client ?
Post by: zaxx on February 20, 2011, 01:10:15 AM
Quote
There are too many variations in GPU hardware and thus too many dependencies to deal with.

You dont need to code direct to specific GPU configs, this is dealt with in the divers behind the API's of DirectCompute or OpenCL. (There could well be performance wins for coding the hash algorithms direct to the register specs of either say ATI or NVidia GPU's but i dont think people are utilizing that with the GPU miners for exactly the same reasons of hardware dependencies)

It should be a matter of picking the preferred API for the OS flavors of each client build. A proper job of it should be able to get the CPU and GPU working together too.

The reason I bring it up is that Bitcoin seems to be about fairness. I like that, so in this vein, the lack of GPU support in the standard client could look like a sort of favoritism toward the more technically able.

Saying that I realize this 'tec favoritism' is inherent in Bitcoin by its very nature because it is most readily understood hence early adopted by coders.

zx


Title: Re: Why no GPU support in the standard client ?
Post by: jgarzik on February 20, 2011, 02:23:31 AM
Quote
There are too many variations in GPU hardware and thus too many dependencies to deal with.

You dont need to code direct to specific GPU configs, this is dealt with in the divers behind the API's of DirectCompute or OpenCL. (There could well be performance wins for coding the hash algorithms direct to the register specs of either say ATI or NVidia GPU's but i dont think people are utilizing that with the GPU miners for exactly the same reasons of hardware dependencies)

There are a zillion and one SDK versions, all proprietary and changing rapidly.  This is a huge effort for a program that runs on Windows, Linux and Mac.  We have enough trouble just getting the current Windows code to build, as it is.

It is far more likely that we remove the CPU mining code from bitcoin, than add GPU mining code.



Title: Re: Why no GPU support in the standard client ?
Post by: qed on February 20, 2011, 03:20:29 AM
OpenCL is far from mature. Coding and maintaining for CUDA, OpenCL and all the platforms can be time consuming. CPU mining is not worth atm.


Title: Re: Why no GPU support in the standard client ?
Post by: Mahkul on February 20, 2011, 10:48:13 AM
How about separating the mining part from the Bitcoin client altogether and having a separate application for mining (but also hosted on bitcoin.org)? Whoever doesn't need to mine can just download the client itself. The mining application would have a nice GUI and a lot of configuration options. The only thing that the client could have is adding username and password to the bitcoin.conf from the GUI level. The mining application could contain different miner versions (m0mchil, diablo, rpc etc.) and the user could just pick one - then the application would advise them about prerequisites needed for each miner). I know this is very rough, just thinking aloud. But something could come out of it, perhaps.


Title: Re: Why no GPU support in the standard client ?
Post by: caveden on February 20, 2011, 12:08:15 PM
How about separating the mining part from the Bitcoin client altogether and having a separate application for mining (but also hosted on bitcoin.org)?

This sounds a better idea.

Actually, as soon as there are better GUIs out there, I think the default GUI itself could be "retired", and we keep just the command line application. Keeping it simple...


Title: Re: Why no GPU support in the standard client ?
Post by: dbitcoin on February 20, 2011, 03:58:02 PM
I'm sorry if this has been covered before but I am interested to know if there is any good reason why there is no GPU support in the standard client.

Is it an intentional choice so that users dont have to understand how to install the latest GFX drivers ?

Even if this were the case, would it not make sense to build it in as an option.

zx

Probably average user does not have any decent GPU.
And notebook/nettop/netbook  users do not want application with heavy power consumption.


Title: Re: Why no GPU support in the standard client ?
Post by: SmokeTooMuch on February 20, 2011, 05:15:59 PM
-> https://www.bitcoin.org/smf/index.php?topic=12.msg52#msg52 (https://www.bitcoin.org/smf/index.php?topic=12.msg52#msg52)

Suggestion :

Since the coins are generated faster on fast machines, many people will want to use their GPU power to do this, too.

So, my suggestion is to implement a GPU-computing support using ATI Stream and Nvidia CUDA.

The average total coins generated across the network per day stays the same.  Faster machines just get a larger share than slower machines.  If everyone bought faster machines, they wouldn't get more coins than before.

We should have a gentleman's agreement to postpone the GPU arms race as long as we can for the good of the network.  It's much easer to get new users up to speed if they don't have to worry about GPU drivers and compatibility.  It's nice how anyone with just a CPU can compete fairly equally right now.


Title: Re: Why no GPU support in the standard client ?
Post by: Quip on February 20, 2011, 05:47:35 PM
There are a zillion and one SDK versions, all proprietary and changing rapidly.

Every GPU and CPU on the market today can run OpenCL code, though some Nvidia parts and all CPUs do it through emulation. That's 1 open API.


Title: Re: Why no GPU support in the standard client ?
Post by: zaxx on February 20, 2011, 09:14:12 PM
Yes, two separate applications makes sense to me.

Still the miner can support both CPU and GPU options, or both. Its doable, but does require extra architecture to keep it all clean. It also requires a more complex test matrix to release per platform, which may be a hit you dont want to take right now.

zx


Title: Re: Why no GPU support in the standard client ?
Post by: Mahkul on February 20, 2011, 10:01:18 PM
As I said I think an ideal solution would be having an official miner as a separate application, where you could chose between what miner you want to use (miners would be included in the installation package). For example, while configuring the installation the user would have an option of installing different miners:

Please select which elements of the program you want to install:

  • m0mchil's miner
  • Diablo miner
  • jgarzik's miner

etc.

Ideally if the program could also check whether the graphics card is suitable for mining and also advise what prerequisites are needed.

Then, after the installation, you could select which miner you want to use and also, you could specify the switches (like, for m0mchils, you could set -f -v -w etc values in the configuration box). a GUI of the mining process would be extremely nice too.

I know this is a lot of work, just saying.


Title: Re: Why no GPU support in the standard client ?
Post by: Gavin Andresen on February 21, 2011, 01:05:52 AM
As I said I think an ideal solution would be having an official miner as a separate application, where you could chose between what miner you want to use (miners would be included in the installation package).

Good idea.

Patches welcome, as long as they're nice and stable and have had a fair bit of testing...


Title: Re: Why no GPU support in the standard client ?
Post by: Kiv on February 26, 2011, 03:59:06 AM
I'm creating a GUI miner application that works towards this. Right now it only supports m0mchil's miner but I plan to support other miners soon.


Title: Re: Why no GPU support in the standard client ?
Post by: austinlorenz on February 28, 2011, 09:52:45 PM
The reason I bring it up is that Bitcoin seems to be about fairness. I like that, so in this vein, the lack of GPU support in the standard client could look like a sort of favoritism toward the more technically able.

Profiting from one's technical ability seems fair to me.  It's not as though acquiring it were free.