Thanks for your work ckolivas, unfortunately the 6970s performance problem still exists. No change..
Whatever that is, it's something else... Whatever it is... seems to be related to your move to the new phatk kernel. My 6970s on the other hand, like it a lot. Something to do with you mixing cards perhaps? Really no idea offhand
|
|
|
So I worked on fixing bugs only in this quick release, especially with the performance regression in there. Interestingly, 6970s didn't mind at all having the 4K output buffers, but other cards did.
Version 1.5.8 (download links in first post):
- Minimise how much more work can be given in cpu mining threads each interval. - Make the fail-pause progressively longer each time it fails until the network recovers. - Only display the lagging message if we've requested the work earlier. - Clean up the pool switching to not be dependent on whether the work can roll or not by setting a lagging flag and then the idle flag. - Only use one thread to determine if a GPU is sick or well, and make sure to reset the sick restart attempt time. - The worksize was unintentionally changed back to 4k by mistake, this caused a slowdown.
EXECUTIVE SUMMARY: Pool switching should be fixed, performance should be better. GPU SICK/DEAD confusion should be fixed.
|
|
|
I found some hardware that I can reproduce the slowdown on and have found the offending change. It was actually unintentional. I've pushed the fix to git and it will be in the next version.
|
|
|
anyway, I get the same speeds with both kernels in 1.5.6 - 143.5ish and I get the same speeds with both kernels in 1.5.7 - 141
Is this built by yourself in linux, a binary in linux, built by yourself in windows, or a binary in windows? If it's the binary in windows, there were some slight differences in the compilation of it. That's the only thing I can think of that was different. The performance is usually only strongly linked to the kernel and not the code within cgminer which makes your results most unusual.
|
|
|
Hmm. The threads are on the same GPU. There is indeed some confusion in the code it seems (i.e. a bug). I've only reproduced this once and a restart made it go away. I'll see if I can fix it next version.
|
|
|
The thing is I never sent it the kill message and cgminer keeps crashing like this. I looked at my cron log where I have a cron that checks for cgminer process and starts a new one if it doenst exist which runs every 5 minutes. I see that it has run every five minutes.
That looks like you've run out of networking capacity to even send anything. Hrm. In this case it might be worth increasing the retry time from 5 seconds to something like 30. -R 30. Meanwhile I'll look at the pool switch code myself as I'm considering getting rid of the 5 minute switch and make it shorter.
|
|
|
1.5.7 is just 3mhash/s slower on my 5750 down from 144 or so to 141
Copy the old phatk110816.cl file from 1.5.6 into your 1.5.7 directory and rename it phatk110817.cl (overwriting the new one). Then delete any .bin files created and start again. See if that restores the speed. The kernel may behave differently depending on which core it is. Still get around 141mhash/s I did the opposite test and put in the new kernel into the old version and I get about 143 mhash/s but I get hardware errors (well, that should have been expected, you obviously changed stuff) No, actually the kernels from 1.5.6 and 1.5.7 should be interchangeable as they take the same arguments and return the same output, provided the filename is changed to suit the release version.
|
|
|
That's bad. Earlier this was a problem limited to Windows (because of some lib IIRC), right? So there is no other workaround?
Yes it was just limited to windows, but I've not found any workaround apart from downgrading to 11.6 on linux. All mining software is affected, not just cgminer.
|
|
|
Hmm, I just noticed the miner (at least .6 and .7) have a lot of CPU usage (looks like it maxes it out for both cores) on Windows 7. I remember it has been around 10-20% in earlier versions. I am not sure whether it is related to a driver upgrade. There is a difference between GPU0 and ALL hashrates. It looks like it would use my CPU. I tried adding -t0, but it doesn't help.
High CPU usage has been plaguing recent driver versions, to the point of increasing CPU usage on linux to match that of the windows driver. On Linux at least, downgrading to the 11.6 driver makes a massive difference to the CPU usage. Some new code in the driver that does busy-waiting to improve throughput on the GPU also causes 100% (of one core) load. It's been annoying the hell out of me and someone else on this forum found the small sacrifice in GPU throughput by downgrading his driver was well worth the massive drop in CPU usage.
|
|
|
1.5.7 is just 3mhash/s slower on my 5750 down from 144 or so to 141
Copy the old phatk110816.cl file from 1.5.6 into your 1.5.7 directory and rename it phatk110817.cl (overwriting the new one). Then delete any .bin files created and start again. See if that restores the speed. The kernel may behave differently depending on which core it is.
|
|
|
If it's the first GPU, could be coincidence involving a change to your setup, like having the monitor connected, or the screensaver being enabled that wasn't just a blank screen, or... power supply now failing or... some other random who knows what. Does 1.5.5 still give you the higher rate?
|
|
|
Version 1.5.7 - (links in 1st post as usual)
- Fix a crash with --algo auto - Test at appropriate target difficulty now. - Add per-device statics log output with --per-device-stats - Fix breakage that occurs when 1 or 4 vectors are chosen on new phatk. - Make rolltime report debug level only now since we check it every work item. - Add the ability to enable/disable per-device stats on the fly and match logging on/off. - Explicitly tell the compiler to retain the program to minimise the chance of the zero sized binary errors. - Add one more instruction to avoid one branch point in the common path in the cl return code. Although this adds more ALUs overall and more branch points, the common path code has the same number of ALUs and one less jmp, jmps being more expensive. - Explicitly link in ws2_32 on the windows build and update README file on how to compile successfully on windows. - Release cl resources should the gpu mining thread abort. - Attempt to restart a GPU once every minute while it's sick. - Don't kill off the reinit thread if it fails to init a GPU but returns safely. - Only declare a GPU dead if there's been no sign of activity from the reinit thread for 10 mins. - Never automatically disable any pools but just specify them as idle if they're unresponsive at startup. - Use any longpoll available, and don't disable it if switching to a server that doesn't have it. This allows you to mine solo, yet use the longpoll from a pool even if the pool is the backup server. - Display which longpoll failed and don't free the ram for lp_url since it belongs to the pool hdr path. - Make the tcp setsockopts unique to linux in the hope it allows freebsd et. al to compile.
|
|
|
Is it possible to define multiple pools using a JSON config file? I tried just duplicating the url/user/pass, but it seems to ignore all but the first entry.
I'm sure this has been answered already, but I searched and was unable to find any info on this.
Not yet. The only way currently is to specify multiple config files, each with different pool settings (i.e.: -c 1.cfg -c 2.cfg )
|
|
|
Is there a reason cgminer 1.5.6 won't fail over to a backup pool? When my primary pool goes down, cgminer sits there and says the pool is not responding repeatedly. I have to manually switch to the second pool and then it will start mining away.
I have it setup on failover mode and when I check the pool screen it says both pools are alive.
It will generate local work from a failed pool for up to 5 minutes after a pool has gone down. If in that time the pool still hasn't come back up, only then will it switch.
|
|
|
Everyone thinks the feature they want is the killer feature. * ckolivas gets his eyesight checked
|
|
|
Long term output shows how evenly things really are: cgminer version 1.5.6 - Started: [2011-08-18 14:12:33] -------------------------------------------------------------------------------- [(5s):1722.8 (avg):1707.8 Mh/s] [Q:62194 A:108778 R:1067 HW:0 E:175% U:23.37/m] TQ: 8 ST: 14 LS: 0 SS: 68 DW: 9763 NB: 455 LW: 87419 LO: 0 RF: 41 I: 8 Connected to multiple pools with LP Block: 0000052fe78561692640d8cdd37355fe... Started: [19:23:50] -------------------------------------------------------------------------------- [P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit GPU 0: [428.7 / 427.0 Mh/s] [Q:14807 A:27015 R:278 HW:0 E:182% U:5.80/m] GPU 1: [422.9 / 426.9 Mh/s] [Q:15194 A:27264 R:293 HW:0 E:179% U:5.86/m] GPU 2: [426.9 / 427.0 Mh/s] [Q:14687 A:27075 R:238 HW:0 E:184% U:5.82/m] GPU 3: [429.0 / 426.9 Mh/s] [Q:14804 A:27425 R:258 HW:0 E:185% U:5.89/m] --------------------------------------------------------------------------------
@Okama: I wouldn't pay much attention to the rates till much longer has passed. If you get different rates after many hours, check stability of different cards (see mine for how stable the rates can be long term with identical cards).
|
|
|
I'm trying to set up one of my computers with Cgminer and am having a problem.
I have 4 6970's in the computer and I want to connect them to Deepbit as primary and BTC Guild as backup.
I want to only have one instance of Cgminer running and be able to use one pool worker per GPU (Not all 4 GPU's using one login and password). This is needed because I check the status on my phone of my miners to see if any of them have stopped. If they are all lumped into one login, I have no way of knowing which GPU is having an issue.
So for Deepbit and BTC Guild I have 4 workers set up (One for each GPU).
Using Windows 7. No Screen command so I only want one instance of Cgminer running.
I have tried the "-d" option for all GPU's but that doesn't seem to work for me.
Any way to make this happen?
Not currently, unless you run multiple instances of cgminer, one for each pool, bound to just one GPU. cgminer -d 0 -o pool1... cgminer -d 1 -o pool2... cgminer -d 2 -o pool3... I have no intention of adding the feature of binding one pool to one gpu as it's a really inefficient way of managing resources in my opinion, and you can get the same effect by running multiple instances of cgminer anyway.
|
|
|
This is what I'm seeing a lot: [2011-08-20 20:27:31] GPU 0 Q:2849 A:3952 R:181 HW:0 E:139% U:3.29/m
[2011-08-20 20:27:38] HTTP request failed: Operation timed out after 60001 millisecon ds with 0 bytes received [2011-08-20 20:27:38] submit_upstream_work json_rpc_call failed [2011-08-20 20:27:38] Pool 0 communication failure, caching submissions
[2011-08-20 20:27:38] Stale share detected, discarding [2011-08-20 20:27:42] [(5s):719.9 (avg):684.3 Mh/s] [Q:5973 A:7892 R:356 HW:0 E: 132% U:6.57/m] [2011-08-20 20:27:47] X-Roll-Ntime found [2011-08-20 20:27:47] Pool 0 communication resumed, submitting work
[2011-08-20 20:27:47] Accepted e1b2aa64 GPU 1 thread 1 pool 0 [2011-08-20 20:27:47] GPU 1 Q:2928 A:3941 R:175 HW:0 E:135% U:3.28/m
[2011-08-20 20:27:48] [(5s):710.1 (avg):684.3 Mh/s] [Q:5973 A:7893 R:356 HW:0 E: 132% U:6.57/m]
[2011-08-20 20:27:56] HTTP request failed: Operation timed out after 60001 millisecon ds with 0 bytes received [2011-08-20 20:27:56] Failed json_rpc_call in get_upstream_work [2011-08-20 20:27:56] json_rpc_call failed on get work, retry after 5 seconds
I think it's from a network issue where my latency will jump from 40 to 700, and since only one ISP is available and they don't believe lightning hitting their equipment is an issue, is there any settings I can adjust to try to compensate and reduce stales? You could try decreasing the stale rate overall by running less threads per GPU with '-g 1'. While it will decrease your mhash slightly, it might be worth the compromise since the share submissions will start happening earlier (since each thread will find shares in less time).
|
|
|
Removing the CPU mining code from the miner would mean you'd have to rename it to G-Miner....
It sounds a bit like "Yo, Big G in da house"
Con's GPU MinerI've tried rolling this out on a few computers (20+) with CPU mining and having to set -t all the time is very annoying. -t all or -t -2 (# CPU threads minus 2 threads) and etc will be nice. Also, how is Hyper Threading handled? Should i set it to the number of actual cores or number of threads? It is supposed to detect the number of CPUs and set it automatically. The only time it does not set number of cpu threads is if it detects any mineable GPU cores. Then it disables CPU mining. As for hyperthreading, it's a two edged sword. If you set it to the total number of threads, your overall hash rate will be marginally higher (on the order of 15%, but depends on type of CPU) but the efficiency will drop down dramatically because each individual thread will be slower. Also the perceived desktop slowdown will be more dramatic if you use number of threads. Overall, I'd be recommending setting it to number of cores rather than number of threads since then each core can operate most effectively, and be more efficient. Note, however, that there is no reliable cross platform way of determining what's a core and what's a thread. All operating systems return the total number of threads as processors, so by default, auto-detect will give you number of threads.
|
|
|
@ckolivas can you implement in win32 build something like the --monitor flag from the linux ... it will be great if you could log to a file the hash rate P.S. i`m not exactly sure what the --monitor does in linux i can only guess You can already monitor the output on windows ... just as it describes in the README.txt file. (hint add: 2>log.txt) The --monitor command allows someone to start an executable automatically with cgminer to act upon the log. That's almost certainly not what you're wanting on windows...
|
|
|
|