Bitcoin Currency and GPU Mining Performance Comparison
Analysis and Conclusions
Why are GPUs faster?
As more and more miners come into the fold of the Bitcoin bandwagon the era of the CPU being able to effectively find keys dropped considerably. Sure you can still technically do it but the amount of time it takes even today makes it simply a moot point and as the difficulty continues to increase in the days and months to come, the CPU will be rendered even less useful. The only reasonable way to compute the SHA256 hashes is to use the power of GPU computing. But why are GPUs so much better at this process than CPUs?
The answer is one that both AMD and NVIDIA have been pushing for some time: the parallel processing power of the GPU far exceeds that of the CPU and for certain workloads (of which Bitcoin mining is definitely one) the performance delta between the two platforms can be staggering. This Bitcoin wiki page seems to have a great summation of the reasoning as it comes down the ability for the GPU to process more ALU-based 32-bit instructions in succession than a CPU. A CPU today can handle 4 or 8 (with Intel's new AVX instructions) 32-bit instructions per clock per core giving us a maximum performance on a Core i7-2600K of 8 instructions x 4 cores x 3.4 GHz = 108.8 GigaInstructions.
On the other hand a Radeon HD 6850 has 960 stream processors that each run a 32-bit ALU instruction per clock. Even at a slower 775 MHz clock rate that gives us 960 instructions x 0.775 GHz = 744 GigaInstructions. You can now see why getting a dual-GPU graphics card and how overclocking can do dramatically affect the performance of our Bitcoin mining operations.
Why is AMD so much faster than NVIDIA?
Obviously from our testing the AMD architecture is much better suited for this mining algorithm than NVIDIA's GeForce cards, but why? It really comes down to AMD's use of smaller and simpler shader processing units compared to the design that NVIDIA uses; AMD runs more SPs at lower frequencies (1600 SPs on an HD 5870 running at 850 MHz) while NVIDIA runs fewer SPs at higher frequencies (GTX 480 has 480 SPs running at 1400 MHz). This gives AMD a better ALU output than NVIDIA:
- AMD Radeon HD 6990: 3072 ALUs x 830 MHz = 2550 billion 32-bit instruction per second
- NVIDIA GTX 590: 1024 ALUs x 1214 MHz = 1243 billion 32-bit instruction per second
- Source: Bitcoin Wiki
While in gaming this difference is raw compute power can be offset by other GPU technologies, for the raw mathematical power need for mining Bitcoins (and other ALU-bound work like password cracking) AMD definitely has better utilization of its processing power.
There is another difference between how AMD and NVIDIA operate on the SHA256 keys that affect performance. From the wiki:
...another difference favoring Bitcoin mining on AMD GPUs instead of Nvidia's is that the mining algorithm is based on SHA-256, which makes heavy use of the 32-bit integer right rotate operation. This operation can be implemented as a single hardware instruction on AMD GPUs, but requires three separate hardware instructions to be emulated on Nvidia GPUs (2 shifts + 1 add). This alone gives AMD another 1.7x performance advantage (~1900 instructions instead of ~3250 to execute the SHA-256 compression function).
How do you get started with your own mining?
So you are probably wondering how you can get started playing with this whole Bitcoin mining operation. First a warning: we are not responsible should the currency collapse and your GPU purchases be made useless! That out of the way, a great place to start is this tutorial that goes through setting up a GPU-based mining operation in Windows.
One of many online tutorials about setting up a Bitcoin mining operation on your PC.
Just like other GPU computing tasks Bitcoin offers you a way to utilize the power of your graphics card when not gaming. While maybe not as humanity-driven as Folding@Home, everyone gets to make their own choice!
What is the "Best Card" for mining?
The answer to this question obviously depends on what you are going for but the standard answer is going to be that the Radeon HD 5830 is best "value" in Bitcoin mining. The mid-range last-gen GPU from AMD actually bests the GeForce GTX 590 in overall performance and also takes the crown from all of our tested options in terms of performance per dollar. It is not the most efficient in terms of power (the dual-GPU cards still take the advantage there) but the potential profit far outweighs the cost of electricity.
If you want the best overall performance then you will definitely want to go the route of a dual-GPU beast like the Radeon HD 6990. Though we didn't overclock that card (instead we pushed forward on the ASUS ARES based on the HD 5870 GPUs), the headroom provided by that design will allow users to really get the most mining out of a single PCI Express slot.
One interesting configuration option would be to combine the new AMD A8-3850 APU with a motherboard capable of handling three graphics cards, of which there is only one.
The ASRock A75 Extreme6 would allow a user to build a new system for Bitcoin mining that supports three dual-slot graphics cards as well as the A8-3850 APU for a pretty low price. With the board + APU combination running you only $280, you could then choose to go the route of the Radeon HD 5830s or even the ultra-expensive Radeon HD 6990 while still getting a moderate 80 Mhash/s from the integrated graphics at the same time.
If you wanted to build the most compact mining system you would likely want a board with the most possible PCI Express slots and fill them with single slot cards you can find. The MSI Big Bang Marshal motherboards based on the P67 chipset support 8 (!!) PCIe slots that you could fill with single slot Radeon HD 6850 cards or go the dual-GPU route and fill it with a set of four Radeon HD 6990s. You realize of course this a bad investment, right?
Our testing with "The Beast" on the previous page showed us that while expensive getting the most expensive and fastest running GPUs can be a good investment (if you are willing to take all the associated risks) in terms of performance per dollar, per watt and even for the one year cycle we discussed. Running a system at 1000 watts twenty four hours a day, seven days a week would anywhere from $30-60 / month to your electric bill (depending on where you live) so there is that consideration as well. Still, this was a fun experiment and I think the results will answer a lot of user's questions.
Power Consumption Costs
** Update 7/13/11 ** We recently wrote another piece on the cost of the power to run our Bitcoin mining operations used in this performance article. Based on the individual prices of electric in all 50 states of the US, we found that the cost of the power to run some cards exceeded the value of the Bitcoin currency based on today's exchange rates. I would highly recommend you check out that story as well after giving this performance-based article a thorough reading. If the below graph interests or scares you at all, you'll definitely want to read that story!!
** End Update **
Bitcoin mining is definitely a fringe element of computing today but there is a chance that in the future this technologically created currency could become more popular and used by a higher percentage of the public. As it stands now this can be a fun way to utilize the power of your GPU for more than just gaming and even gives users the chance to make a bit of side money in the process - just realize that there are a lot of risks here so if you aren't comfortable spending on NEW cards just utilize the ones you already have.
Without a doubt the AMD Radeon architecture has a huge advantage in this type of computing and I am honestly surprised we haven't seen the company at least mention this performance gap as a proof-point for its GPUs. Just as they don't officially promote overclocking they could just as easily "unofficially" talk about the capability of the Radeon lineup to sprint past the modern NVIDIA Fermi-designs in this ALU-bound algorithm.
I hope you found this compilation of data interesting, useful and entertaining, I know we all had fun putting it together. Jump down to the comments below if you have questions for us and we'll do our best to answer them and update as necessary. Thanks for reading!