채굴게시판에 적었지만, 자유게시판만 보시는 분들도 있어서 많은 분들이 보시라고
자유게시판에도 추가작성합니다.
많이 아시는 분들 있겠지만, 팀레드마이너의 클럭/전압 설정기능은 Navi 이상 기종들에 대해
윈도우에서만 동작하고, 리눅스/하이브 계열에서는 해당 명령이 무시됩니다.
근데, 하이브 자체 오버클럭 메뉴에서는 AMD 계열의 메모리 최저클럭 설정 ( 메모리클럭 96MHz )
이 먹지 않습니다.
제가 이전 글에서 AMD 기종들의 메모리클럭을 최저치로 낮추는 방법을 소개했었습니다.
amdcovc 명령을 이용하는 방법이죠.
amdcovc cmemclk:0=96 csocclk:0=872 cfclk:0=1551
위 명령을 통해, 메모리/SoC/F 클럭을 모두 최저치로 낮출 수 있습니다.
카스파 / 알리페움 / RXD / IRONFISH 등처럼 코어에만 영향받고 메모리대역폭을 전혀
요구하지 않는 코인들은 96까지 낮춰야 하고, DNX / NEXA 처럼 메모리대역폭에 아주
조금 영향을 받는 코인들은 메모리클럭을 한단계정도만 위로 설정해 주시면 그게
가장 최적의 전성비 설정이죠.
하지만, 위같은 설정을 자동으로 적용시키려면 매번 하이브에서 수동으로 명령을
내려줘야 합니다. 물론 능숙하신 분들은 Crontab 기능을 이용해서 부팅시 자동 적용되도록
할 수 있겠죠. 하지만 그 방법조차, 중간에 다른 성향의 코인으로 바꾸거나 할때 ( 카스파 => DNX )는
일일히 다시 수동입력하거나 Crontab 설정을 바꿔야 합니다.
이것을 근본적으로 해결하는 방법입니다.
그건 바로 팀레드마이너 0.10.10 부터 도입된 외부 스크립트 실행기능 --event_script 기능을
이용하는 방법입니다. 위 기능은 특정 이벤트에서 외부의 쉘스크립트를 실행할 수 있도록 해줍니다.
일단 자신이 지금 쓰고 있는 팀레드마이너 버전의 실행파일이 있는 디렉토리에
쉘을 작성해야 합니다. 예를 들어 지금 가장 최신 버전인 0.10.12 라면
/hive/miners/teamredminer/0.10.12
가 되겠죠?
해당 디렉토리에 자신이 캐는 코인을 위한 쉘을 만듭니다. 저는 두가지 성향의 코인이 있기 때문에
쉘을 두가지로 만들었습니다. mem96.sh 와 mem456.sh 입니다.
( 참고로 AMD 6000 계열의 최저클럭은 96이지만 5000계열이나 예전 폴라리스계열등은 전부 다릅니다.
자신의 그래픽카드에 적용될 수 있는 메모리클럭을 그냥 amdcovc 를 입력하면 알 수 있습니다. )
아래는 제꺼 6800XT 의 amdcovc 명령 화면 결과입니다.
메모리 클럭은 96 , 456 , 673, 1000 이렇게 네가지가 있죠?
카스파 / 알리페움 / RXD / IRONFISH 들은 96으로 맞추면 될꺼고
DNX / NEXA 등은 456이나 673으로 맞추시면 됩니다. 자신이 시험해 보고
자신의 제품에서 해시가 깎여나가지 않는 최저 메모리클럭으로 하시면 됩니다.
아무튼 이제 쉘을 작성할 차례입니다. vi 에디터를 써서 작성해야 하는데
vi 에디터의 사용법을 잘 모르시겠는 분들은 에디터 사용법을 찾아서 익히고
오시는게 편합니다.
제가 작성한 예제입니다. /hive/miners/teamredminer/0.10.12/mem96.sh
#!/bin/bash
case $1 in
MINER_START) amdcovc cmemclk:all=96 csocclk:all=872 cfclk:all=1551
;;
*)
echo "Unknown Case : '$1'"
exit 1
esac
팀레드 마이너는 --event_script 옵션이 실행되는 경우는 현재 기준 총 세가지입니다.
MINER_START 는 쉽게 알수 있는 것처럼 마이너가 최초 실행되는 경우입니다.
그외에 두가지 ( PRIMARY_ALGO / SECONDARY_ALGO ) 가 더 있지만, 그것들이
언제 쓰이는지는 지금 단계에서 별로 필요가 없으니 직접 알아보시기 바랍니다.
즉, MINER_START 에 넣어놓은 명령은 최초 마이너 실행시 자동 실행되는 겁니다.
팀레드 마이너는 --event_script 를 실행할때 파라메터값을 $1 으로 넘깁니다.
그래서 그 $1 값을 case 명령으로 나눠서 처리하면 되는거죠.
쉘이 다 만들어 졌다면, 위처럼 만든 쉘파일이 실행가능한 형태가 되야 합니다.
chmod 777 mem96.sh
그렇게 한 다음 하이브의 추가 구성부분에 이렇게 옵션을 넣어주시면 됩니다.
--event_script=mem96.sh
그러면 마이너 실행시 자동으로 메모리/SoC/F 클럭이 최저로 바뀌는 것을 볼 수 있을 겁니다.
이제 일일히 수동명령을 할 필요가 없겠죠?
자동으로 잘 실행되죠?
눈치좋으신 분들은 아시겠지만, DNX / NEXA 계열의 경우는 쉘에서 96으로 되어 있는 부분만
자신이 원하는 메모리클럭으로 바꿔주시면 됩니다. SoC클럭등은 그냥 최저로 두셔도 충분합니다.
단, 이더계열처럼 메모리의존도가 높은 코인의 채굴시에는 SoC의 클럭도 높여줘야 해시가 떨어지지
않습니다.
아무튼 이렇게 하면 AMD계열도 마이너 시작시에 자동으로 매모리 클럭적용이 가능합니다.
또한 이 기능을 이용하면 클럭 적용기능 말고도, 마이너 실행시 자동으로 다른 명령이 실행되게 하고 싶은
분들은 쉘에 추가하시면 됩니다.
지포스계열의 경우 주요마이너들이 이미 코어클럭/코어오프셋/메모리클럭 적용 기능이 있기 때문에
이런 외부스크립트를 동원할 필요가 없지만, 혹시나 그래도 클럭/전압 외에 다른 이용로 외부 쉘을
마이너 동작과 함께 실행하고자 하시는 분들의 경우 Bzminer 에도 거의 동일 기능이 있기 때문에
연구해 보시면 되실 겁니다.
ps. 뭐... 자세히 적지는 않겠습니다만... 아마 지금 이 스크립트 기능이 얼마나 유용한지 몇몇 분들은
이미 눈치채셨을 겁니다. 특히 제가 이 글에 적지 않은 파라메터 기능들 말이죠. 단, 절대 저에게
이 기능 관련해서 뭔가 더 알려달라고 메모를 보내시면 안됩니다. 해당 메모에는 답장을 하지 않겠습니다.