Bitcoin Currency and GPU Mining Performance Comparison

Bitcoin Mining

With bitcoin, all transactions are publicly recorded; however, the public details only lead to a public key/wallet, not an actual person. People can generate as many wallets/addresses as needed. This is in contrast to the traditional system where anonymity is achieved by the public trusting a third party who in turn trusts its users and controls their information for them. Further, the identity of the user is not necessarily needed as only the public/private key pair is required to complete the transaction. By cutting out the third party “middle men” in the form of Paypal and credit card companies, the user is able to better control their personally identifiable information on the Internet. In the wake of numerous Internet attacks in which financial institutions and merchant websites were hacked and their customers’ information was leaked to the public, being able to control what information (if any) businesses get is a good thing. Stolen databases and outdated security on even the most well respected companies has proven that they cannot be fully trusted to protect one’s information; therefore, the inherent ability of bitcoin to put the user in control of their private information is positive.

The Bitcoin pdf outlines how coins are transferred from one user to another using public and private key encryption. The hashes build upon each other to create a chain that is stored as public record.

The public record of transactions across the bitcoin network is known as the block chain. As transactions are made within the network, the coins are signed and the network is notified of the change. The bitcoin wallet will then display the transaction as unconfirmed. Within a few hours; however, the bitcoin network will pick up these transactions and verify them. The transactions are confirmed once they have been verified by at least six computers on the network and have been added to the block chain. This block chain is the culmination of every transaction across the bitcoin network and is composed of blocks which are then composed of transactions. These transactions are sequentially identified by the network and are incorporated into a chained proof of work system which secures the transactions from being modified. The longest block chain on the bitcoin network is the record of transactions that the bitcoin wallets trust and query to confirm a transactions' status. This method is very secure as an attacker would have to harness more computing power than the entire bitcoin network, and generate a new block chain from scratch, and then catch up to and surpass the ever growing honest chain, which is an extremely unlikely scenario as the computational power of the bitcoin network currently rivals that of the world's fastest super computers. The attacker would have to do this because of the chained proof of work aspect mentioned above. This property requires that every transaction builds upon the previous one. If even a single transaction in block chain is modified, the hashes from that point on would not match the honest chain and would then cause that chain to be discarded. This property of the block chain is the reason why it becomes more trusted the longer it becomes, and why bitcoin wallets only trust the longest chain.

The programs that perform these proof of work calculations to confirm transactions and incorporate all of the known transactions into a new block (which is further incorporated into a block chain) are known as miners. Mining programs use brute force methods to find and verify pending transactions by increasing a number such as 1 until that number in addition to the transaction data will match certain special properties when hashed using SHA2. While the correct result is relatively easy to verify, it is computationally intensive to calculate. Only a single call is required to determine that the specific nonce, or number, that the miner has paired with the transaction data is correct; however, the trial and error of, for example, starting with the so called payload data and sequentially increasing that number until the correct one is found is very computationally intensive, and takes much longer than it does to verify the correct result (which is unknown to the miner until it is discovered by trial and error). The miner is able to determine a correct result when the hash of the nonce and payload data have certain specific properties, most notably a certain number of zeros. Graphics cards and specialized hardware are especially suited for the highly parallel brute force mining calculations and are many times faster and cheaper to run from a hashing power per kilowatt hour cost standpoint than even the fastest consumer grade CPUs. The “hashing power” is reported by the mining programs as mhash/s, and represents the raw processing power of the hardware in calculating a million hashes per second.

8-bit-coin. Get it?

In addition to securing the network and verifying pending transactions by generating the longest honest block chain, mining is also the method that is used to place Bitcoin into circulation. Bitcoins, of which there will only ever be 21 million, are given as a reward to the first miner to find a block and verify the transactions. Currently that reward is 50 BTC (bitcoin) plus any transaction fees, and will decrease over time until all bitcoins are in circulation. At that point, miners will be rewarded with the transaction fees included in the transactions they are verifying. Due to the need to control the number of bitcoins that enter circulation so that they are released over time and not all at once (and are allowed to grow with the adoption rate of BTC and the network size), the difficulty of finding a block is adjusted every 2016 blocks to either increase or decrease difficulty according to the current hashing power of the entire bitcoin network. The network adjusts the difficulty such that these 2016 blocks are found within a two week time frame, which amounts to 6 blocks per hour. These difficulty increases have made GPUs the only viable and cost-conscious decision as CPUs simply do not have enough hashing power to justify the electricity cost of running them.

GRAPHIC: Diagram of pool mining made up of individual contributors

