-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 08, 2011, 11:07:48 PM |
|
1) Dual GPU cards don't get adjusted/disabled correctly. For example, a 5970 will only disable the one GPU that has the temp sensor: GPU 3: [80.5 C] [DISABLED /78.5 Mh/s] [Q:2 A:11 R:1 HW:0 E:550% U:1.81/m] GPU 4: [327.3/324.5 Mh/s] [Q:25 A:23 R:1 HW:0 E:92% U:3.78/m] Out of curiosity, what does AMDOverdriveCtrl -h return as a list of adapters on machines with dual core GPUs like this one? INF: Nr. of Adapters: 13 INF: Adapter index: 0, active, ID:9879600, ATI Radeon HD 5700 Series INF: Adapter index: 1, inact., ID:9879600, ATI Radeon HD 5700 Series INF: Adapter index: 2, inact., ID:9879600, ATI Radeon HD 5700 Series INF: Adapter index: 3, active, ID:10442944, ATI Radeon HD 5700 Series INF: Adapter index: 4, inact., ID:10442944, ATI Radeon HD 5700 Series INF: Adapter index: 5, inact., ID:10442944, ATI Radeon HD 5700 Series INF: Adapter index: 6, active, ID:11009344, ATI Radeon HD 5800 Series INF: Adapter index: 7, inact., ID:11009344, ATI Radeon HD 5800 Series INF: Adapter index: 8, inact., ID:11009344, ATI Radeon HD 5800 Series INF: Adapter index: 9, active, ID:11573824, ATI Radeon HD 5900 Series INF: Adapter index: 10, inact., ID:11573824, ATI Radeon HD 5900 Series INF: Adapter index: 11, inact., ID:11573824, ATI Radeon HD 5900 Series INF: Adapter index: 12, active, ID:12191920, ATI Radeon HD 5900 Series $ lspci |grep VGA 07:00.0 VGA compatible controller: ATI Technologies Inc Hemlock [ATI Radeon HD 5900 Series] 08:00.0 VGA compatible controller: ATI Technologies Inc Radeon HD 5800 Series (Cypress LE) 0b:00.0 VGA compatible controller: ATI Technologies Inc Juniper [Radeon HD 5700 Series] 0c:00.0 VGA compatible controller: ATI Technologies Inc Juniper [Radeon HD 5700 Series] Interesting. Perhaps it supports only a few commands but not others since it does show up as a discrete device. What can you set manually with other software? Are GPU speeds linked for example?
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
MadHacker
|
|
September 08, 2011, 11:09:03 PM |
|
No, there's no cross platform portable code for those. I'm having enough trouble reading anything off the second cores as well.
ok there may not be platform portable code... however you could implement 2 versions wrap them around #ifdef WIN32 // win32 code version #else // linux version #endif // WIN32 Or I could not. It was a bootload of work importing the adl sdk and sponsored code. well its all up to you... however... there is a project that may server that purpose in linux. https://bitcointalk.org/index.php?topic=10228.0
|
|
|
|
gnar1ta$
Donator
Hero Member
Offline
Activity: 798
Merit: 500
|
|
September 08, 2011, 11:27:25 PM |
|
To achieve this I changed line 1871 of main.c: wprintw(statuswin, "%4dMHz %.1fC %2d%% | ", gpu_engineclock(gpu), gpu_temp(gpu), gpu_fanpercent(gpu)); And now that I have clocks in the display (thank you for sharing) I am noticing both the fans jumping to 100% and the clocks being lowered at the temp-overheat value. How do I properly set this with auto-gpu so the fans will increase at 80 but the clocks won't drop until it reaches 85?
|
Losing hundreds of Bitcoins with the best scammers in the business - BFL, Avalon, KNC, HashFast.
|
|
|
toasty
Member
Offline
Activity: 90
Merit: 12
|
|
September 08, 2011, 11:46:04 PM |
|
Interesting. Perhaps it supports only a few commands but not others since it does show up as a discrete device. What can you set manually with other software? Are GPU speeds linked for example?
aticonfig seems to show them as separate, including different temps: $ aticonfig --odgt --adapter=all
Adapter 0 - ATI Radeon HD 5700 Series Sensor 0: Temperature - 100.00 C
Adapter 1 - ATI Radeon HD 5700 Series Sensor 0: Temperature - 100.00 C
Adapter 2 - ATI Radeon HD 5800 Series Sensor 0: Temperature - 90.00 C
Adapter 3 - ATI Radeon HD 5900 Series Sensor 0: Temperature - 97.50 C
Adapter 4 - ATI Radeon HD 5900 Series Sensor 0: Temperature - 93.50 C I also can set the clocks on both cards separately: $ aticonfig --odgc --adapter=all
*snip unrelated cards*
Adapter 3 - ATI Radeon HD 5900 Series Core (MHz) Memory (MHz) Current Clocks : 725 1000 Current Peak : 725 1000 Configurable Peak Range : [550-1000] [1000-1500] GPU load : 99%
Adapter 4 - ATI Radeon HD 5900 Series Core (MHz) Memory (MHz) Current Clocks : 726 1000 Current Peak : 726 1000 Configurable Peak Range : [550-1000] [1000-1500] GPU load : 0% cgminer doesn't see the temp sensors on the second GPU though: GPU 3: [322.9 / 319.7 Mh/s] [Q:119 A:164 R:1 HW:0 E:138% U:4.25/m] Temp: 97.5 C Fan Speed: 100% (4743 RPM) Engine Clock: 725 MHz Memory Clock: 1000 Mhz Vddc: 1.050 V Activity: 99% Powertune: 0% Last initialised: [2011-09-08 18:17:08] Thread 3: 156.0 Mh/s Enabled ALIVE Thread 8: 152.8 Mh/s Enabled ALIVE
GPU 4: [331.7 / 331.0 Mh/s] [Q:111 A:184 R:0 HW:0 E:166% U:4.76/m] Last initialised: [2011-09-08 18:05:30] Thread 4: 157.5 Mh/s Enabled ALIVE Thread 9: 175.3 Mh/s Enabled ALIVE cgminer won't let me change anything on GPU4 either: Select GPU to change settings on: 4 Fan autotune is disabled GPU engine clock autotune is disabled Change [A]utomatic [E]ngine [F]an [M]emory [V]oltage [P]owertune Or press any other key to continue Get enginerange not supported Enter GPU engine clock speed (0 - 0 Mhz): Value is outside safe range, are you sure?
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 12:00:39 AM |
|
Interesting. So some call must be failing on the 2nd core and cgminer is disabling ADL on that card inappropriately. I think I'll just enable ADL on any AMD recognised card.
Do you get anything useful with ADL in the message if you start with -D -T ?
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
toasty
Member
Offline
Activity: 90
Merit: 12
|
|
September 09, 2011, 12:09:47 AM |
|
Interesting. So some call must be failing on the 2nd core and cgminer is disabling ADL on that card inappropriately. I think I'll just enable ADL on any AMD recognised card.
Do you get anything useful with ADL in the message if you start with -D -T ? The only ADL message I get is a "Failed to ADL_Overdrive5_FanSpeedInfo_Get" right at startup: [2011-09-08 19:02:50] Started cgminer 2.0.0 [2011-09-08 19:02:50] Testing pool http:// [2011-09-08 19:02:50] Popping work to stage thread [2011-09-08 19:02:50] Popping work to work thread [2011-09-08 19:02:50] X-Roll-Ntime found [2011-09-08 19:02:50] Successfully retrieved and deciphered work from pool 0 http:// [2011-09-08 19:02:50] Pushing pooltest work to base pool [2011-09-08 19:02:50] Pool 0 http:// active [2011-09-08 19:02:50] Pushing ping to longpoll thread [2011-09-08 19:02:50] Discarded 0 stales that didn't match current hash [2011-09-08 19:02:50] Pushing work to getwork queue [2011-09-08 19:02:50] Popping work to stage thread [2011-09-08 19:02:50] Long-polling activated for http:// [2011-09-08 19:02:50] Failed to ADL_Overdrive5_FanSpeedInfo_Get [2011-09-08 19:02:50] Pushing ping to thread 0 [2011-09-08 19:02:50] Init GPU thread 0 I can confirm that even aticonfig throws an error when trying to get the fan speed of the second GPU: First GPU: aticonfig --pplib-cmd="get fanspeed 0" Fan speed query: Query Index: 0, Speed in percent Result: Fan Speed: 100% Second GPU: aticonfig --pplib-cmd="get fanspeed 0" PPLIB command execution has failed! ati_pplib_cmd: execute "get" failed!
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 12:12:24 AM |
|
Aha! Well that's why it thinks the device doesn't support ADL, because it doesn't support the full feature set. I'm pretty sure I can fix that. Is there only one fan setting for both GPUs then?
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
toasty
Member
Offline
Activity: 90
Merit: 12
|
|
September 09, 2011, 12:13:37 AM |
|
Aha! Well that's why it thinks the device doesn't support ADL, because it doesn't support the full feature set. I'm pretty sure I can fix that. Is there only one fan setting for both GPUs then?
Right, there's just one fan that both GPUs share. Sorry, I didn't even think the fan was possibly causing this.
|
|
|
|
bitlane
Internet detective
Sr. Member
Offline
Activity: 462
Merit: 250
I heart thebaron
|
|
September 09, 2011, 01:16:34 AM |
|
I don't understand how this is possible. CGMiner is the FASTEST miner I have ever used and accomplishes equally impressive results on 3 different generations/sub-generations of cards that I mine with. There have been other miners that are better suited for 69xx or 68xx cards or even 57xx or 58xx, but nothing I have come across that performs well on all platforms. To the lay person (as well as myself at first), I almost felt that by trying this package, that I would almost be going BACKWARDS. but that couldn't be further from the truth, as I replaced MSI Afterburner & Guiminer with simply CGMiner as a do-all program. Comparing dedicated identical machines side-by-side told me everything I needed to know..... What I have experienced:- Constant 5-7% performance increase on 5770, 6870 & 6950 Cards with NO OPTIMIZATION (all auto settings). - Dead-Nutz Clock, Temp and Fan control using the 3 cards above. - the cleanest/easiest installation yet. - Love ? .....LOL For hopeful longevity, I DO NOT INCREASE VOLTAGE on any of my Rigs. Here are the basic settings and contents of the BAT files I use: 5770 Workstations (Mild Static OC using ATI CPL, Dynamic -I) ------------------------------------------------------------ cgminer -o http://pool:port -u username -p password 4x 5770 Dedicated (Simple setup - No problems) ---------------------------------------------- cgminer -o http://pool:port -u username -p password -I 8 -Q 10 --auto-fan --auto-gpu --gpu-engine 950 --gpu-memclock 950 --temp-target 70 4x 6870 Dedicated (Even using -Q 10, still reports Server can not supply work fast enough) ------------------------------------------------------------------------------------------ cgminer -o http://pool:port -u username -p password -I 8 -Q 10 --auto-fan --auto-gpu --gpu-engine 935 --gpu-memclock 935 --temp-target 70 2x 6950 Dedicated (-I 9 too agressive, driver errors, -I 8 stable) ------------------------------------------------------------------ cgminer -o http://pool:port -u username -p password -I 8 -Q 10 --gpu-powertune 20 --auto-fan --auto-gpu --gpu-engine 900 --gpu-memclock 900 --temp-target 70 To say I am happy, would be an understatement. I will definately support and donate to this project. Allan
|
|
|
|
iopq
|
|
September 09, 2011, 01:32:38 AM |
|
try underclocking your mem clock to around 300 mhz or so, or about 1/3 of your core clock
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 02:08:09 AM Last edit: September 09, 2011, 03:34:33 AM by ckolivas |
|
[...] Win32 does not use dlopen so link in -ldl only when not on win32 and display what ldflags are being passed on ./configure. [...]
FreeBSD doesn't have a separate -ldl either, since dlopen() and dlclose() are part of the FreeBSD libc library. The same might be true for MacOSX and any other BSD OS. Thanks, but there's no ADL support on any BSD OS so you won't be using dlopen anyway.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
bitlane
Internet detective
Sr. Member
Offline
Activity: 462
Merit: 250
I heart thebaron
|
|
September 09, 2011, 02:48:28 AM |
|
try underclocking your mem clock to around 300 mhz or so, or about 1/3 of your core clock
I just finished underclocking the memory on all my DEDICATED RIGS that use 5770's, 6870's and 6950's......AND THE RESULT DOESN'T MAKE SENSE (based on my past testing anyways....). Another small performance increase on all platforms, TEMP seems steady with no real change to mention. This has NEVER worked for me before and has nearly always resulted in excessive stales, poor performance and instability, especially with the 6xxx series cards. That also reminds me, forgot to add another thing to my list above: What I have experienced:..... continued.- Constant 6-9% ( 5-7% w/1:1 mem above, 6-9% w/300Mhz Mem) performance increase on 5770, 6870 & 6950 Cards using unoptimized/default settings. - Dead-Nutz Clock, Temp and Fan control using the 3 cards above. - the cleanest/easiest installation yet. - UNDER 1.5% Stale shares. Most times, single digit stales on triple+ digit accepted. - Definately Love.....LOL I am not sure if this makes a difference, but all my Mining Rigs run Windows7 x64 with atleast 4GB of RAM (some have more, because I have it to spare). Also, all my rigs are Intel LGA1366 Based i7 desktop CPUs or LGA1366 Quad-Core Xeons (because I had them, no other reason). For my dedicated Miners, My excessively-SPEC'd CPU/Motherboard setups are in NO WAY a reflection of my desire to increase performance...they were just put to use because they were already here and I didn't have to purchase anything else, for the most part. Can anyone suggest any other CMD LINE optimizations that I might use in my Start-up BAT Files to further increase performance ?Cheers, Allan
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 02:57:49 AM |
|
New version 2.0.1 - links in top post.
Executive summary of new features: Fanspeeds, gpu engine speeds now accept ranges, eg: --auto-gpu --gpu-engine 750-950,945,700-930,960
Temperature targets are per-device, eg: --temp-cutoff 95,105
Disable adl option --no-adl
Should detect more cards that it can monitor/clock now, even if only with partial support, including 2nd cores in dual core cards.
Temps and fanspeeds in status line
Full changelog: - Hopefully fix building on 32bit glibc with dlopen with -lpthread and -ldl - 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. - 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. - Add a --no-adl option to disable ADL monitoring and GPU settings. - Only show longpoll received delayed message at verbose level. - Allow temperatures greater than 100 degrees. - We should be passing a float for the remainder of the vddc values. - Implement accepting a range of engine speeds as well to allow a lower limit to be specified on the command line. - Allow per-device fan ranges to be set and use them in auto-fan mode. - Display which GPU has overheated in warning message. - Allow temperature targets to be set on a per-card basis on the command line. - Display fan range in autofan status. - Setting the hysteresis is unlikely to be useful on the fly and doesn't belong in the per-gpu submenu. - With many cards, the GPU summaries can be quite long so use a terse output line when showing them all. - Use a terser device status line to show fan RPM as well when available. - Define max gpudevices in one macro. - Allow adapterid 0 cards to enumerate as a device as they will be non-AMD cards, and enable ADL on any AMD card. - Do away with the increasingly confusing and irrelevant total queued and efficiency measures per device. - Only display values in the log if they're supported and standardise device log line printing.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
iopq
|
|
September 09, 2011, 02:59:24 AM |
|
you're supposed to use two way vectors, and 256 worksize when you underclock to around 1/3 or sometimes a little higher or lower
so I use -w 256 -v 2 -I 8 --gpu-engine 755 --gpu-memclock 250 on my 5750
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 03:21:16 AM |
|
I don't understand how this is possible.
CGMiner is the FASTEST miner I have ever used and accomplishes equally impressive results on 3 different generations/sub-generations of cards that I mine with.
--snip--
To say I am happy, would be an understatement. I will definately support and donate to this project.
Thanks for the excellent feedback
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
dlasher
|
|
September 09, 2011, 03:24:45 AM |
|
Doh, -lpthread, not -pthread is also an issue it seems?
Anyway, try pulling the git tree again please.
Same problem my friend.. unless I add ldl I get: /usr/bin/ld: cgminer-adl.o: undefined reference to symbol 'dlopen@@GLIBC_2.1' /usr/bin/ld: note: 'dlopen@@GLIBC_2.1' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line /lib/libdl.so.2: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [cgminer] Error 1 make[2]: Leaving directory `/RAM/new/cgminer' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/RAM/new/cgminer' make: *** [all] Error 2
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 03:28:12 AM |
|
Doh, -lpthread, not -pthread is also an issue it seems?
Anyway, try pulling the git tree again please.
Same problem my friend.. unless I add ldl I get: /usr/bin/ld: cgminer-adl.o: undefined reference to symbol 'dlopen@@GLIBC_2.1' /usr/bin/ld: note: 'dlopen@@GLIBC_2.1' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line /lib/libdl.so.2: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [cgminer] Error 1 make[2]: Leaving directory `/RAM/new/cgminer' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/RAM/new/cgminer' make: *** [all] Error 2
Well I honestly am completely baffled since the build has -ldl added... Unless the LDFLAGS are not being passed at all. God I hate autofoo tools. Anyone with a clue out there?
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
toasty
Member
Offline
Activity: 90
Merit: 12
|
|
September 09, 2011, 03:30:07 AM |
|
Same problem my friend.. unless I add ldl I get: /usr/bin/ld: cgminer-adl.o: undefined reference to symbol 'dlopen@@GLIBC_2.1' /usr/bin/ld: note: 'dlopen@@GLIBC_2.1' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line /lib/libdl.so.2: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [cgminer] Error 1 make[2]: Leaving directory `/RAM/new/cgminer' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/RAM/new/cgminer' make: *** [all] Error 2
If you're pulling from git, make sure you re-run autogen.sh or you won't see his change for this.
|
|
|
|
bitlane
Internet detective
Sr. Member
Offline
Activity: 462
Merit: 250
I heart thebaron
|
|
September 09, 2011, 04:12:14 AM |
|
you're supposed to use two way vectors, and 256 worksize when you underclock to around 1/3 or sometimes a little higher or lower
so I use -w 256 -v 2 -I 8 --gpu-engine 755 --gpu-memclock 250 on my 5750
Thanks for the tips so far. They have all really helped. I will give this a shot as well. I completely forgot about toying with WORK size as everything has just been so impressive thus far. Onto the next step in optimizing.... Could someone please help by explaining the '-s <arg>' flag ?Is this simply a work timeout ? Like with the default being '60', if a worker thread is unable to calculate/submit a hash within 60 seconds, it simply ditches the work and moves on to the next work unit ?, rather than being stuck for any longer and wasting time ? As a PPS Miner, I would really like to get the highest share/hour count that I can....which also brings me to effective worker thread counts. CGMiner is a great monitoring tool to help with this in small incriments during optimizations that one might try. On average, what would be a sufficient Mh/s per thread ? what would be counter productive ? With Default being 2, my 5770's @ 220 Mh/s seem to work quite well. With this in mind, should I change to 3 threads for my 6870's (300 Mh/s) and perhaps 4 threads for my 6950's (just under 400 Mh/s) ? Would using a combination of a lower work unit timeout (-s flag) and increased thread count (1 thread per 100 Mh/s) be an effective optimization strategy ? Hopefully I understood the concept of the -s flag, otherwise, this post was mostly a waste and it's back to the drawing board....LOL Allan
|
|
|
|
-ck (OP)
Legendary
Offline
Activity: 4284
Merit: 1645
Ruu \o/
|
|
September 09, 2011, 04:22:33 AM |
|
Changing S will not significantly change much of anything at all I'm afraid. Your GPU will probably finish a work item in significantly less than 1 minute and then get more work. The 1 minute cutoff is used to decide the latest possible that a solution would be allowed to be submitted. So if you find a share in say 30 seconds, you have up to 30 more seconds to submit it (bad network conditions will limit that). cgminer only gets work as often as it needs to keep your GPU busy, and GPUs should never run out and hit the 1 minute cutoff unless you significantly increase the number of threads per GPU. The other thing is cgminer can use existing work to generate more work (rolltime it's called) to keep getting useful shares out of the same work for up to 1 minute. If you significantly decrease -s to less than how long it takes for your GPU to find a share, you are more likely to throw work away unnecessarily. All in all, don't bother changing it, but it would be ideal to get at least 1/m Utility (i.e. 1 accepted share per minute) per thread, which would be 2 per device.
|
Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel 2% Fee Solo mining at solo.ckpool.org -ck
|
|
|
|