CGMiner is the most popular GPU/FPGA/ASIC miner. CGminer is an open-source GPU miner written in C available for several platforms like Windows, Linux and OS X. One of the things that make it extremely popular is the fact that it’s based on the original code Cpu Miner, which you can discover in Bitcoin Wiki.
CGMiner includes overclocking, monitoring, fan speed control and remote interface capabilities. His other features include self detection of new blocks with a mini-database, binary loading of kernels, multi GPU support and CPU mining support. There are a lot of other characteristics you can discover here, at CGminer official forum .
Miner CGMiner is designed to work with graphics cards from AMD. Since he does not know how to extract currency using CUDA technology. If you own a PC or a farm with NVIDIA graphics cards, it is better to use Claymore's Dual Miner.
Of the interesting features of this program it is worth noting the availability of tools for overclocking the GPU and even to control the speed of the coolers. It is recommended to use them very carefully.
Even CGMiner can provide debug information, automatically disable the "problem" worker, to work through a proxy, and use strategy Load Balance and Round Robin. The user is given the opportunity to specify the width of vectors, time periods for reconnection, to create artificial delays for routers and to configure a separate message output.
- the lack of GUI (console application);
- using the NeoScrypt algorithm, helps to achieve maximum values of MH/s;
- availability of tools for overclocking the graphics card;
- change parameters via the configuration file;
- display a detailed log;
- To simplify the work with the program, you can use the cgwatcher graphical shell.
Options for config CGMiner
Intensity the main indicator affecting the speed of the miner, its value is set from 0 to 20. It should be borne in mind that too high intensity can adversely affect the speed of mining, because it can exhaust all available memory and in fact, will reduce the speed of mining at best. At worst-will appear a large number of incorrect calculations and HW errors. Note that if the intensity is not set, CGMiner itself will dynamically adjust it taking into account the possibility of comfortable work on the PC.
Thread-concurrency controls the optimal amount of calculations that the scrypt algorithm can perform. It is initially configured to maximize the use of multiple streams of all Shader blocks of the graphics card that it has. The value should be a multiple of the number of Shader blocks of the graphics card, Respectively, if "thread-concurrency" is specified, then "shaders" can be removed. It is recommended that you spend some time searching for the best value for your graphics card in order to get the best performance.
CGMiner GPU mining
There's a new version of CGMiner git 5.3.1-tpruvot for the production of Decred using AMD and NVIDIA GPUs. This new version of the miner has to work better than the previously available CGMiner fork for DCR.
This fork comes with support for both protocols, the adoption of a ball, such as a formal Protocol, and more advanced getwork getwork via stratum. As mentioned above, the miner will work with graphics cards from AMD and NVIDIA GPU (using OpenCL and not CUDA).
Keep in mind that NVML monitoring only works in 64-bit version. When testing this version of the miner, we were able to achieve a higher hashrate on video cards from NVIDIA than when using tpruvot fork ccMiner for mining DCR. Those who produce using AMD graphics cards should not have any problems with the transition to this version of the miner. You will surely be able to get the best results when mining Decred, using pools with support of Gatework through Stratum.
CryptoNight algorithm for mining
The main task of Cryptonight is not to create a gap between PC users and owners of specialized ASIC devices during mining. Abadi and other cryptographers have developed memory-sensitive algorithms.
The main idea is to allocate a large block of data (Notepad) to RAM with an unpredictable sequence in it. The block should be large enough to make data storage more convenient than computing it every time it is accessed. The algorithm also needs to prevent internal parallelism, i.e., N simultaneous threads should require N times more memory at once.
The popular Scrypt algorithm also uses memory, but leaves the possibility of building powerful and relatively inexpensive computing devices for calculating this algorithm. In the case of CryptoNote, unlike Scrypt, each new block (64 bytes) depends on all the previous ones. The new algorithm requires about 2 MB of RAM, which is the minimum size of the L3 cache of modern processors. At the same time, this amount of RAM excludes the use of ASIC.
We must distinguish between CryptoNote and CryptoNight. CryptoNight is one of the implementations of the CryptoNote Protocol. On the algorithm “Kriptonit” built Monero (XMR), ByteCoin (BCN), Aeoncoin.
The advantages of production on this algorithm:
- Smoothly decreasing emission.
- Small time intervals between blocks;
- The inability to mine on ASIC hardware.
- The use of bundles of CPU+GPU for greater performance.
- Fundamental differences from bitcoin, which contributes to the growth of interest in new cryptocurrencies.
- Innovation profitable CryptoNight coin isolated from most of the altcoins on the old algorithms.
- Profitability and expediency of production is higher than most other cryptocurrencies.
- Less heating of the graphics card and processor than when mining on other algorithms.
Features and Commands
- Very low overhead free c code for Linux and windows with very low nonmining CPU mining and ram usage
- Stratum and GBT pooled mining protocol support, including ultra low overhead solo mining
- Scaleable networking scheduler designed to scale to any size hashrate without networking delays yet minimise connection overhead
- long poll support will use longpoll from any pool if primary pool does not support it
- Self detection of new blocks with a minidatabase for slow/failing longpoll scenarios, maximum work efficiency and minimum rejects.
- Heavily threaded code hands out work retrieval and work submission to separate threads to not hinder devices working
- Caching of submissions during transient network outages
- Preemptive fetching of work prior to completion of current work
- Local generation of valid work (via stratum, GBT or ntime rollover) whenever possible, as supported on a perwork item basis
- Prevention of stale work submission on new block
- Summarised and discrete device data statistics of requests, accepts, rejects, hw errors and work utility
- Summary displayed when quitting
- Supports multiple pools with multiple intelligent failover mechanisms
- Temporary disabling of misbehaving pools rejecting all shares
- On the fly menu based management of most settings
- Trickling of extra work to backup pools if primary pool is responding but slow
- RPC +/ JSON interface for remote control
- Bitforce support singles and minirig
- Icarus support
- Modminer support
- Ability to cope with slow routers
- Submitold support
- XRejectReason support
- Variable difficulty support
- Share difficulty reporting
- Target and block difficulty displays
- Block solve detection
- ASIC Avalon support
- Bitburner support
- Redfury/Bluefury USB stick support
- Bi*fury USB support
- Hexfury USB support
- Onestring miner support
- BlackArrow Bitfury support
- BFL SC asic support
- Drillbit support
- Klondike support
- KnCminer Saturn support
- KnCminer Jupiter support
- KnCminer Neptune support
- Hashfast support
- Nanofury support
- Minion support
- Antminer U1/2+ support
- Bitmine A1 support
- Avalon2/3 support
- Bitmain S1 support
- Cointerra support
- BFx2 support
- Spondoolies SP10 support
- Spondoolies SP30 support
- Rockminer RBox support
- Hashratio support
- Avalon4/5/6/7 support
- Compac gekko support
- Direct USB communications
- Device hotplug
- Heavily featured RPC API
- Multicast support
- Proxy support
- Lots of other stuff I can't remember. See options. 
See Also on BitcoinWiki
- cgminer on GitHub
- Project Thread
- Binaries and Source - All Versions
- Windows Native Compile Guide
- cgminer compiled for Mac OS X