Commit 67376ca0e1d9f18ea6fb444e4f040a69d285a304

Con Kolivas 2012-01-20T09:06:56

Update README + FAQ.

diff --git a/README b/README
index a7d41b9..702cc75 100644
--- a/README
+++ b/README
@@ -118,43 +118,20 @@ Usage instructions:  Run "cgminer --help" to see options:
 
 Usage: . [-atDdGCgIKklmpPQqrRsTouvwOchnV] 
 Options for both config file and command line:
---algo|-a <arg>     Specify sha256 implementation for CPU mining:
-        auto            Benchmark at startup and pick fastest algorithm
-        c               Linux kernel sha256, implemented in C
-        4way            tcatm's 4-way SSE2 implementation
-        via             VIA padlock implementation
-        cryptopp        Crypto++ C/C++ implementation
-        sse2_64         SSE2 64 bit implementation for x86_64 machines
-        sse4_64         SSE4.1 64 bit implementation for x86_64 machines (default: sse2_64)
 --api-description   Description placed in the API status header (default: cgminer version)
 --api-listen        Listen for API requests (default: disabled)
 --api-network       Allow API (if enabled) to listen on/for any address (default: only 127.0.0.1)
 --api-port          Port number of miner API (default: 4028)
 --auto-fan          Automatically adjust all GPU fan speeds to maintain a target temperature
 --auto-gpu          Automatically adjust all GPU engine clock speeds to maintain a target temperature
---cpu-threads|-t <arg> Number of miner CPU threads (default: 4)
 --debug|-D          Enable debug output
---device|-d <arg>   Select device to use, (Use repeat -d for multiple devices, default: all)
---disable-gpu|-G    Disable GPU mining even if suitable devices exist
 --donation <arg>    Set donation percentage to cgminer author (0.0 - 99.9) (default: 0.0)
---enable-cpu|-C     Enable CPU mining with GPU mining (default: no CPU mining if suitable GPUs exist)
 --expiry|-E <arg>   Upper bound on how many seconds after getting work we consider a share from it stale (default: 120)
 --failover-only     Don't leak work to backup pools when primary pool is lagging
---gpu-threads|-g <arg> Number of threads per GPU (1 - 10) (default: 2)
---gpu-engine <arg>  GPU engine (over)clock range in Mhz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)
---gpu-fan <arg>     GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)
---gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all or separate by commas for per card.
---gpu-memdiff <arg> Set a fixed difference in clock speed between the GPU and memory in auto-gpu mode
---gpu-powertune <arg> Set the GPU powertune percentage - one value for all or separate by commas for per card.
---gpu-vddc <arg>    Set the GPU voltage in Volts - one value for all or separate by commas for per card.
---intensity|-I <arg> Intensity of GPU scanning (d or -10 -> 10, default: d to maintain desktop interactivity)
---kernel-path|-K <arg> Specify a path to where the kernel .cl files are (default: "/usr/local/bin")
---kernel|-k <arg>   Select kernel to use (poclbm or phatk - default: auto)
 --load-balance      Change multipool strategy from failover to even load balance
 --log|-l <arg>      Interval in seconds between log output (default: 5)
 --monitor|-m <arg>  Use custom pipe cmd for output messages
 --no-longpoll       Disable X-Long-Polling support
---no-restart        Do not attempt to restart GPUs that hang
 --pass|-p <arg>     Password for bitcoin JSON-RPC server
 --per-device-stats  Force verbose mode and output per-device statistics
 --protocol-dump|-P  Verbose dump of protocol-level activities
@@ -166,31 +143,70 @@ Options for both config file and command line:
 --retry-pause|-R <arg> Number of seconds to pause, between retries (default: 5)
 --rotate <arg>      Change multipool strategy from failover to regularly rotate at N minutes (default: 0)
 --round-robin       Change multipool strategy from failover to round robin on failure
---scan-serial|-S <arg> Serial port to probe for BitForce device
 --scan-time|-s <arg> Upper bound on time spent scanning current work, in seconds (default: 60)
 --sched-start <arg> Set a time of day in HH:MM to start mining (a once off without a stop time)
 --sched-stop <arg>  Set a time of day in HH:MM to stop mining (will quit without a start time)
 --shares <arg>      Quit after mining N shares (default: unlimited)
 --submit-stale      Submit shares even if they would normally be considered stale
 --syslog            Use system log for output messages (default: standard error)
---temp-cutoff <arg> Temperature where a GPU device will be automatically disabled, one value or comma separated list (default: 95)
---temp-hysteresis <arg> Set how much the temperature can fluctuate outside limits when automanaging speeds (default: 3)
---temp-overheat <arg> Overheat temperature when automatically managing fan and GPU speeds (default: 85)
---temp-target <arg> Target temperature when automatically managing fan and GPU speeds (default: 75)
 --text-only|-T      Disable ncurses formatted screen output
 --url|-o <arg>      URL for bitcoin JSON-RPC server
 --user|-u <arg>     Username for bitcoin JSON-RPC server
---vectors|-v <arg>  Override detected optimal vector width (1, 2 or 4)
 --verbose           Log verbose output to stderr as well as status output
---worksize|-w <arg> Override detected optimal worksize (default: 0)
 --userpass|-O <arg> Username:Password pair for bitcoin JSON-RPC server
 Options for command line only:
 --config|-c <arg>   Load a JSON-format configuration file
 See example.conf for an example configuration.
 --help|-h           Print this message
