Bitcoin mining and profitability

[Updated 22/05/2013]
[Updated 24/05/2013]
[Updated 04/06/2013]

To mine Bitcoins, be sure you do your calculations first. I can only tell you my own estimates. But here I go:

What cards to mine with?

You need AMD cards. Short and simple.

Almost any AMD mid-high end card will be profitable, and the more the better.
Nvidia cards only deliver about a third to about a half of what an AMD card can do for these kinds of operations.

This is not due to bad manufacturing from Nvidia's side. This is due to the architechture differences, and can not be used against Nvidia, because these cards are primarily gaming and workstation cards and infact my GTX660 outperform my Crossfire'd dual 6790 cards.

GPU's are simply meant to render games and not do cryptography. Also, AMD has chosen a more-cores-is-better strategy, while Nvidia chose the fewer-but-higher-powered-cores strategy.

Power draw

Here is some raw data:

As you can see, the MHash/watt column speaks for itself. The 8800 GT card that many like to mine with is barey any help at all. Same with the GTX660, although it performs better per watt.

The winner is the Sapphire-produced 6790 cards, which are basically two 6770 cards baked into one. This is in truth a 4x6770 rig, but divided into 2x6790-branded monsters.

The low-end 6450 cards have the best ratio, but they simply don't produce nearly as much BTC as the other cards. They are more economic though, and also very quiet.

Based on calculations on bit, (well, I stole this formula: 0.56 USD/24h@100MHash/s), and accounting for two things, I realized how I can profit:

To mine or not to mine

If my Nvidia-based desktop is on _anyway_, then mining with Nvidia cards are _barely_ profitable. But in no way does it pay to have an Nvidia-based rig on for the sake of mining, that will negate any profit, unless you do not pay for power.

However, with AMD-based rigs, having then on 24/7 for the sake of will actually pay off. Not much in my case, but some. Currently, after 3 days of much interrupted mining, I have earned $3.236, but the next few days should go smoother. Some rigs cannot run at 100% capacity all day due to noise, but I'll post some more values later.


Of course, mining alone makes no sense. I have joined up with slush's pool and have engaged about 9 worker GPU's, at tines reaching almost 0.5GigaHash (500Mhash). Now I have a rate of about 700Mh and I am expecting an 6850 and a 4850x2 in the mail anytime now. That would probably boost me to a close 2GH. >D

CPU mining

Also, CPU mining is not worth it at all either. A Phenom X6 1100T @3.7Ghz mines about 10M/hash for about 20 Watts, so that's a no-deal.

The hard numbers and tools you need

You will need to install a so called Wallet. This is a cryptographic file that contains the data needed to store your money. Personally I am using Multibit, because it's just a bit faster to sync up.

Set up your account at the pool, I am using Slush's Pool.

You can find guiminer here. This is the easiest tool for beginners. It defaults to OpenCL renderers but you can install any mining backend.

GPU-Z - Monitor your GPU

Sapphire TRIXX - tweak your Sapphire cards

CUDA addon for guiminer, slightly increase Mh.

Optimized CGminer addon for guiminer

Mining proxy - And other tools, keep your local miners banging one internal server than your pool operator. Slight Mh increase.

Exchange rate webservice Will give you an API token to put into guiminer so you can get more currency conversions.

