1. 기존 fact0rn 채굴 설명
1.1. PC선택과 채굴 : 2024-01-08
https://www.ddengle.com/mining/19548557
1.2. 개선된 채굴 프로그램 : 2024-01-11
https://www.ddengle.com/mining/19551677
1.,3. 개선된 채굴 프로그램의 동작방식 : 2024-01-15
https://www.ddengle.com/board_free/19557875
1.4. fact0rn의 해시와 난이도 : 2024-01-19
https://www.ddengle.com/board_free/19564450
1.5. fact0rn의 12대 정도의 소규모 채굴 네트워크 구성 : 2024-01-22
https://www.ddengle.com/board_free/19568142
1.6. 필터링 속도 개선(AVX512 지원) : 2024-01-28
https://www.ddengle.com/mining/19575145
1.7. 일부 버그 수정 및 HAPROXY 사용법 : 2024-02-04
https://www.ddengle.com/mining/19585293
1.8 CPU ECM 추가 : 2024-02-07
https://www.ddengle.com/mining/19589074
1.9 마이너 구조 단순화 버전 (0.99) : 2024-02-15
https://www.ddengle.com/mining/19599453
1.10 fact0rn 마이너 배포판 1.0 : 2024-02-22
https://www.ddengle.com/mining/19612751
1.11 fact0rn 마이너 배포판 1.03 : 2024-03-20
https://www.ddengle.com/mining/19677382
2. 패치 파일
전체파일 : wget http://factorn.iptime.org:32080/download/fact_dist_22_04_v1.05.beta.tar.gz
마이너만 1.0 -> 1.05 : wget http://factorn.iptime.org:32080/download/fact_dist_20_04_v1.00-to-v1.05_beta.tar.gz
3. 베타버전 배포 사유
4월에 모니터링을 위한 솔루션이 포함된 배포판이 만들어질 예정입니다.
그럼에도 불구하고 베타버전을 배포하는 이유는 다음과 같습니다.
CUDA-ECM에 대해서 제가 잘못 알고 있는 사실이 있기에 해당 기능을 포함한 버전을 배포합니다.
그에 앞서서 소인수 분해 소프트 웨어에 대한 이해가 있어야 합니다.
GCD : 파이썬 내장 함수로 소인수 판별에 사용, 매우 작은 수에 대한 소인수 판별에 가장 빠름
ECM : 작은 수에 대한 소인수 분해에 빠르지만 큰수에 대한 소인수분해는 매우 느림
종류에는 다음과 같습니다.
GMP-ECM : AVX2 버전, AVX512 버전, CUDA 버전 (CUDA-ECM과 달리 GMP-ECM 형식으로 컴파일됨)
CUDA-ECM : CUDA로 소인수 분해를 할수 있음
MSIEVE : 중간 크기에 대한 소인수 분해가 빠름. 클라우드나 C/S 기능을 제공하지 않아 큰수에 대한 소인수분해는 CADO-NFS에 비해 저조한 성능을 발휘
YAFU : ECM + MSIEVE, NFS등을 효과적은 컨트롤하고 제어하는 통합 소인수 분해 프로그램이지만 클라우드와 C/S 기능이 결여
CADO-NFS : 중간크기 이하의 수에 대한 소인수분해는 매우 늦으나 큰 수에 대한 소인수 분해는 빠르며 클라우드와 C/S 기능이 있음
CPU-ECM vs CUDA-ECM 비교
CPU-ECM은 개별 숫자에 대한 소인수 분해는 CUDA-ECM보다 3~5배 성능을 발휘한다.
CUDA-ECM은 개별 숫자에 대한 소인수 분해는 매우 낮다. 그러나 GPU 갯수 X 쿠다코어 갯수(128개 묶음) 만큼 병렬이 된다
특정 숫자를 CPU소인수분해를 하는데 CPU-ECM이 20초 걸린 소인수 분해를 4090 1대나 8대나 속도는 220초가 걸렸다.
이번에 새롭게 안 사실은 CUDA-ECM은 쿠다코어 갯수(실제는 128개씩 묶음) 만큼 병렬처리가 가능하다는 것인데요.
100개를 소인수 분해를 해도 동일한 220초 걸린다는 뜻입니다.
% 빨간색으로 처리한 부문이 제가 미쳐 몰랐던 부문이었어요
CUDA-ECM 기능 확인 (4090 듀얼)
300개의 후보자를 1단계 필터링
300개 --> 약 60여개
소요시간 : 2초
60개를 후보자를 2단계 필터링
60개 --> 약 50개
소요시간 : 6초
50개를 후보자를 3단계 필터링
50개 --> 약 45개
소요시간 : 30초
45개를 후보자를 4단계 필터링 ( 이 단계가 CPU-ECM 필터링 수준입니다 )
45개 --> 약 42개
소요시간 : 180초
이제 채굴 프로그램을 작동 순서를 보면 다음과 같습니다.
1. 블럭변경 감지
2. 노드에서 시드와 무작위 숫자 범위를 받음 (약 2초 소요)
3. 해당 후보자를 GCD로 1차적으로 체질 (약 5초 소요)
체질(Sieving : 화면상에 Seeding에 포함)
4. 남은 후보자를 ECM으로 2차적으로 체질 (약 30~100초 소요)
체질(Sieving : 화면상에 2th Sieving)
5. 최종 후보자를 CADO-NFS로 연산 (약 250~400초 소요)
화면상 순서는 Polynomial Selection ->Lattice Sieving->Filtering->Shutting down HTTP server->Linear Algebra->quare Root
여기서 C/S , 클라우드가 관여하는 부문은 Polynomial Selection ->Lattice Sieving 단계 입니다.
6. 4번부터 다시 수행
이번 베타 배포는 경쟁자가 많아짐에 따라 블럭시간이 갈수록 짧아져서 이에 대한 편법을 사용하는 방법을 제공입니다.
마이너가 첫번째 CADO-NFS를 진입할때 약간 질이 떨어지지만 좀 더 빠르게 진입하기 위한 옵션을 추가했습니다.
CUDA-ECM이 필수적으로 있어야 합니다.
첫번째 CADO-NFS 진입할때의 CUDA-ECM 레벨 허용 수준 설정
export FIRST_ACCEPT_LEVEL=4 #[1~4]
두번째 CADO-NFS 진입할때의 CUDA-ECM 레벨 허용 수준 설정
export SECOND_ACCEPT_LEVEL=4 #[1~4]
그 이후 CADO-NFS 진입할때의 CUDA-ECM 레벨 허용 수준 설정
export THIRD_ACCEPT_LEVEL=4 #[1~4]
만약 export FIRST_ACCEPT_LEVEL=1 로 설정했다면 최초 CADO-NFS는 진입은 1단계 필터링만 숫자만으로 수행입니다.
즉, BlockTime이 약 10~15초만 되어도 CADO-NFS에 진입하게 됩니다.
대신 후보자의 질은 최종 4단계의 40~60%의 수준입니다.
블럭 : 현재 블럭 번호 입니다.
블럭타임 : 블럭 변경후 경과 시간입니다.
후보자 : 남은 후보자 [병렬 처리 CPU-ECM에서 찾은 양질의 후보자]
% 양질의 후보자가 있으면 양질의 후보자 부터 처리합니다. 즉, 0[5] 이렇게 표시되어도 양질의 후보자가 5개가 있기에 멈추지 않습니다.
마이너 : 마이너의 단계를 보여줍니다.
CPU-ECM : CPU-ECM의 처리 단계를 보여줍니다.
CUDA-ECM : ready, looking cadindate LEVEL( ) , LEVEL(4) 으로 표시됩니다. (이 부문이 기능 변경에 따라 기존과 달라진 부문입니다.)
------------------------------------------------------------------------------------------------
베타 테스트 목적이기에 실행파일 이름을 miner_kafka 으로 배포 했는데요.
현재까지 운영상 이상 없기에 miner_kafka 를 miner 변경 하셔도 될 것 같아요.
정식판에서는 miner_kafka에서 다시 miner로 바꾸겠습니다.
------------------------------------------------------------------------------------------------
혹시 GPU는 4090 말고 3070이나 1660 같은 낮은 GPU 사용해도 될까요?