---ndevs|-n          Enumerate number of detected GPUs and exit
 --version|-V        Display version and exit
 
+
+GPU only options:
+
+--auto-fan          Automatically adjust all GPU fan speeds to maintain a target temperature
+--auto-gpu          Automatically adjust all GPU engine clock speeds to maintain a target temperature
+--device|-d <arg>   Select device to use, (Use repeat -d for multiple devices, default: all)
+--disable-gpu|-G    Disable GPU mining even if suitable devices exist
+--gpu-threads|-g <arg> Number of threads per GPU (1 - 10) (default: 2)
+--gpu-engine <arg>  GPU engine (over)clock range in Mhz - one value, range and/or comma separated list (e.g. 850-900,900,750-850)
+--gpu-fan <arg>     GPU fan percentage range - one value, range and/or comma separated list (e.g. 25-85,85,65)
+--gpu-memclock <arg> Set the GPU memory (over)clock in Mhz - one value for all or separate by commas for per card.
+--gpu-memdiff <arg> Set a fixed difference in clock speed between the GPU and memory in auto-gpu mode
+--gpu-powertune <arg> Set the GPU powertune percentage - one value for all or separate by commas for per card.
+--gpu-vddc <arg>    Set the GPU voltage in Volts - one value for all or separate by commas for per card.
+--intensity|-I <arg> Intensity of GPU scanning (d or -10 -> 10, default: d to maintain desktop interactivity)
+--kernel-path|-K <arg> Specify a path to where the kernel .cl files are (default: "/usr/local/bin")
+--kernel|-k <arg>   Select kernel to use (poclbm or phatk - default: auto)
+--no-restart        Do not attempt to restart GPUs that hang
+--temp-cutoff <arg> Temperature where a GPU device will be automatically disabled, one value or comma separated list (default: 95)
+--temp-hysteresis <arg> Set how much the temperature can fluctuate outside limits when automanaging speeds (default: 3)
+--temp-overheat <arg> Overheat temperature when automatically managing fan and GPU speeds (default: 85)
+--temp-target <arg> Target temperature when automatically managing fan and GPU speeds (default: 75)
+--vectors|-v <arg>  Override detected optimal vector width (1, 2 or 4)
+--worksize|-w <arg> Override detected optimal worksize (default: 0)
+--ndevs|-n          Enumerate number of detected GPUs and exit
+
+
+BitForce only options:
+
+--scan-serial|-S <arg> Serial port to probe for BitForce device
+
+
+CPU only options:
+
+--algo|-a <arg>     Specify sha256 implementation for CPU mining:
+        auto            Benchmark at startup and pick fastest algorithm
+        c               Linux kernel sha256, implemented in C
+        4way            tcatm's 4-way SSE2 implementation
+        via             VIA padlock implementation
+        cryptopp        Crypto++ C/C++ implementation
+        sse2_64         SSE2 64 bit implementation for x86_64 machines
+        sse4_64         SSE4.1 64 bit implementation for x86_64 machines (default: sse2_64)
+--cpu-threads|-t <arg> Number of miner CPU threads (default: 4)
+--enable-cpu|-C     Enable CPU mining with other mining (default: no CPU mining if suitable devices exist)
+
+
+
 ---
 
 EXECUTIVE SUMMARY ON USAGE:
@@ -652,7 +668,8 @@ does not support it.
 Q: The CPU usage is high.
 A: The ATI drivers after 11.6 have a bug that makes them consume 100% of one
 CPU core unnecessarily so downgrade to 11.6. Binding cgminer to one CPU core on
-windows can minimise it to 100% (instead of more than one core).
+windows can minimise it to 100% (instead of more than one core). Driver version
+11.11 on linux and 11.12 on windows appear to have fixed this issue.
 
 Q: Can you implement feature X?
 A: I can, but time is limited, and people who donate are more likely to get
@@ -713,6 +730,35 @@ you request. It does not correlate with efficient use of your hardware, and is
 a measure of a combination of hardware speed, block luck, pool design and other
 factors.
 
+Q: What are the best parameters to pass for X pool/hardware/device.
+A: Virtually always, the DEFAULT parameters give the best results. Most user
+defined settings lead to worse performance. The ONLY thing most users should
+need to set is the Intensity.
+
+Q: What happened to CPU mining?
+A: Being increasingly irrelevant for most users, and a maintenance issue, it is
+no longer under active development and will not be supported unless someone
+steps up to help maintain it. No binary builds supporting CPU mining will be
+released but CPU mining can be built into cgminer when it is compiled.
+
+Q: I upgraded my ATI driver/SDK/cgminer and my hashrate suddenly dropped!
+A: The hashrate performance in cgminer is tied to the version of the ATI SDK
+that is installed only for the very first time cgminer is run. This generates
+binaries that are used by the GPU every time after that. Any upgrades to the
+SDK after that time will have no effect on the binaries. However, if you
+install a fresh version of cgminer, and have since upgraded your SDK, new
+binaries will be built. It is known that the 2.6 ATI SDK has a huge hashrate
+penalty on generating new binaries. It is recommended to not use this SDK at
+this time.
+
+Q: Which ATI SDK is the best for cgminer?
+A: At the moment, versions 2.4 and 2.5 work the best. If you are forced to use
+the 2.6 SDK, -v 1 -w 64 might help, along with not decreasing your memroy clock
+speed.
+
+Q: ATI 79XX support?
+A: Pending.
+
 Q: GUI version?
 A: No. The RPC interface makes it possible for someone else to write one
 though.