What is Namecoin?
Merged mining with Namecoin:
Help page here
Register a .bit NameCoin domain. (Can be synergized with BitCoin at Slush's Pool)

My current Bitcoin address is 1Fk5kGvhTPhzmgUDU8dDugB5LF122DExLY
My current Namecoin address is MyUxMoHueS1UyUrJMYUivDAfdCaquY21MR

Feel free to try to send me some coins!

Some flags to pass to guiminer:

-v (vector mode) Doesn't accept parameters in guiminer.

-w128 (worker threads)

-f60 to -f200 Desired desktop framerate, used to make sure other apps recieve proper FPS.
-s0.015 Delay each frame by this much, used to nerf capacity to reduce noise and temp.

Play around with these values to see what works best. Usually I keep one CPU core per GPU card. The 6870 actually required 2 cores to gobble enough data to fill its 1120 cores.

Some examples of what some hardware will perform:

  • AMD cards

  • Sapphire Radeon 6450 (Caicos, 160 x Stream Processors)
    Standard business-class word processing card, but does a good 30Mh.
  • AMD Radeon 6490M (Lamo)
    30Mh. This is the 'office' desktop piece of an AMD A6 3410MX APU based laptop. I has the following chips:
  • AMD Radeon HD 6520G
    The laptop switches to this for high-performance needs, like gaming. (And mining!)
  • Sapphire Radeon 6790 (Bart, 800 cores)
    180Mh out of the box, but they can do up to 196. My two 6790's are also in my wives' gaming PC and so I set them up with -f200 so she can play without notiching lag.

  • XFX Sapphire Radeon 7750 (Cape Verde Pro, 512 cores)
    Noiseless! Also, only requires 50 watts and no PCIe power cables either. 126Mh [-v -w 128 -f0].
  • Gigabyte Radeon 7750 (Cape Verde, 512 cores) ~ 120Mh [-v -w 128 -f0]
  • XFX Radeon 6870 (Bart, 1120 cores) NEW!
    Does 266Mh [-v -w256 -f100]  but with -w256, memory clocked to 340 and overclocked to 900 it did 296.6.
  • ATI Radeon 4850x2 NEW!
    250 watts.
  • Nvidia cards

  • Gigabyte GeForce GTX660 2GB (GK106, 960 cores)
    Does 70Mh [-v -w256 -f60, but wih rpcminer-mod-cuda.exe I tweaked 81.8 out of this.
  • PNY GeForce 8800GT 512 ~ 30Mh
  •  CPU Mining (regular guiminer)

1100T @ 3700MHz ~ 10Mh
960T @ 3400Mhz ~ 7Mh
Intel i5 @2900Mhz ~5Mh

Some more cards I got just for this project:

Sapphire Radeon 6870:
This card is awesome and delivers just short of 300Mh.. The 6870 has 1200 cores and are really just a rebranded 5870 - a true AMD masterpiece. Here's some stats:

As you can see, this run was made using a local proxy against slush's pool on a gigabit network. Also, all these cards promptly puts our motherboards into PCIe 8X mode. This is expected and will probably affect the total bandwidth by a few percent. I might do a single card test to see if 8X or 16X is any different.

ATI (yeah) Radeon 4850x2:
A massive beast, longer than the 6870 and draws even more power. I was struggling with the power cables so this card is untested still, but this will be interesting. Unfortunately, it seems to have been assembled in a way that makes the PCB curve i bit and it looks a bit unsettling.

Do's and dont's:

ALL gambling will set you back very quickly.
SOME free BTC faucets with captcha solvers are often a scam
DO NOT mine with a CPU
DO use a pool
DON'T mine if you aren't ready for micromanaging lots of infrastructure. Buy and sell trough regular exchanges instead.

Does this sound too complicated ? Hire me to set up a Bitcoin farm

Final thoughts

Also, to finetune your setup, you can overclock the core speeds and underclock the memory speeds.This will save you watts as well as reduce GPU wear and tear. Install your overclock and tweak tools and see how much you can reduce power draw without sacrificing too much speed.

So invest in some extra quiet fans and place your rig close to a ventilation hole to dissipate some heat. Ofcourse, as a Norwegian resident, this is just a replacement for other heater installations during the winter! During summer, power is cheap but produces a lot of heat.

Be warned that GPU's at full workload will heat some cards really well. My 8800GT was over 100C!

My two mining rigs are just a few Mh off a Gigahash/sec for about 800-900 watts of PSU and did during the test period mine just above half a Bitcoin with MANY interrupts. Daily payout: about $4 with threshold at 0.3. Probably tweakable to 5-6. (Also gaines 0.05NMC co-mining with slush, using Acrylic DNS and OpenDNS. Pretty sweet setup!)

I tried BFGminer also, which is really sweet, but I had trouble with the temperature variables. Also the 64 bit version did not work under my setup. Only the 32bit one.


USB3.0 vs USB.2.0

[Updated Aug. 26 2013]

I had bought a new Seagate 2TB USB3.0 disk and gave it a spin. Here's some results that I wrote at the time; and some updates.

This was done on the Gigabyte FX990-UD7 mainboard which has an Eltron USB3.0 controller and I have it set up with two 250GB 3Gbit SATA2 disks on the Marvell RAID controller on the board, and an Intel 80 GB SSD disk.

USB2.0 is mostly limited to around 20-25MB second, depending on your controller. Remember, if you want network speeds over 10MB/sec you will have want to upgrade to a Gigabit home network. Then you can achieve speeds around 100 MB/sec.

So, it would be pretty clear that the days of 100 MBit networks are over. To accommodate these now ubiqous technologies as RAID, SSD and USB3, I expect gigabit switches to sell good the coming year.


Added one Kingston 120 GB SSD SATA3.0 drive.
From the USB3.0 to the new SATA3.0, I achieved around 310 MB per second accoring to the Resource Monitor, but the file dialog claimed substantially less.

One of the reasons I had to get the new SSD was ofcourse that the 3 year old 80 GB Intel drive was full, as it is the main system drive, so I have had no SSD to actually put stuff I use. The first thing I did was to move everything Java-related onto the new disk: JRE, JDK, Eclipse and the Android SDK. I noticed an immidiate 2x speedup, and before this, the software was located on the RAID0 drive in this test'

Also 'added' was a 4 GB ' AMD Radeon RAM disk'. This disk is used for Chrome and Windows temporary files. The disk is loaded very early in the boot sequence, and can probably host more interesting things.

Using a single test file of ~4 GB, except for when testing the 4 GB RAM disk, I used a 2.3 GB file.
These values are the observed max values under the Windows transfer dialog.

RAID0 2x3Gbit to USB3: 150MB/sec
USB to RAID0 2x3Gbit: 190MB/sec
SSD SATA2 to USB3: 180MB/sec
USB3 to SSD SATA2: 190MB/sec
SSD SATA2 to RAID0 2x3Gbit: 225MB/sec
RAID0 2x3Gbit to SSD SATA2: 135MB/sec

USB3 to SSD SATA3: 210MB/sec
SSD SATA3 to USB3: 215MB/sec
SSD SATA3 to SSD SATA 2: 266MB/sec
SSD SATA2 to SSD SATA 3: 180MB/sec
SSD SATA3 to RAMDISK: 506MB/sec <--- font="">

The Kingston SSD packaging claimed max 450 read speed, so caching probably caused those 506 :)