As competition between miners began to rise as they attempted to amass the most processing power so that they would be more likely to find a block first, pool mining was born. Pool mining consists of many individuals contributing their computational power to a pool, which then allows them to work together to find blocks. The reward for finding that block is then distributed among everyone who contributed to the pool based on varying methods; the most common distribution methods being a proportional percentage, a flat pay per share payment, or a score based percentage. Mining in a pool allows individuals a smaller, more steady stream of bitcoin then mining solo which has a higher payoff (as one gets to keep the entire 50 BTC reward instead of only a percentage of it) but is much more sporadic. Both solo miners and pools are both susceptible to “luck” which is a representation of the total number of blocks found during that day versus the number that they found and thus were rewarded for. Due to the much higher computational power of the pooled resources of the mining pools, they have a better chance of finding a block.

Any reason the AMD 6950 & 6970 cards was left out of the experiment? As the flagship AMD single GPU cards, I think this data would be really salient. Is there another card on the list from which we could easily extrapolate 6950/6970 performance?

In my personal testing, the 6950 gets somewhere around 340 mhash/s with a few optimizations. Overclocking and unlocking can get you around 400. You can get the 6950/70 performance by dividing the results of the 6990 GPU results in the graph.

My understanding of the GPUs used were based on what was available in house for testing.

More specific results (please keep in mind that I am using different settings than Ken so they are not necessarily comparable):

My 6950 unlocked to 6970 shaders at 840 core gets 372.7 mhash/s using GUIMiner, and two kernel tweaks of the poclbm kernel, and AMD Cat 1.7 drivers and whatever version of Stream SDK comes with that. I'm further using the following flags which are gfx card version specific: -k poclbm VECTORS BFI_INT AGGRESSION=9 WORKSIZE=128

I'd be interested in a little more information. I'm running a Sapphire 6950 2GB with unlocked (6970) shaders (but not flashed to 6970 speeds; I just OC when I need the boost). I'm also sporting a Core2Duo E8400 OC'd to 3.6 Ghz. I started mining last night, following the guides Ryan mentioned, and I'm consistently getting 320 Mhash/s, not the 340 you mentioned was possible with a few "optimizations."

Do you know if the optimizations you mentioned (the flags) should work for my 6950; you said they are gfx card version specific - did you mean vendor specific, or just 6950 specific? Is it possible to use those flags when I'm using the GUIMiner, or do I need to be using a console? Thanks for any input!

Hi Adster, I am running a XFX 6950 2GB card with an edited BIOS to have unlocked shaders but not 6970 speeds (though the card is capable of running at them, I didn't want to risk running the memory at the higher speed full time).

The flags that I mentioned will work for you 6950, they are specific to the version of card you have, in this case these flags are best used with AMD 6xxx series cards. You can set the flags in the GUIMiner extra flags area; however, you will need to edit the poclbm kernel file for the other optimizations. You can find those by searching the bitcoin forums for kernel optimizations.

I hope it helps, let me know if you need any help in sqeezing all the mhash possible outta that card :)

Honestly, we just didn't test it because we skipped some cards. Looking back, we should have done one of them. You can see on our screenshot of "The Beast" that we eventually plugged one in and got about ~ 344 Mhash/s.

This is a great article, and pushed me over the edge to start mining. The only big question I have (aside from my earlier question about 6950/6970 performance), is how the cost of electricity factors in.

Obviously we are all subject to different utility rates, so you couldn't give a cost-breakdown that would apply to everyone. However, I am curious how much the average cost of electricity would deduct from the profits in your chart?

I have a dedicated mining machine which runs 24/7 in the closet (no, really -- it sits in the closet). It has the cheapest AMD CPU I could find (sempron processor), 1GB of ram, a flash drive used as the hard drive running Ubuntu 10.4 on a headless (monitorless) system. The only thing really going on is the 2x5850 Xtreme graphics cards pumping out ~ 700 MHash. When I bought this rig, it ran me $530 after rebates from Tiger Direct.

I think it is your responsibility to deter readers more actively from investing in hardware in order to conduct bitcoin mining and distance yourselves from those activities. It is easy for people to understand that they can make money from computing power, but it takes some very careful reading to understand that by design, this whole enterprise will become less and less profitable over time. So I think it would be better to put the emphasis of the article on parallel computing performance and to use bitcoin merely for illustrative purposes. At the very least, you should factor in the energy costs in your profitability analysis, but in my opinion, calculating projections is misleading and even deceptive, given the facts about Bitcoin (see below).

So my warning here:
!!! WARNING !!!
===================================================
Investing in hardware in order to engage in bitcoin mining is a highly risky and quite possibly loss-making idea!
The calculations of "Days to payoff" and "1 year profit" in this article are misleading: Not only is the rate of bitcoin creation is deliberately being slowed as the total number of bitcoins approaches 21 millions, it is also getting more and more difficult to accumulate enough computing power as the number of participants in bitcoin mining is increasing (as people reading this article and others will start setting up their own mining operation). The only effect countering this deterioration in profitability would be an increase in the dollar value of the bitcoin, which is uncertain and unpredictable.
====================================================

