Not sure if this is covered already somewhere, but as a newbie i need a substantial first post, so I thought this might be usefull.
I'm found myself in the following situation. I had 2 HD7950's and got my hands on a R9 280X, all XFX. Turns out that the 280x runs best using gpu-threads setting 2 and the HD7950's on gpu-threads 1. As this is a global setting per cgminer setting you can and have to specify it in one go without seperate settings per card for each cgminer process. However when I launched seperate instances of cgminer with this distinction my overal performance on all cards dropped by 100 to 150Khs.
I'm running Linux Xubuntu and cgminer 2.11.4.
To overcome this I have done the following.
I setup 2 workers in the pools I mine for, not really needed but you can easily see in the pools what GPU is connecting. I also launch 2 cgminer processes now, not using a json stile config, but in command line format. This because I wasn able to address the 2 HD7950's in 1 config file. The "device" option didn't allow for 2 GPU's.
So I have a script that calls 2 other scripts to start the different cards into screen sessions like below. First line uses "-d 0 -d 1" to call the first two cards being the HD7950's using worker1. The 2nd line uses -d 2 to call the R9 280X using worker2.
Also note when starting cgminer process 2, settings between the 2 processes would get mangled. I added the "--remove-disabled" option to both startups and I'm getting better performance because both processes don't interfere with eachother anymore.
cgminer.shfind *.bin -delete
sleep 2
# Start HD7950s
screen -dmS cgm0 ./cgminer.hd7950.sh
sleep 2
# Start R9 280X
screen -dmS cgm1 ./cgminer.r9-280x.sh
cgminer.hd7950.shexport GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export DISPLAY=:0
#
# Start HD7950s
screen -dmS cgm0 ./cgminer --scrypt -o <url> -u worker1 -p xyz --failover-only -o <url> -u worker1 -p 456 -d 0 -d 1 --remove-disabled -I 19 -w 256 --thread-concurrency 24000 --gpu-powertune 20 -v 1 --gpu-engine 1110 --gpu-memclock 1575 --auto-fan --auto-gpu --no-submit-stale --scan-time 30 --gpu-fan 30-85 --temp-cutoff 90 --temp-overheat 85 --temp-target 80 --api-port 4028 --api-listen --api-network
cgminer.r9-280x.shexport GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export DISPLAY=:0
#
#Start 280x
screen -dmS cgm1 ./cgminer --scrypt -o <url> -u worker2 -p xyz --failover-only -o <url> -u worker2 -p 456 -d 2 --remove-disabled -I 13 -g 2 -w 256 --thread-concurrency 8192 --gpu-powertune 5 -v 1 --gpu-engine 1026 --gpu-memclock 1498 --auto-fan --auto-gpu --no-submit-stale --scan-time 30 --gpu-fan 30-85 --temp-cutoff 90 --temp-overheat 85 --temp-target 80 --api-port 4029 --api-listen --api-network
With these settings i get 650+ each on my XFX HD7950's and 710+ on my XFX R9 280x.
XFX HD7950's[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 0: 78.0C 3515RPM | 652.0K/648.8Kh/s | A:92 R:1 HW:0 U: 2.74/m I:19
GPU 1: 77.0C 2920RPM | 653.6K/650.6Kh/s | A:88 R:0 HW:0 U: 2.62/m I:19
XFX 280x[P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
GPU 2: 78.0C 1614RPM | 730.7K/711.3Kh/s | A:1135 R:109 HW:0 U:36.49/m I:13