Thanks for starting a new topic JG. I need this project to have more exposure to attract attention to its GPU mining code so that it can be tested and I can keep improving on it. The background behind minerd is that it's built on top of Jeff Garzik's excellent cpuminer application which is programmed in (efficient, fast, lower overhead for low level stuff) c and I've added gpu mining code to it. The idea is to make an all encompassing cpu + gpu miner that performs very well, is cross platform and is being actively developed.
EDITED NOW CALLED CGMINER:
Latest source release:
http://ck.kolivas.org/apps/cgminer-1.2.3.tar.bz2Git tree:
https://github.com/ckolivas/cgminerLatest git source tarball:
https://github.com/ckolivas/cgminer/tarball/cgminerWindows binary:
http://ck.kolivas.org/apps/cgminer-1.2.3-win32.zipSummary of GUI mining features so far: Custom modified phatk and poclbm kernels, BFI_INT patching, new VECTOR code, long poll support, multi-card support while doing +/- CPU mining as well. The GPU mining code now detects the optimal parameters and capabilities for every card and sets each card separately. It has extensive failover logic to keep work going at all times and GPUs should virtually never go idle.
Initially the oclminer code was ported across to get the gpu mining working, but a lot of work has been done in gpu mining since then. I've drastically modified the way work is passed to the GPU to make it as asynchronous as possible and keep the GPU busy without making the GUI come to a standstill. Since then I've ported across the poclbm and phatk kernels, added BFI_INT patching and vectors. I've custom modified the vector code to make the most of modern pipelines and added code to detect optimal settings for each card and set them separately. Performance on my 6770 and 4x6970 is now better than any other GPU mining software.
The output looks like this:
cgminer version 1.2.0
--------------------------------------------------------------------------------
Totals: [(5s):166.9 (avg):194.3 Mh/s] [Q:43 A:14 R:0 HW:2 E:33% U:2.53/m]
--------------------------------------------------------------------------------
GPU 0: [183.5 Mh/s] [Q:15 A:14 R:0 HW:2 E:93% U:2.57/m]
CPU 0: [0.0 Mh/s] [Q:1 A:0 R:0 HW:0 E:0% U:0.00/m]
CPU 1: [3.2 Mh/s] [Q:1 A:0 R:0 HW:0 E:0% U:0.00/m]
CPU 2: [3.2 Mh/s] [Q:1 A:0 R:0 HW:0 E:0% U:0.00/m]
CPU 3: [3.2 Mh/s] [Q:5 A:0 R:0 HW:0 E:0% U:0.00/m]
--------------------------------------------------------------------------------
[2011-07-11 13:35:41] Share accepted from GPU 0
[2011-07-11 13:36:00] Share accepted from GPU 0
[2011-07-11 13:36:37] Share accepted from GPU 0
[2011-07-11 13:36:57] Share accepted from GPU 0
[2011-07-11 13:37:06] Server not providing work fast enough, generating work locally
[2011-07-11 13:37:07] Resumed retrieving work from server
[2011-07-11 13:37:23] LONGPOLL detected new block, flushing work queue
[2011-07-11 13:37:41] Share accepted from GPU 0
[2011-07-11 13:37:43] LONGPOLL detected new block, flushing work queue
[2011-07-11 13:38:10] Share accepted from GPU 0
[2011-07-11 13:39:08] Share accepted from GPU 0
[2011-07-11 13:39:25] Share accepted from GPU 0
Options:
--cpu-threads|-t
Number of miner CPU threads (default: 0)
--debug|-D Enable debug output
--gpu-threads|-g Number of threads per GPU (0 - 10) (default: 2)
--intensity|-I Intensity of GPU scanning (0 - 14) (default: 4)
--log|-l Interval in seconds between log output (default: 5)
--no-longpoll Disable X-Long-Polling support
--pass|-p Password for bitcoin JSON-RPC server
--protocol-dump|-P Verbose dump of protocol-level activities
--queue|-Q Number of extra work items to queue (1 - 10) (default: 1)
--quiet|-q Disable per-thread hashmeter output
--retries|-r Number of times to retry before giving up, if JSON-RPC call fails (-1 means never) (default: -1)
--retry-pause|-R Number of seconds to pause, between retries (default: 5)
--scan-time|-s Upper bound on time spent scanning current work, in seconds (default: 60)
--syslog Use system log for output messages (default: standard error)
--url|-o URL for bitcoin JSON-RPC server (default: "http://127.0.0.1:8332/")
--user|-u Username for bitcoin JSON-RPC server
--vectors|-v Override detected optimal vector width (1, 2 or 4)
--verbose Log verbose output to stderr as well as status output
--worksize|-w Override detected optimal worksize (default: 0)
--userpass|-O Username:Password pair for bitcoin JSON-RPC server
Options for command line only:
--config|-c Load a JSON-format configuration file
See example-cfg.json for an example configuration.
--help|-h Print this message
--ndevs|-n Display number of detected GPUs and exit
---
Please test it and report back!
I recommend limiting intensity to no more than 8 as higher levels cause serious stalls and very little improvement (with possibly more stale shares). Some nvidia cards crash immediately on startup and that's because they report bogus values for their worksize. Try setting worksize to 128 or 256 manually if that happens.