"Please keep in mind that we understand that these values will change over time not only because of the exchange rate differences but because your ability to mine Bitcoins will slow down over time as the algorithm to find coins becomes more and more complex as the network hashing power increases. Read over the first two pages of the article again to understand WHY this happens but just know the results you will see below are based on an instance in time during this writing process!"

Nothing really. Plus a virus which specifically only attempted GPU mining would be alot easier to hide in the windows environment since most users are unlikely to be monitoring GPU usage levels when simply web browsing etc.

A virus which intelligently slowed its mining attack if the user was trying to do something GPU intensive (gaming), in order to hide the system use and keep the user from noticing massive in-game slowdown, could likely mine away unnoticed.

I do not fully understand the setup in regards to mining as a pool though, which is what you would ultimately want all your zombied systems to do. I guess it is probably not 'that' difficult to setup a pooling setup given how many continue popping up, plus presumably someone writing a virus specifically targetted at hijacking GPU cycles is probably a decent enough coder.

There have actually been some botnets (that have since been shut down) mining for pools; however, they were thousands of computers using the CPUs to mine as access to the GPU hardware is more difficult/would require more end user cooperation to get that botnet software installed and running, AFAIK.

What price did you use for power in your profit calculations? At 500W for a simple 6990 system, total power consumption in a year of 24/7 use will be 4380 kWh. Your profit after one year will be negative if your price for power is more than about 35 cents, assuming constant difficulty. All Nvidia cards will operate at a loss unless your power is very cheap or free.

Difficulty is about 1000 times larger now than half a year ago, btw. Power cost has become the most important factor in mining profitabilty.

For european readers, the power use is a bit more important. 1kwh of power costs on average around 0.25 euro.
Which means a system like the beast (using 1kw of power) will cost you 0.25*24*365 = 2190 euros per year in electricity.
The beast yearly produces 3637 dollar equivalent bit coins, which is about 2584 Euros.

That means it will effectively only produce 394 euros. And that is not counting the cost of buying the system.

A 6990 in the default BIOS position should generate 330 MHash/s PER core. That's 660 MHash/s per card. I'm not sure why, but your card is showing a much slower speed on one of the cores. (~285.3 MHash/s)

Switch the BIOS switch to position 2 and you'll be at 360-375 MHash/s per core.

You also seem to be missing the most basic flags for GUIMiner running poclbm: -v -w128

Your cpu usage is silly!
It's prolly the guiminer interface or something.
My 'rig' runs 350Mh/s on i7 2600k and HD6970 and rarely hits 4% cpu usage.
And that is while i run an active minecraft server and use the rig to watch videos and stuff (gets it to about 8% for SD video).
I'm using the Phoenix miner btw.

It's 4 integer operations/instruction x 3 instructions/clock x 4 cores x 3.4 GHz = 163.2 GigaInstructions/second. AVX is 4 integer operations/instruction or 8 floating point operations/instruction. Each clock can issue up to 3 instructions if they don't depend on the answer of the previous instructions. The nice thing with AVX over SSE2 is AVX has instructions like a = b *operation* c vs a = a *operation* b for SSE2.

So your telling me you put a Virus on your computer that helps criminals launder money.
you let it operate through your GPU because there is no security there.
and you spend hundreds on hardware and power, for a experiment in social engeneering?
then you think that because 3 places are taking the hype of the bitcoin as a COUPON to sell you shit at 3 times the normal cost, that the bitcoin is therin a currency?

what do you think your GPU is really processing?
or does anyone think?

You just dont get it,
the GPU is processing YOU!
It is internally cyclicly redundant pre-processing your own non-trasnactions, into a multilevel advertising purchacing and marketing scheme.
If they do not enable the user with a journey, then there is no game to be played. There is no Corelation to alternative universal dimentional shifting of exchange goods in virtuality, when there still is nothing but virtuality in existance.
How do you perceive that something exist when one person tells you that it exist, and masses of people join that ONE person to confirm that it exists.
That is a singularity of the black hole variety.

Issue -problem guiminer with dual gpu card HD6870x2 powercolor. After creating new worker for the second Gpu, it still doesnt work 0 Mhashes the first gpu at 304 Mhashes clock at 970 Mhz 60% fan speed temp 74 degrees Celsius
flags -v -w128 -a4. Does anybody know how to setup this correctly , so that both gpu´s work at the same time thank you for helping me out.