채굴, NVidia와 AMD 그래픽 카드의 차이
CPU와 GPU간 비트코인 채굴에 있어서 어떻게 다른지, 그리고 그래픽 카드의 경우 AMD와 Nvidia 계열 간 어떤 차이가 있는지 비트코인 위키(en.bitcoin.it/wiki/)에 잘 설명된 글이 있어서 번역문으로 올립니다.
원문 비트코인 위키 : https://en.bitcoin.it/wiki/Why_a_GPU_mines_faster_than_a_CPU
- 이 글은 2013년에 작성한 것으로, 현재 그래픽 카드 시장과 일부 다를 수도 있으나 SHA 연산 기반의 알트 코인 채굴 시에는 참조할 만합니다.
- 2013년 중반 이후, ASIC 칩 기반의 전용 채굴기가 보편화되기 시작하면서 그래픽 카드를 이용한 비트코인 채굴은 더 이상 유효하지 않습니다.
■ CPU와 GPU의 구분
CPU와 GPU(그래픽 처리장치, 그래픽 카드) 간에 채굴 결과가 왜 그렇게 많이 차이가 날까?
이에 대한 짧은 요약은 다음과 같다.
라데온 HD 5970의 GPU가 클럭당 32비트 명령어를 3,200회 수행하는 것에 비해, CPU 코어는 클럭 당 32비트 명령어를 4번 또는 8번 실행한다.
이것 때문에 채굴에 있어 CPU와 GPU 간에 400~800배의 차이가 발생한다.
조금 더 길게 CPU와 GPU가 무엇인지, 각각 어떤 목적 하에서 만들어졌는지 상세하게 설명하면 다음과 같다.
먼저 CPU는 모든 디바이스에 필수적인 실행 장치로서 컴퓨팅 장치에 로딩된 소프트웨어의 연산 처리가 주 목적이다.
이 중앙 처리장치는 소프트웨어의 코드 혹은 유저의 명령에 의해 컴퓨터의 모든 파트가 무엇을 하는지 알려주는 주인 역할을 한다.
요즘 대부분의 컴퓨터는 다중 코어를 가지고 있거나 다중 CPU를 가지고 있는데, 메인보드 상에 쿨링 팬이 있는 커다란 금속 발열부 하단에 장착되어 있다.
GPU(그래픽 처리 장치)는 컴퓨터의 비디오 렌더링 시스템이다.
GPU의 전통적인 기능은 CPU가 수행하지 않는, 3D 그래픽이나 시각적 효과를 렌더링하는 임무를 담당한다.
요즘 대부분 주류 컴퓨터는, 별도의 더 강력하고 고전력을 소모하는 AGP나 PCIe 방식의 GPU 대신, CPU 칩셋에 직접 통합되거나 메인보드에 납땜 처리된, 느리지만 저전력의 통합그래픽장치(Integrated Graphics Processor)를 가지고 있다.
강력한 GPU는 대부분 게임이나 비디오 편집과 같은 그래픽 집약적인 임무를 위해서 필요하다. 예를 들면 윈도우7의 반투명창이나 맥 OSX의 Quartz같은 기술적 효과를 구현하는데 사용된다.
비트코인 채굴과 같은 특별한 임무에 있어서는 GPU가 훨씬 더 효율적인데, CPU와 GPU를 임무 성격과 연산 처리 측면에서 비교하자면 다음과 같은 차이점이 있다.
■ CPU는 경영의 임무
CPU는 기본적으로 결정을 내리고 관리하도록 디자인되어 있다.
예를 들어 문서를 타이핑하고 저장한다면, 이 문서를 적절한 파일 형식으로 변환 후 하드디스크에 기록하라고 지시를 내리는 임무가 CPU의 일이다.
CPU 역시 하나 이상의 논리연산장치(ALU)를 보유하고 있어 수학적 임무들을 수행할 수 있다. 예를 들면 "이 조건에서는 이러한 임무, 그 이외의 조건에서는 어떤 다른 임무를 하라"와 같은 명령어의 집합들을 빠르게 수행할 수 있다.
CPU 내부의 구조는, 연관되는 장치에 어떤 임무를 처리하도록 지시 및 분배하고 다시 재빨리 다른 임무로 전환하기 위한 목적으로 설계되어 있다.
■ GPU는 노동의 임무
GPU는 매우 다른 방식의 역할을 하는데, GPU 또한 특정한 조건 하의 논리 연산을 할 수 있다. 그럼에도 불구하고 GPU는 비디오 프로세싱과 같은 좀 더 낮은 수준의 관리 임무에 최적화되어 있다.
비디오 프로세싱은 화면 상의 대량의 픽셀 그룹에 대해 지속적으로 같은 일을 하도록 지시하는, 수많은 반복되는 임무로 구성된다.
이 역할을 효율적으로 수행하기 위해, 비디오 프로세싱은 수행 임무간 전환을 빠르게 하는 것보다는 반복 임무에 치중한다.
게다가 GPU는 CPU 대비 훨씬 더 많은 논리연산장치(ALU)를 가지고 있어, 대량의 수학적 노동에 있어 CPU보다 뛰어난 효율성을 보여준다.
■ 비유를 통한 설명
CPU가 수행하는 역할을, 매우 빨리 임무를 처리할 수 있는 아주 총명한 사람들의 소규모 그룹에 비유한다면, 이에 반해 GPU는 매우 빠르거나 총명하지는 않지만 반복적으로 임무를 수행하도록 훈련되어진, 쉽게 생산 가능한 우매한 사람들의 대규모 그룹이라고 할 수 있다.
실리콘 칩에 있어서 크기는 곧 비용인데, 무엇을 해야할지 판단하는 것에 능숙한 CPU가 좀더 많은 공간을 점유하도록 설계된다. 이런 구조적 설계가 없다면, 칩 내부에는 매우 작은 크기의 우매한 논리연산장치(ALU)로만 가득 채워질 것이다.
GPU의 논리연산장치(ALU)는 그룹간 영역으로 분리되어 있으며, 각각의 그룹은 관리 영역을 공유하고 있다. 각 그룹의 구성원들은 분리된 임무를 수행할 수 없는 대신, 한 개의 임무 중 동질성을 가진 여러 변형 임무를 수행할 수 있다.
비트코인 채굴은 새로운 해쉬(Hash)를 반복적으로 해독하는 것으로, 해쉬된 데이터의 숫자(Nonce로 불리는 것)를 바꾸는 단순하고 연속적인 임무라고 할 수 있으며, 그래서 GPU에 최적화되어 있는 것이다.
비트코인 채굴의 모든 작업은 논리연산장치(ALU)가 담당하는데, 사용가능한 논리연산장치(ALU)의 개수가 해쉬 수행 결과에 직접적인 영향을 끼친다.
GPU가 CPU보다 훨씬 더 빨리 비트코인을 채굴할 수 있는 것은 바로 이것 때문이다.
비트코인 채굴은 어떤 결정을 내리는 부분이 존재하지 않는 단순 반복되는 수학적 임무일 뿐이다- 유일한 결정 요소는 유효하거나 유효하지 않은 블럭을 가질 지 판단하는 것 뿐이며, 이것은 GPU를 구동하는 데 있어 충분히 감당할 수 있는 부분이다.
■ AMD 계열 그래픽 카드가 Nvidia보다 채굴 결과가 좋은 이유
2013년 초 현재 가격과 성능 모두 고려했을 때, 해쉬 연산에 가장 인기있는 그래픽 카드는 AMD 라데온 5970 이다.
HD 5970에 있는 3200개의 스트림 프로세서(Stream Processors)는 VLIW-5 아키텍쳐 방식을 사용하는데, 각각의 코어가 매 클럭 당 5개의 명령어를 실행하므로 실제로는 640개의 코어가 존재하는 셈이다.
이에 반해 Nvidia 회사는 핵심 코어를 쿠다 코어(Cuda Cores)로 부르며, AMD 회사처럼 클럭당 많은 명령어를 수행하는 VLIW 아키텍쳐 방식이 아니라 다른 방식을 사용한다.
이 아키텍쳐의 차이가 바로 코어 클럭 비교만으로 퍼포먼스를 가늠할 수 없으며, Nvidia 계열의 그래픽 카드가 SHA-256 해쉬(비트코인 해쉬 알고리즘) 연산 측면에서 AMD 계열에 뒤쳐지는 근본적인 이유이다.
게다가 AMD 계열 그래픽 카드는 상대적으로 낮은 주파수 클럭인 대신에, 더 많은 논리연산장치(VLIW 아키텍쳐)를 가지고 있다.(일반적으로 625~900MHz 대역폭에서 1120~3200개의 논리연산장치)
반면에 Nvidia의 그래픽 카드는 논리연산장치의 숫자가 적은 대신 높은 쉐이더 클럭을 가지고 있다. (1150~1544MHz 대역폭에서 448~1024개의 논리연산장치 )
또한 VLIW와 비 VLIW라는 아키텍쳐의 차이 때문에 Nvidia는 반도체 다이 공간에 더 많은 평방 제곱 밀리미터(Square Millimeter, MM2)를 사용하고 있다. 그래서 칩 당 논리 연산장치의 개수를 더 적게 포함시키는 대신, AMD의 퍼포먼스를 뛰어넘기 위해 클럭 주파수의 벽을 고도화시키는 데 집중한다.
AMD 라데온 6990 : 3072개의 논리연산장치 x 830 MHz = 초당 2조 5500억개의 32비트 명령어 연산 수행
NVidia GTX 590 : 1024개의 논리연산장치 x 1214 MHz = 1조 2430억개의 32비트 명령어 연산 수행
위와 같이 AMD와 Nvidia GPU 전체 라인업에 대략 2~3배 사이의 퍼포먼스 차이가 존재하는데, 비트코인 채굴이나 패스워드 해쉬 찾기(brute force)와 같은 작업 수행 시 이 차이가 뚜렷하게 드러난다.
두번째로, AMD GPU가 비트코인 채굴에 선호되는 이유는, 32비트 right rotate의 정수 연산을 많이 사용하는 비트코인의 SHA-256 채굴 알고리즘 때문이다.
이 연산은 AMD GPU(BIT_ALIGN_INT)에 있어 단일 하드웨어 명령어로 구현된다. 하지만 Nvidia GPU에서는 3개의 분리된 하드웨어 명령어(2 shifts + 1 add)로 에뮬레이트되어야 한다. 이 차이 또한 AMD가 채굴 퍼포먼스에 있어 1.7배 이상 유리하도록 만든다.
결과적으로 이 두가지 이유가 결합되어 비트코인 채굴에 있어 AMD 그래픽 카드가 Nvidia에 비해 3~5배 더 나은 퍼포먼스를 보여주게 된다.
항상 궁금했던건데 진짜 잘 보고 갑니다.
Congratulations @disbi! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You made your First Comment
Award for the number of upvotes received
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!
잘정독했습니다.~~
유용한 내용이네요.. 감사합니다..
잘 읽었습니다. 감사해요~^^
Congratulations @disbi! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
If you want to support the SteemitBoard project, your upvote for this notification is welcome!