Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #######
- #config
- #######
- cgminer_config_path="/home/bigmsi/.cgminer/"
- #filename for config files should be "test0.conf",
- #"test1.conf", "testX.conf" where X is device number
- #intencity will not change during tests
- Intencity=9
- #each iteration test time in seconds
- duration=180
- #directory where to save result files
- results="test"
- #result files prefix
- prefix="test"
- #ranges to test in
- kernel="diakgcn phatk diablo poclbm"
- worksize="64 128 256"
- vectors="1 2 4"
- engine_clock_from=930
- engine_clock_to=930
- engine_clock_step=5
- memclock_from=150
- memclock_to=300
- memclock_step=5
- #######
- #end config
- #######
- d=0
- if [ $# -ge 1 ]
- then
- d=$1
- fi
- cards=`./cgminer -n | grep "devices:" | sed 's/.*devices: //'`
- if [ $d -ge $cards ]
- then
- echo "Device number out of available range! Dev found: $cards"
- exit 1
- fi
- makeParams()
- {
- if [[ $d -eq 0 ]]
- then
- str="$1"
- else
- str="0"
- fi
- if [[ $cards -gt 1 ]]
- then
- for i in $(seq 1 1 $(($cards - 1)))
- do
- if [[ $i -eq $d ]]
- then
- str="$str,$1"
- else
- str="$str,0"
- fi
- done
- fi
- echo "$str"
- }
- engine=$(seq $engine_clock_from $engine_clock_step $engine_clock_to)
- meclock=$(seq $memclock_from $memclock_step $memclock_to)
- sec_left=0
- tmp=`echo $kernel | wc -w`
- let "sec_left += tmp"
- tmp=`echo $worksize | wc -w`
- let "sec_left *= tmp"
- tmp=`echo $vectors | wc -w`
- let "sec_left *= tmp"
- let "tmp = engine_clock_to - engine_clock_from"
- let "tmp /= engine_clock_step"
- if [ $tmp -eq 0 ]
- then
- tmp=1
- fi
- let "sec_left *= tmp"
- let "tmp = memclock_to-memclock_from"
- let "tmp /= memclock_step"
- if [ $tmp -eq 0 ]
- then
- tmp=1
- fi
- let "sec_left *= tmp"
- let "tmp = duration + 35"
- let "sec_left *= tmp"
- mkdir $results
- mkdir $results/$prefix
- #kernels
- for k in $kernel
- do
- mkdir $results/$prefix/$k
- for w in $worksize
- do
- mkdir $results/$prefix/$k/w$w
- for v in $vectors
- do
- mkdir $results/$prefix/$k/w$w/v$v
- for m in $meclock
- do
- mkdir $results/$prefix/$k/w$w/v$v/m$m
- for e in $engine
- do
- let sec_left=sec_left-duration-35
- echo "-v$v -w$w -k$k --gpu-memclock=$m --gpu-engine=$e"
- etamin=$(( $sec_left / 60 ))
- etasec=$(( $sec_left % 60 ))
- printf "ETA: %02d:%02d" $etamin $etasec
- echo ""
- if [ -f $results/$prefix/$k/w$w/v$v/m$m/e$e.json ]
- then
- echo "File exist"
- continue
- fi
- touch $results/$prefix/$k/w$w/v$v/m$m/e$e.json
- screen -dmS minertester$d ./cgminer -d$d --remove-disabled -c $cgminer_config_path/test$d.conf -v$v -w$w -k$k --gpu-memclock=$(makeParams $m) --gpu-engine=$(makeParams $e) -I$(makeParams $Intencity) --api-allow=W:127.0.0.1 --api-port=$((4029+$d))
- for sec in $(seq 0 5 $duration)
- do
- echo -ne " = Time left: $(($duration-$sec)) \r"
- sleep 5
- done
- echo '{"command":"summary","parameter":""}' | nc localhost -w1 $((4029+$d)) > $results/$prefix/$k/w$w/v$v/m$m/e$e.json
- echo '{"command":"quit","parameter":""}' | nc localhost -w1 $((4029+$d)) >/dev/null
- sleep 30
- if screen -ls | grep minertester$d
- then
- rm $results/$prefix/$k/w$w/v$v/m$m/e$e.json
- touch reboot_required
- echo $'X server hang. reboot required\a'
- exit 1
- fi
- done
- #done eng
- done
- #mem done
- done
- #done vectors
- done
- #done worksize
- done
- #done kernels
- echo "Done"
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement