Author

Topic: 5970 2nd GPU woes (Read 6459 times)

full member
Activity: 146
Merit: 100
January 26, 2013, 03:17:05 AM
#14
I know this is an old thread, but it sounds like you guys might know what is going on.
I'm trying to set up 2 video cards with one monitor on my Linux Mint 14 system using cgminer.
1 card was working just fine, Installed the second card and linux would no longer boot.  Reinstalled the newest ATI drivers 13,1 and the computer booted.
My cinammon desktop is gone and there is 2 of everything on my taskbar.  I believe it's displaying 2 of everything since it is set up to dual monitors??
Good news is, cgminer is recognizing both cards.

This is what my xorg.conf looks like

Section "ServerLayout"
Identifier "aticonfig Layout"
Screen 0 "aticonfig-Screen[0]-0" 0 0
Screen "aticonfig-Screen[1]-0" RightOf "aticonfig-Screen[0]-0"
EndSection

Section "Module"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[0]-0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[1]-0"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Device"
Identifier "aticonfig-Device[0]-0"
Driver "fglrx"
BusID "PCI:3:0:0"
EndSection

Section "Device"
Identifier "aticonfig-Device[1]-0"
Driver "fglrx"
BusID "PCI:2:0:0"
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device "aticonfig-Device[0]-0"
Monitor "aticonfig-Monitor[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "aticonfig-Screen[1]-0"
Device "aticonfig-Device[1]-0"
Monitor "aticonfig-Monitor[1]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

So what do i need to fix here to get cgminer recognizing both cards while only using 1 monitor and not messing up my desktop environment?
ahu
newbie
Activity: 15
Merit: 0
May 10, 2011, 02:11:40 PM
#13
TheManOfTown, I think it's not necessary to disable Crossfire. But on Windows 7 you have to have both GPU cores attached to a monitor or a dummy VGA.

For me the working solution was to Use Diablo miner and have Catalyst Control Center not running (I disabled it with msconfig.exe).
hero member
Activity: 868
Merit: 1000
May 10, 2011, 10:58:06 AM
#12
I have the exact same problem, but I am running windows 7. I have a dual 5970 rig, and the 2nd gpu on the 2nd card will just not mine. It starts for a little while, and then it shuts down.

I read about the solution in this thread to disable crossfire, how is that done in windows 7? I tried to use Catalyst Control Center to see if I could figure it out, but it was not obvious how to do it. Anyone knows anything about it? I will pay 10 BTC to whoever will help me figure this out and let me have a working solution.

Here is my thread:
https://bitcointalksearch.org/topic/windows-7-64-bit-dual-5970-rig-question-7389
sr. member
Activity: 308
Merit: 251
April 30, 2011, 01:07:14 PM
#11
a little bash script to start up mining. Feel free to change what you like to suit you Cheesy

Code:
#!/bin/bash
# poclbm starter for linux by drgr33n.
# Remember to set your vars !!

USERNAME=""
PASSWORD=""
URL=""
NVIDIA_FLAGS=""
ATI_FLAGS=""
CPU_FLAGS=""

i=0

if [ test !-f ./poclbm.py ]; then
        echo "You need this file to be in poclbm's root directory !!";
        exit;
fi

