About changing GPU settings: cgminer already reports the so-called "safe" range of whatever it is you are modifying when you ask to modify it on the fly. However, you can change settings to values outside this range. Despite this, the card can easily refuse to accept your changes, or worse, to accept your changes and then silently ignore them. So there is absolutely no way for me to know how far to/from where/to I can set things safely or otherwise, and there is nothing stopping you from at least trying to set them outside this range. I'm very conscious of these possible failures and that's why cgminer will report back the current values for you to examine how exactly the card has responded. Even within the reported range of accepted values by the card, it is very easy to crash just about any card, so I cannot use those values to determine what range to set. You have to provide something meaningful manually for cgminer to work with through experimentation.
|
|
|
Now if this $%&##^ 100% CPU bug can be squashed I'll be laughing. Bloody AMD *shakes fist*.
just out of curiosity... can't a Sleep(1); be added into each thread? this would fix the 100% cpu bug? 1ms shouldn't affect the mining at any signifigant level It's while the GPU code is executing that the CPU usage is high due to the driver consuming useless cycles. Sleeping when it comes back to the CPU will do nothing for that.
|
|
|
And now, ladies and gentlemen, just for kicks a "screenshot" of cgminer in action on an 8-GPU rig. One word: awesomeness/ cgminer version 2.0.0 - Started: [2011-09-07 10:59:38] -------------------------------------------------------------------------------- [ALL (5s):2955.4 (avg):2946.7 Mh/s] [Q:52 A:48 R:0 HW:0 E:92% U:47.01/m] TQ: 24 ST: 24 SS: 0 DW: 0 NB: 1 LW: 115 GF: 0 RF: 0 I: 10 Connected to http://arsbitcoin.com:8344 with LP as user znort987.00 Block: 0000010b4d05033cb8ac32e1768d2b2d... Started: [10:59:23] -------------------------------------------------------------------------------- [P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit GPU 0: [67.5 C] [372.2/373.5 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:5.88/m] GPU 1: [368.9/373.5 Mh/s] [Q:5 A:6 R:0 HW:0 E:120% U:5.88/m] GPU 2: [70.5 C] [359.2/374.6 Mh/s] [Q:4 A:11 R:0 HW:0 E:275% U:10.77/m] GPU 3: [383.2/369.2 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:3.92/m] GPU 4: [71.0 C] [361.0/375.7 Mh/s] [Q:18 A:4 R:0 HW:0 E:22% U:3.92/m] GPU 5: [364.4/374.6 Mh/s] [Q:11 A:5 R:0 HW:0 E:45% U:4.90/m] GPU 6: [40.5 C] [403.9/370.3 Mh/s] [Q:2 A:10 R:0 HW:0 E:500% U:9.79/m] GPU 7: [387.5/371.4 Mh/s] [Q:3 A:4 R:0 HW:0 E:133% U:3.92/m] --------------------------------------------------------------------------------
[2011-09-07 11:00:11] [GPU1 (5s):375.2 (avg):402.5 Mh/s] [Q:4 A:5 R:0 HW:0 E:125% U:9.89/m] [2011-09-07 11:00:11] [GPU4 71.0 C (5s):397.5 (avg):406.9 Mh/s] [Q:4 A:3 R:0 HW:0 E:75% U:5.93/m] [2011-09-07 11:00:12] [GPU7 (5s):350.2 (avg):409.1 Mh/s] [Q:3 A:1 R:0 HW:0 E:33% U:1.98/m] [2011-09-07 11:00:12] Accepted 381dbc11 GPU 7 thread 23 pool 0 [2011-09-07 11:00:12] Accepted 53b68709 GPU 2 thread 2 pool 0 [2011-09-07 11:00:13] [GPU6 37.5 C (5s):365.4 (avg):418.0 Mh/s] [Q:2 A:2 R:0 HW:0 E:100% U:3.95/m] [2011-09-07 11:00:13] [ALL (5s):2960.0 (avg):2947.1 Mh/s] [Q:28 A:29 R:0 HW:0 E:104% U:49.17/m] [2011-09-07 11:00:14] Accepted 2568f80c GPU 6 thread 22 pool 0 [2011-09-07 11:00:15] [GPU2 69.5 C (5s):392.1 (avg):388.8 Mh/s] [Q:4 A:7 R:0 HW:0 E:175% U:11.87/m] [2011-09-07 11:00:16] [GPU4 71.0 C (5s):313.7 (avg):400.2 Mh/s] [Q:4 A:3 R:0 HW:0 E:75% U:5.09/m] [2011-09-07 11:00:16] [GPU3 (5s):349.2 (avg):400.2 Mh/s] [Q:2 A:1 R:0 HW:0 E:50% U:1.70/m] [2011-09-07 11:00:16] [GPU5 (5s):362.7 (avg):398.3 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:6.78/m] [2011-09-07 11:00:16] [GPU1 (5s):380.8 (avg):403.9 Mh/s] [Q:4 A:5 R:0 HW:0 E:125% U:8.48/m] [2011-09-07 11:00:17] [GPU0 66.5 C (5s):388.5 (avg):400.2 Mh/s] [Q:4 A:5 R:0 HW:0 E:125% U:8.48/m] [2011-09-07 11:00:17] [GPU7 (5s):398.2 (avg):407.7 Mh/s] [Q:3 A:2 R:0 HW:0 E:67% U:3.39/m] [2011-09-07 11:00:17] Accepted 580e101e GPU 3 thread 3 pool 0 [2011-09-07 11:00:18] [GPU6 38.5 C (5s):407.0 (avg):417.2 Mh/s] [Q:2 A:3 R:0 HW:0 E:150% U:5.09/m] [2011-09-07 11:00:18] Accepted 6ba85346 GPU 0 thread 0 pool 0 [2011-09-07 11:00:19] [ALL (5s):2949.5 (avg):2933.6 Mh/s] [Q:28 A:32 R:0 HW:0 E:114% U:47.05/m] [2011-09-07 11:00:19] Accepted be4a473a GPU 6 thread 14 pool 0 [2011-09-07 11:00:20] [GPU2 69.5 C (5s):410.6 (avg):383.1 Mh/s] [Q:4 A:7 R:0 HW:0 E:175% U:10.29/m] [2011-09-07 11:00:21] [GPU3 (5s):370.4 (avg):394.7 Mh/s] [Q:2 A:2 R:0 HW:0 E:100% U:2.94/m] [2011-09-07 11:00:22] [GPU4 71.0 C (5s):396.5 (avg):393.0 Mh/s] [Q:4 A:3 R:0 HW:0 E:75% U:4.41/m] [2011-09-07 11:00:22] [GPU5 (5s):458.5 (avg):393.0 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:5.88/m] [2011-09-07 11:00:22] [GPU0 67.0 C (5s):406.6 (avg):397.9 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:8.82/m] [2011-09-07 11:00:22] Accepted 472f6139 GPU 3 thread 3 pool 0 [2011-09-07 11:00:22] [GPU1 (5s):439.6 (avg):394.7 Mh/s] [Q:4 A:5 R:0 HW:0 E:125% U:7.35/m] [2011-09-07 11:00:23] [GPU7 (5s):427.1 (avg):404.5 Mh/s] [Q:3 A:2 R:0 HW:0 E:67% U:2.94/m] [2011-09-07 11:00:23] [GPU6 39.0 C (5s):449.4 (avg):409.4 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:5.88/m] [2011-09-07 11:00:23] Accepted 7d62646e GPU 7 thread 23 pool 0 [2011-09-07 11:00:24] [ALL (5s):2950.8 (avg):2936.8 Mh/s] [Q:28 A:35 R:0 HW:0 E:125% U:45.79/m] [2011-09-07 11:00:24] Accepted 89c5a35e GPU 1 thread 17 pool 0 [2011-09-07 11:00:25] [GPU2 70.0 C (5s):346.5 (avg):377.5 Mh/s] [Q:4 A:7 R:0 HW:0 E:175% U:10.29/m] [2011-09-07 11:00:25] Accepted 667edd59 GPU 2 thread 10 pool 0 [2011-09-07 11:00:26] [GPU3 (5s):362.5 (avg):390.7 Mh/s] [Q:2 A:3 R:0 HW:0 E:150% U:3.92/m] [2011-09-07 11:00:27] [GPU4 71.0 C (5s):352.2 (avg):395.1 Mh/s] [Q:4 A:3 R:0 HW:0 E:75% U:3.92/m] [2011-09-07 11:00:27] [GPU5 (5s):381.7 (avg):396.5 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:5.23/m] [2011-09-07 11:00:27] [GPU0 67.0 C (5s):424.8 (avg):396.5 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:7.85/m] [2011-09-07 11:00:27] [GPU1 (5s):368.1 (avg):395.1 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:7.85/m] [2011-09-07 11:00:28] [GPU7 (5s):349.9 (avg):405.3 Mh/s] [Q:3 A:3 R:0 HW:0 E:100% U:3.92/m] [2011-09-07 11:00:28] Accepted 6eeeb06e GPU 2 thread 10 pool 0 [2011-09-07 11:00:29] [GPU6 40.0 C (5s):397.5 (avg):411.2 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:5.23/m] [2011-09-07 11:00:29] [ALL (5s):2964.0 (avg):2952.8 Mh/s] [Q:28 A:38 R:0 HW:0 E:136% U:44.73/m] [2011-09-07 11:00:30] Accepted 40b10b8c GPU 4 thread 4 pool 0 [2011-09-07 11:00:30] Accepted 44a1a972 GPU 6 thread 6 pool 0 [2011-09-07 11:00:30] Accepted 50e3c567 GPU 2 thread 18 pool 0 [2011-09-07 11:00:31] [GPU2 70.0 C (5s):381.8 (avg):380.5 Mh/s] [Q:4 A:10 R:0 HW:0 E:250% U:11.77/m] [2011-09-07 11:00:31] Accepted bd57c182 GPU 6 thread 14 pool 0 [2011-09-07 11:00:32] [GPU3 (5s):390.8 (avg):388.4 Mh/s] [Q:2 A:3 R:0 HW:0 E:150% U:3.53/m] [2011-09-07 11:00:32] [GPU4 71.5 C (5s):400.0 (avg):392.3 Mh/s] [Q:4 A:4 R:0 HW:0 E:100% U:4.71/m] [2011-09-07 11:00:32] [GPU0 67.0 C (5s):429.6 (avg):393.6 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:7.06/m] [2011-09-07 11:00:32] [GPU5 (5s):417.4 (avg):396.3 Mh/s] [Q:2 A:4 R:0 HW:0 E:200% U:4.71/m] [2011-09-07 11:00:33] [GPU1 (5s):394.6 (avg):397.6 Mh/s] [Q:4 A:6 R:0 HW:0 E:150% U:7.06/m] [2011-09-07 11:00:33] Accepted 129233a6 GPU 6 thread 22 pool 0 [2011-09-07 11:00:34] [GPU7 (5s):395.6 (avg):404.2 Mh/s] [Q:3 A:3 R:0 HW:0 E:100% U:3.53/m] [2011-09-07 11:00:34] [GPU6 40.0 C (5s):338.8 (avg):406.8 Mh/s] [Q:2 A:7 R:0 HW:0 E:350% U:8.24/m] [2011-09-07 11:00:34] Accepted 73ef92ab GPU 6 thread 22 pool 0 [2011-09-07 11:00:34] [ALL (5s):2964.6 (avg):2954.4 Mh/s] [Q:28 A:44 R:0 HW:0 E:157% U:47.11/m] [2011-09-07 11:00:35] Accepted 3b12cba1 GPU 6 thread 14 pool 0 ...
Now that is mining pr0n.
|
|
|
The adl include files are only needed for compiling it. I have compiled adl support into the windows binaries myself. I tried very hard to make the code work on both platforms, and even I'm surprised the windows version works as well as the linux one. There is no ADL support for any other operating systems though.
|
|
|
With 11.8 drivers dummy plugs and extra monitors weren't needed, plus you can now have 8 HPU's.
Hopefully the revised version works with 11.8 when I test in 6 hours.
Nice work Con!
HPUs! w00t, one better than GPUs! Thanks
|
|
|
I've updated the source tarballs and linux binaries as well. No new version, just new archive name. Links in top post.
|
|
|
Updated git tree: (new feature --temp-cutoff)
Ideally we should link with -ldl for dlopen() dlclose(). ByteReverse is not used and the bswap opcode breaks big endian builds. Remove it. Ignore whether the display is active or not since only display enabled devices work this way, and we skip over repeat entries anwyay. Win32 does not use dlopen so link in -ldl only when not on win32 and display what ldflags are being passed on ./configure. Only reset values on exiting if we've ever modified them. Flag adl as active if any card is successfully activated. Add a thermal cutoff option as well and set it to 95 degrees by default. Change the fan speed by only 5% if it's over the target temperature but less than the hysteresis value to minimise overshoot down in temperature.
|
|
|
On Linux, 11.6 driver with ANY sdk is fine. 2.1, 2.4 and 2.5 do not chew up CPU. It's all in the driver. 11.7 and 11.8 drivers use 100% CPU no matter how many cards you use, nor if you set that environment variable or not.
A fix for that would be most appreciated.
|
|
|
Sure, I'll do that now. Just to clarify, I should do this with the "extra" monitors disabled right? Yes, try it on multiple cards with just the one monitor enabled. It worked Sees all the cards even without the monitors "active". Great job! Great. I've updated the windows zip with the new executable and posted it in the top post since nothing else has changed, but it fixes the most common issue people are running into: http://ck.kolivas.org/apps/cgminer/cgminer-2.0.0-win32_1.zip
|
|
|
Sure, I'll do that now. Just to clarify, I should do this with the "extra" monitors disabled right? Yes, try it on multiple cards with just the one monitor enabled.
|
|
|
Wow. This works fantastic. Great work, as always.
I love the Temperature display now. Would it be possible to add an option to display the GPU and fan speed? That would be nice to see if things are getting throttled down.
I'm rapidly running out of real estate in the status line...
|
|
|
The fan speeds and clock speeds seem to be updated too quick, it doesn't sound like it's doing anything at all. Though i have 4 cards in the one box so an adjustment of 5% is probably negligible in terms of audible sound. Just to confirm, if i want to over clock my core speed to 825, set the fan to never go over 65% and to maintain 90 degrees i would use: #!/bin/bash cd ~/cgminer DISPLAY=:0 ./cgminer -c p1.json -c p2.json --submit-stale --auto-fan --auto-gpu --gpu-engine 825 --gpu-memclock 300 --temp-overheat 95 --temp-target 90 --gpu-fan 65
Now i assume cgminer would automatically adjust the clock to the maximum possible with a ceiling of 825 while trying to maintain 90 degrees by adjusting the fan speed to a max of 65% (unless it hits the overheat value)? I would prefer to sacrifice clock speeds to keep fan noise down. Omitting the --auto-gpu/fan would set cgminer to always run the card at 820mhz and always run the fan at 65% (unless overheating)? What happens if i use: DISPLAY=:0 ./cgminer -c p1.json -c p2.json --submit-stale --auto-fan --auto-gpu --temp-overheat 95 --temp-target 90 Does cgminer automatically overclock to the maximum possible for me? You are partially right. The auto-fan ignores the set fan speed (intrinsically this is safer), so if you want a maximum fan speed of 65% you're limited with current options to just setting a static value for fanspeed. However the GPU ceiling you set will be adhered to when clocking up and down to maintain temp up to target. If you do *not* pass any engine speed to cgminer (like your last command line) it will only clock up and down if it already detects an overclock is already present. I'm obsessive about cgminer avoiding doing anything more than you specify is safe or is already running in terms of engine speed.
|
|
|
As for it seeing cards, I need all 4 of my cards connected up and the monitors "activated" in the display settings. Once that's done and cgminer is doing it's thing, you can disable the other two monitors in display settings and it'll be fine until you need to restart cgminer.
That's a very interesting observation. I may be able to code a workaround for that next version. That'd be awesome if possible. It's a PITA at the moment, but it's been like that for a fair while (I was using MSI Afterburner prior to this and the same problem existed). Love the new version by the way, you're a smart cookie Well if you could quickly test this version (drop the .exe in place of your existing one) and tell me if it works, that would be helpful: http://ck.kolivas.org/apps/cgminer/cgminer.exe(it's otherwise identical to 2.0)
|
|
|
As for it seeing cards, I need all 4 of my cards connected up and the monitors "activated" in the display settings. Once that's done and cgminer is doing it's thing, you can disable the other two monitors in display settings and it'll be fine until you need to restart cgminer.
That's a very interesting observation. I may be able to code a workaround for that next version.
|
|
|
Unfortunately that does not remotely look like portable code, even to the point of breaking possibly between linux kernel releases if you're really unlucky and card specific. Oh and possibly a real bitch to maintain because of that.
|
|
|
Can you make it so if the overheattemp >= currenttemp, goto out;
I.e if the temp is high than the set treshhold, stop mining completely and stop the thread?
Anything's possible. I could perhaps make a cutoff temperature over and above the overheat one.
|
|
|
What is NFI? How can I make these cgminer stats work with 4 GPUs? I have one dummy plug, should I make more? http://www.urbandictionary.com/define.php?term=N.F.IPossibly the dummy plugs will help. Try one and see if that card comes up too. Also see which card it is that happens to be working in the list.
|
|
|
You have to make sure the display for all devices is exported on linux for all cards to be seen with "export DISPLAY=:0". NFI what you need to do on windows.
It was suggested on IRC that since we are exporting all the displays like an active one in linux, it may be that the lack of outputs on the displays on windows is why the adl library isn't talking to them. i.e. perhaps it's only the cards connected to monitors or dummy plugs that work.
|
|
|
Hey Con,
A truly amazing release !!
A quick 20mn run of the new cgminer with fan/mem/clock control and everything seems to work peachy.
No more fiddling around with AMDOverDriveCtl, everything is now controlled from cgminer. This rocks !!!
The only thing I can't now with cgminer do is push vddc beyond 1.05v on my 5970s (but neither can AMDOverDriveCtl ... for this, the only thing I've found that works is radeonvolt).
5BTC headed your way right now.
Thanks =) And thanking you muchly for your generous donation. I'm glad people appreciate how much effort this has been.
|
|
|
Okay, turned out that I didn't have ADL files in the folder. Con, please fix the readme file in that folder as the adl_structures file isn't checked by the ./configure but doesn't compile on make. It checks for only one of the header files. I assumed that the instructions saying to Copy all the *.h files in the "include" directory into cgminer's ADL_SDK directory. were clear enough.
|
|
|
|