Bitcoin Forum

Other => Beginners & Help => Topic started by: xKingx on December 30, 2013, 06:48:44 PM



Title: Multiple cgminer processes to run scrypt based coins
Post by: xKingx on December 30, 2013, 06:48:44 PM
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.sh
Code:
find *.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.sh
Code:
export 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.sh
Code:
export 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
Code:
[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
Code:
[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



Title: Re: Multiple cgminer processes to run scrypt based coins
Post by: Stan-O on December 30, 2013, 06:58:49 PM
i had to do the same thing with r9 270x and r9 280x in my miner.  seperate cgminer instances fixed most of my issues.

one problem i'm still seeing is, settings from 2nd instance overwriting settings on 2nd instance.  i do not use a config file either.  it just seems to cause more headaches than it's worth.

just need to find the magic driver/cgminer version combination, that will let both cards run for more than a few hours at a time.   


Title: Re: Multiple cgminer processes to run scrypt based coins
Post by: narada on January 02, 2014, 01:53:10 AM
if you want to try the json-based config you can use 'device' : '1,2' to indicate which devices should be addressed.  works for me.  i like the --remove-disabled flag idea.