while read -r; do
    if [[ $REPLY = *VGA* ]]; then
        arr[i++]=${REPLY##*: }
    fi
done < <(lspci)

for k in "${!arr[@]}"; do
    printf 'GPGU %d is %s\n' "$((k+1))" "${arr[@]%% *}"
    printf 'Starting poclbm on GPGPU %d\n';
    echo $k;
    sleep 15;
    if [ "${arr[@]%% *}" == "NVIDIA" ]; then
        DISPLAY=:0.$k ./poclbm.py -d $k -u $USERNAME -p $PASSWORD -o $URL -P $PORT $NVIDIA_FLAGS&
        echo "Done.";
    elif [ "${arr[@]%% *}" == "ATI" ]; then
        export GPU_USE_SYNC_OBJECTS=1;
        DISPLAY=:0.$k aticonfig --pplib-cmd "set fanspeed 0 75"
        DISPLAY=:0.$k ./poclbm.py -d $k -u $USERNAME -p $PASSWORD -o $URL -P $PORT $ATI_FLAGS&
        echo "Done.";
    else
        ./poclbm.py -d $k -u $USERNAME -p $PASSWORD -o $URL -P $PORT $CPU_FLAGS&
        echo "Done.";
    fi
done

Code:
 And here's a little script I use to check my balance and temps etc.

[code]
while true; do
        DISPLAY=:0 aticonfig --adapter=0 --od-gettemperature | tail -n1 | awk '{print "Current temp: " $5}' ;
        DISPLAY=:0.1 aticonfig --adapter=0 --od-gettemperature | tail -n1 | awk '{print "Current temp: " $5}' ;
        DISPLAY=:0 echo $(aticonfig --odgc | grep GPU);
        DISPLAY=:0.1 echo $(aticonfig --odgc | grep GPU);
# Next lines are to check your balance if solo mining
#        BALANCE=$(bitcoind getbalance)
#        echo -ne "Bitcoin Balance: ${BALANCE}\r";
        sleep 35;
        clear
done

These are handy for starting mining while physically at the miner or sshing into it Cheesy You could tie them all up into one script if you like ?[/code]
newbie
Activity: 56
Merit: 0
April 29, 2011, 07:34:09 PM
#10
Thanks!  I'm still a little new to getting around in bash.   Roll Eyes
sr. member
Activity: 392
Merit: 250
April 29, 2011, 06:52:52 PM
#9
I might just start a new thread, but I thought I would try this first. 

How to you control your over clocking of both cards to be 920/300? 

Is there a way to do it manually? I've tried some of the commands, but ATI doesn't let me go below 900 memory speeds, and that is unacceptable.

I'm using AMDOverdirveCTRL right now, but it only works on the first card. 

AMDOverdirveCTRL defaults to the first adapter, you have to manually specify other adapters.

Do AMDOverdriveCtrl --help, it should list a number of adapters.

Look for index numbers that are active and run

AMDOverdriveCtrl -b -i # OverDriveFile (# being the active index number)

The man page is also helpful
newbie
Activity: 56
Merit: 0
April 29, 2011, 06:28:40 PM
#8
I might just start a new thread, but I thought I would try this first. 

How to you control your over clocking of both cards to be 920/300? 

Is there a way to do it manually? I've tried some of the commands, but ATI doesn't let me go below 900 memory speeds, and that is unacceptable.

I'm using AMDOverdirveCTRL right now, but it only works on the first card. 
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
April 07, 2011, 01:51:59 AM
#7
Every terminal window you open has a different display number. Any window you open you will need to first execute, you will also need to do this before most commands.

export DISPLAY=:0

Run your poclbm after that and see if both (all) your devices show up in that list.


Kind of ... to see what DISPLAY a terminal is attached to, inside the terminal you do a

$env

and it will list the environment variables of the shell attached to that terminal ... in amongst those variables is
DISPLAY={something or rather}

When you do an $export you are setting an environment variable (or not if you screw it up).
Some Unices you can also do a $setenv or $getenv also ....

When you do the
$export DISPLAY=:0

you are accessing all the sub displays associated with the root display '0'

0.0
0.1
0.2
... et etc

In ubuntu if you want your terminals to always come up with the DISPLAY variable set to 0 (always referencing root display) you can put this line in the user .bashrc

export DISPLAY=:0

I've found the newer driver fglrx version 11.2 doesn't need the DISPLAY variable to be set to '0' to make all cards available to OpenCL ... DISPLAY=:0.0 sees them all also.
full member
Activity: 213
Merit: 100
April 06, 2011, 02:17:01 PM
#6
I think it's working now. I haven't seen any invalid blocks since my last post.
member
Activity: 79
Merit: 10
April 05, 2011, 04:21:33 PM
#5
What power supply do you have? This sounds like a power problem.
sr. member
Activity: 392
Merit: 250
April 05, 2011, 01:53:44 PM
#4
Every terminal window you open has a different display number. Any window you open you will need to first execute, you will also need to do this before most commands.

export DISPLAY=:0

Run your poclbm after that and see if both (all) your devices show up in that list.
full member
Activity: 213
Merit: 100
April 05, 2011, 12:20:05 PM
#3
ok, thanks moa. I don't need any monitors except for what's required for mining.
I had no idea to use those aticonfig parameters "aticonfig --initial --adapter=all -f",
they generated a completely different xorg.conf than the other two xorg.conf files I've used.

I got two DiabloMiners running, one on each GPU with no loss in hashrate, unlike before.
I uninstalled poclbm's dependencies so I will simply wait and see if any invalid blocks show up.
I set fan to 100. Thanks again.
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
March 28, 2011, 09:18:32 PM
#2
Do you want/need two monitors or is this a mining rig?

If you want to do just mining, you could unplug one monitor and instead of
$aticonfig --initial

do a

$ sudo aticonfig --initial --adapter=all -f

??

One adapter (GPU) should be assigned to display 0.0 and the next to 0.1 (screens 0 and 1 in xorg.conf).

It seems they are both assigned to the same adapter ... xorg is a pig that shouldn't really be used for assigning computational power of GPU but that is the way it is right now since they are historically graphics cards, not crunchers. Confusing it with trying to be clever graphics power and mining compute node is not the way to go.

If you can get something like the below in your /etc/X11/xorg.conf file, after turning off crossfire and running the "$aticonfig --initial --adapter=all -f" command you'll be in better shape. You must restart after running aticonfig also (only Xserver actually but just reboot for good measure).

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
Section "ServerLayout"
        Identifier     "aticonfig Layout"
        Screen      0  "aticonfig-Screen[0]-0" 0 0
        Screen         "aticonfig-Screen[1]-0" RightOf "aticonfig-Screen[0]-0"
EndSection

Section "Module"
EndSection

Section "Monitor"
        Identifier   "aticonfig-Monitor[0]-0"
        Option      "VendorName" "ATI Proprietary Driver"
        Option      "ModelName" "Generic Autodetecting Monitor"
        Option      "DPMS" "true"
EndSection

Section "Monitor"
        Identifier   "aticonfig-Monitor[1]-0"
        Option      "VendorName" "ATI Proprietary Driver"
        Option      "ModelName" "Generic Autodetecting Monitor"
        Option      "DPMS" "true"
EndSection

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:3:0:0"
EndSection

Section "Device"
        Identifier  "aticonfig-Device[1]-0"
        Driver      "fglrx"
        BusID       "PCI:4:0:0"
EndSection

Section "Screen"
        Identifier "aticonfig-Screen[0]-0"
        Device     "aticonfig-Device[0]-0"
        Monitor    "aticonfig-Monitor[0]-0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "Screen"
        Identifier "aticonfig-Screen[1]-0"
        Device     "aticonfig-Device[1]-0"
        Monitor    "aticonfig-Monitor[1]-0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
in a terminal give it a
$export DISPLAY=:0
$./poclbm.py
and check that the Cypress chip is identified with adapters [1] and [2], these are your GPUs

now open a new terminal and give it a
$export DISPLAY=:0
$./poclbm.py [other options] -d1

and open yet another terminal and give it a
$export DISPLAY=:0
$./poclbm.py [other options] -d2

that should get both GPUs mining full tit, if that is the only thing you want ....

Quote
Is there a way to verify GPU #2 is functioning properly other than by running mining software?

On the adapter you are suspect of, try running
$fgl_glxgears

so on the first screen
$export DISPLAY=:0.0
$fgl_glxgears

on the second screen
$export DISPLAY=:0.1
$fgl_glxgears

should give you some spinning gears things and a decent frame-rate ... you can go the whole hog and set up "phoronix-test-suite" and run "unigine-heaven" on just that GPU ... keep a eye on temperature when running these tests also
$watch -n1 aticonfig --odgt --adapter=all


Quote
I have no idea how to change fan speeds
$export DISPLAY=:0.0 ; aticonfig --pplib-cmd "get fanspeed 0 "
should return you the fan speed for the card
$export DISPLAY=:0.0 ; aticonfig --pplib-cmd "set fanspeed 0 64"

sets the fan speed to 64%

NB: anyone who has a second card the fan can found at display 0.2 (not display 0.1 !)
$export DISPLAY=:0.2 ; aticonfig --pplib-cmd "set fanspeed 0 64"
full member
Activity: 213
Merit: 100
March 28, 2011, 11:48:56 AM
#1
I have a 5970 with no overclocking on Debian stable (Squeeze), ATI Stream SDK 2.1 and fglrx 10.9.3.  
If I run one of poclbm or DiabloMiner on just the first GPU, either one gets 270Mhash/second.
If I try to run poclbm on the 2nd GPU (-d 2), within 1 minute claims "Verification failed" a large number of times, and exits.
If I try to run DiabloMiner on the 2nd GPU (-D 1,2), it runs for a long time with no errors,
getting 510-530Mhash/second.  I use -f 1, because every other value I tried has lower hash rate.
Every few hours, DiabloMiner will display 5-20 lines of "Invalid block found" (on GPU #2) and just keeps hashing.

ArtForz tried to help me with poclbm on IRC but ran out of ideas.  His theory is that any sort of verification failed
is due to CrossFire being turned on.  At first I just took this at face value and believed it. Is it true?
Here's how I run: I use aticonfig --initial to generate a xorg.conf which utilizes both outputs.
Both monitors show the same screen all the time.  Both are on "DISPLAY=:0.0".
Below are the output of aticonfig --lscs and --lsch.  
I can get lscs to show CrossFire disabled but it says I need to restart X to take effect,
and doing so causes it to show CrossFire enabled again.  I can delete the chain altogether,
restart X, and it re-creates the chain and definitely turns CrossFire back on. This is the best I've been able to do:

$ sudo aticonfig --lscs
    Candidate Combination:
    Master: 3:0:0
    Slave: 4:0:0
    CrossFire is enabled on current device
    CrossFire Diagnostics:
    There is CrossFire Side port connection between GPUs
    CrossFire can work with P2P write through peer aperture
    Dongle Capabilities: support PASSTHROUGH |INTERLINK_SW_AFR | INTERLINK_AUTO_AFR | INTERLINK_BLACKING | INTERLINK_SUPERAA

$ sudo aticonfig --lsch

CrossFire chain for adapter 0, status: disabled
  0. 03:00.0 ATI Radeon HD 5900 Series
  1. 04:00.0 ATI Radeon HD 5900 Series


I've tried "aticonfig --initial=dual-head".  The resulting xorg.conf causes two monitors to show different desktops
and one is DISPLAY=:0.0 and the other is DISPLAY=:0.1.  In this case, both poclbm and DiabloMiner
only find one GPU (#1), from either display.  I can run two miners (either poclbm or DiabloMiner)
at a time on GPU #1, but only one gets full hashrate, the other gets under 200khash/sec.
Crossfire is definitely disabled completely in the dual-head setup.

Running two copies of DiabloMiner, one one each card, on single-head X setup results in only one instance
with a decent hashrate, the other gets about 2Mhash/s.

Can anyone help here?  Are occasional invalid blocks in DiabloMiner normal, or is DiabloMiner
simply failing to check its work as thoroughly as poclbm?  Am I wasting
power by mining on GPU #2, and it will never generate a valid block?  
Is there a way to verify GPU #2 is functioning properly other than by running mining software?
Is GPU #2 just bad?  Should I mine on it anyway?  Is there a way to get CrossFire to show completely disabled and mine
using both GPUs? Should I upgrade to sid, with a newer fglrx?  Should I try ATI APP SDK 2.4 beta?

Do I need better cooling?  I have no idea how to change fan speeds, but I do have
a crappy case with the case off and a desk fan blowing on the video card.
$ sudo aticonfig --odgt

Default Adapter - ATI Radeon HD 5900 Series
                  Sensor 0: Temperature - 80.50 C
Jump to: