Скрипт для автоперебора частот в bfgminer: различия между версиями
Материал из Linux Wiki
				
				
				Перейти к навигацииПерейти к поиску
				
				Rain (обсуждение | вклад)   (Новая страница: «Скрипт, показанный ниже, перебирает частоты ядра и/или памяти для указанной карты в bfgminer …»)  | 
			
(нет различий) 
 | 
Текущая версия от 18:31, 9 января 2014
Скрипт, показанный ниже, перебирает частоты ядра и/или памяти для указанной карты в bfgminer или cgminer. Будет полезен при поиске максимального хэшрейта на майнинге scrypt-криптовалют. Для управления используется Python-скрипт для доступа к API. Для его работы необходимо в конфиге майнера включить следующие опции:
"api-port" : "4028", "api-allow" : "W:127.0.0.1", "api-listen" : true,
Все параметры задаются несколькими переменными в начале скрипта. Для отключения перебора по одному из параметров (например, перебирать только частоты ядра при фиксированной частоте памяти) указывайте одно значение, а не диапазон. Переменные *shift задают инкремент для соответствующего параметра.
#!/bin/bash
api='./api-example.py'
timeout='20'
cardnum='0'
core='800-805'
coreshift='1'
mem='1000'
memshift='5'
startcore="${core/-*/}" ;   [[ "${core}" =~ '-' ]] &&   stopcore="${core/*-/}" ||   stopcore="${startcore}"
startmem="${mem/-*/}" ;     [[ "${mem}" =~ '-' ]] &&    stopmem="${mem/*-/}" ||     stopmem="${startmem}"
core="${startcore}"
mem="${startmem}"
while :
do
    $api devs | sed 's/,/,\n/g' | sed -n "/u'GPU': "$cardnum"/,/Memory/p" |
    awk '
        /GPU Clock/{
            c=$3
            gsub(/,/, "", c)
        }
        /Memory Clock/{
            m=$3
            gsub(/,/, "", m)
        }
        /MHS 5s/{
            h=$3
            gsub(/,/, "", h)
        } END {
        print "C:"c, "M:"m , "S:"h
}'
    [ "${core}" -ge "${stopcore}" ] && {
        [ "${mem}" -ge "${stopmem}" ] && break || {
            core="${startcore}"
            mem=$(($mem+$memshift))                                                                                                                            
        }
    } || let core+="${coreshift}"
   
    $api gpuengine $cardnum,$core 1>/dev/null
    $api gpumem $cardnum,$mem 1>/dev/null
    sleep "${timeout}"
done