GPU-Based Mining And Mining Programs
GPUs are based on SIMD (single instruction, multiple data) architecture, where hundreds of threads can execute the same program in parallel, operating on different input data. Thus, the difficult task of feeding billions of input data vectors into SHA-256 is now spread out over hundreds of GPU cores.
Surprisingly, Nvidia cards are all but unsuitable for Bitcoin mining because SHA-256 is an all-integer algorithm. While Nvidia cards (at least some of them) may rule the roost when it comes to floating-point performance, they lack some integer instructions that are sorely needed for SHA-256. Thus, when similarly-priced graphics cards from Nvidia and AMD are compared, the Nvidia cards are typically slower by a factor of five to seven. This makes them utterly unprofitable for Bitcoin mining. Bitcoin mining is an application segment where AMD Radeon cards shine undisputedly.
Once very popular among Bitcoin miners, but now somewhat dated, the Radeon HD 5830 card boasts 1120 stream processing units. But that doesn’t mean it literally has 1120 separate cores. Rather, the GPU employs 224 SIMD cores, each of which sports five ALUs operating in parallel (VLIW5).
Only a well-optimized GPU program can keep all five ALUs operating at 100% utilization. But the OpenCL compiler does a surprisingly good job of spreading out operations across the available ALUs, and can keep approximately 4½ ALUs fed on average. A card operating at AMD's factory settings runs at 800 MHz, but Bitcoin miners typically overclock their GPUs. As all data of the double SHA implementation fits into the GPU registers, there are only few accesses to DRAM memory. Consequently, miners actually underclock the RAM in order to reduce the card's overall power consumption, allowing more significant overclocking of the all-important Cypress GPU.
Equipped with two Cayman processors, the Radeon HD 6990 was AMD’s top-of-the-line graphics card up until recently. A gamer can also mine Bitcoins on this card when not playing through the latest shooter, or dedicate it to Bitcoin mining after upgrading to the brand-new 7990. Between the two GPUs, the Radeon HD 6990 sports a whopping 3,072 stream processors at 830 MHz. As the Radeon HD 6900-series cards replaced the VLIW5 configuration with VLIW4, a change that benefits ALU utilization, we can calculate that each GPU has 384 processors sporting four ALUs each.
Bitcoin miners have a choice among several mining programs, for instance cgminer, BFGMiner, DiabloMiner, poclbm, and Phoenix. A more recent release of any one of them may contain a slightly more optimized version of the OpenCL-based mining program, while others may do a better job of auto-overclocking graphics cards. Some of these mining programs can also control FPGA-based mining hardware, or even the latest ASIC-based equipment. Personally, I use cgminer and I’m quite happy with it. While older versions would crash every few weeks or so, this problem seems to have been fixed in recent versions.
Required input parameters of a mining program are the URL of the mining pool, including the port number, and the user name and password for your mining pool account. There are also some optional parameters, controlling fan speed and overclocking for instance.
Benchmarks: Radeon HD 5830, HD 6990
Above: Two Radeon HD 5830 cards mining. Below: One Radeon HD 6990 card mining with both GPUs.
While a single Radeon HD 6990 achieves about 700 MH/s (total) with its two GPUs, the old 5830 only mines at approximately 250 MH/s.