버전 1.223에서 에서 이상 작동 부문을 다 고친듯 합니다.
1. 패치 파일
전체파일 : wget http://factorn.iptime.org:32080/test/fact_dist_20_04_v1.22.RTX30XX.tar.gz
업데이트 1.62 -> 1.22 : wget http://factorn.iptime.org:32080/test/fact_dist_20_04_v1.062-to-v1.22.RTX30XX.tar.gz
업데이트 1.20 -> 1.22 : wget http://factorn.iptime.org:32080/test/fact_dist_20_04_v1.20-to-v1.22.tar.gz
아직 개발실(18대 규모)에서 테스트중이고 find가 뜨지 않아서 정식 배포는 아니지만 큰 문제가 없어 공개합니다.
패치내용은 이전 1.223버전에 그 내용들이 있습니다.
https://www.ddengle.com/mining/19803012
2. CUDA-ECM을 활용하는 방법을 예시로 하여 구체적으로 설명 하겠습니다.
목표 :
- CUDA-ECM을 사용하여 빠른 처리를 원한다.
- 그리고 CUDA-ECM 서버는 4090 듀얼이다.
- CPU-ECM을 사용하지 않을것이다. ( CADO-NFS 연산에 어떠한 로드도 주지 않을 생각 이다 )
- 최대공약수 필터기능을 최소화 하여 소요시간을 단축한다.
- 최초진입은 CUDAECM 1레벨으로 빠른 진입을 원한다.
- MSIEVE 진입 전에 다음 후보자를 찾아야 한다.
설정 변경 :
- mine.sh 설정 (예시)
# CPUECM 주석
#export CPUECM_SERVER_IP="node3 node5 node6 node7 node8 node10 node11 node12 node13"
#export CPUECM_SERVER_PORT="19301 19301 19301 19301 19301 19301 19301 19301 19301"
# GPUECM 설정
# CUDAECM_MAX_LEVEL 을 2레벨로 한정
export CUDAECM_SERVER_IP="node-gpu-01"
export CUDAECM_MAX_LEVEL=2
# CADO-NFS 진입 결정부문 수정
export FIRST_ACCEPT_LEVEL=1 #Default 4
export SECOND_ACCEPT_LEVEL=2 #Default 4
export THIRD_ACCEPT_LEVEL=2 #Default 4
- CUDA-ECM 설정
- 기존 gpu_config_1.ini 수정(에시)
# 필터링 체질을 약간 높여주어서 후보자의 품질을 조금 높이자.
b1 = 50000 을
b1 = 120000 으로 변경
effort = 214 을
effort = 330 으로 변경
- 기존 gpu_config_2.ini 수정(에시)
4090은 4레벨을 가지고 수정
cp gpu_config_4.ini gpu_config_2.ini
b1 = 3000000 을
b1 = 2600000 으로 변경
effort = 2351 을
effort = 1905 으로 변경
port = 10404 을
port = 10402 으로 변경
실행 예측 결과 :
Block Time: 6~7초에 CADO-NFS 1레벨 진입
Block Time: 10~13초에 CADO-NFS 1레벨 완료, CADO-NFS 진입, CADO-NFS 2레벨 진입
Block Time: 200초에 CADO-NFS 2레벨 완료
목표 :
- CUDA-ECM을 사용하여 빠른 처리를 원하지만 2차부터는 CPU-ECM으로 유력후보를 사용하고 싶다.
- 그리고 CUDA-ECM 서버는 3090 1개 이다.
- CPU-ECM을 사용한다.
- 최대공약수 필터기능을 최소화 하여 소요시간을 단축한다.
- 최초진입은 CUDAECM 1레벨으로 빠른 진입을 원한다.
설정 변경 :
- mine.sh 설정 (예시)
# CPUECM 사용
export CPUECM_SERVER_IP="node3 node5 node6 node7 node8 node10 node11 node12 node13"
export CPUECM_SERVER_PORT="19301 19301 19301 19301 19301 19301 19301 19301 19301"
# GPUECM 설정
# CUDAECM_MAX_LEVEL 을 1레벨로 한정
export CUDAECM_SERVER_IP="node-gpu-02"
export CUDAECM_MAX_LEVEL=1
# CADO-NFS 진입 단계는 1레벨은 사용하므로 2레벨은 결코 진입이 안된다
export FIRST_ACCEPT_LEVEL=1 #Default 4
export SECOND_ACCEPT_LEVEL=2 #Default 4
export THIRD_ACCEPT_LEVEL=2 #Default 4
- CUDA-ECM 설정
- 기존 gpu_config_1.ini 수정(에시)
# 필터링 체질을 약간 높여주어서 후보자의 품질을 조금 높이자.
b1 = 50000 을
b1 = 120000 으로 변경
effort = 214 을
effort = 330 으로 변경
실행 예측 결과 :
Block Time: 6~7초에 CADO-NFS 1레벨 진입, CPU-ECM 필터 시작
Block Time: 10~13초에 CADO-NFS 1레벨 완료(이후 GPU 사용중단), CADO-NFS 진입, CPU-ECM 서버들의 연산중인 것은 계속 진행
msieve 진입하고 듀얼 실행시 CPU-ECM에서 걸려진 유력 후보자가 있을 경우 사용.
<3090도 추가시켜 달라고 해서 추가합니다.>
목표 :
- CUDA-ECM을 사용하여 빠른 처리를 원한다.
- 그리고 CUDA-ECM 서버는 3090 듀얼이다.
- CPU-ECM을 사용하지 않을것이다. ( CADO-NFS 연산에 어떠한 로드도 주지 않을 생각 이다 )
- 최대공약수 필터기능을 최소화 하여 소요시간을 단축한다.
- 최초진입은 CUDAECM 1레벨으로 빠른 진입을 원한다.
- MSIEVE 진입 전에 다음 후보자를 찾아야 한다.
설정 변경 :
- mine.sh 설정 (예시)
# CPUECM 주석
#export CPUECM_SERVER_IP="node3 node5 node6 node7 node8 node10 node11 node12 node13"
#export CPUECM_SERVER_PORT="19301 19301 19301 19301 19301 19301 19301 19301 19301"
# GPUECM 설정
# CUDAECM_MAX_LEVEL 을 2레벨로 한정
export CUDAECM_SERVER_IP="node-gpu-01"
export CUDAECM_MAX_LEVEL=2
# CADO-NFS 진입 결정부문 수정
export FIRST_ACCEPT_LEVEL=1 #Default 4
export SECOND_ACCEPT_LEVEL=2 #Default 4
export THIRD_ACCEPT_LEVEL=2 #Default 4
- CUDA-ECM 설정
- 기존 gpu_config_1.ini 수정(에시)
# 필터링 체질을 약간 높여주어서 후보자의 품질을 조금 높이자.
b1 = 50000 을
b1 = 120000 으로 변경
effort = 214 을
effort = 330 으로 변경
- 기존 gpu_config_2.ini 수정(에시)
3090은 3레벨을 가지고 수정
cp gpu_config_3.ini gpu_config_2.ini
b1 = 1000000 을
b1 = 1900000 으로 변경
effort = 910 을
effort = 1390 으로 변경
port = 10403 을
port = 10402 으로 변경
실행 예측 결과 :
Block Time: 6~7초에 CADO-NFS 1레벨 진입
Block Time: 10~13초에 CADO-NFS 1레벨 완료, CADO-NFS 진입, CADO-NFS 2레벨 진입
Block Time: 200초에 CADO-NFS 2레벨 완료
참고적으로 CPU-ECM 전용으로 하는 방법, CPU-ECM + CUDA-ECM 혼용 방법, CUDA-ECM 전용으로 하는 방법 이 무엇이 옳고 나쁨의 문제는 아닙니다.
채굴 전략의 문제인데요. CPU로 후보자를 찾는것이 개별적으로 성능이 더 뛰어나기에 유력한 후보자를 빨리 찾는것은 CPU-ECM이 우월합니다.
그러나 대량의 처리하는 것은 CUDA-ECM이 우월하지요
CPU-ECM의 ration 0.28 의 수준은 CUDA-ECM의 3레벨보다 약간 더 좋습니다.
CPU-ECM이 20초 정도에 유력 후보를 1개 가져온다면 CUDA-EMC 4090 듀얼은 200초 정도에 유력 후보를 30~50개를 가져옵니다.
<추가>
그래픽카드에서 한번에 처리할 수 있는 갯수가 있으므로
export W_MUL_INTERVAL=8
export MAX_SIEVE_LEVEL=26
을 조정하면서 해야 합니다.
만약 한계이상의 수량이 후보자가 입력이 되면 배수로 시간이 지연됩니다.
위의 설정은 제가 3090 1개 사용시 설정입니다.
<추가>
다중 GPU 사용시 변경사항
cudaecm_daemon.sh 에서
듀얼사용시...
CUDA_VISIBLE_DEVICES=0,1
4대사용시...
CUDA_VISIBLE_DEVICES=0,1,2,3
<치명적인 버그 패치 : 2022-6-17 18:30 >
CPU-ECM 사용시 일정 시간후에 이런 버그가 발생됩니다.
금일 18:30 에 패치할 예정으로 1.224 테스트 버전 사용자의 경우 패치하세요.