알파고의 연산 능력 Etc

문의가 들어와서 알파고의 연산능력을 계산해 보았다. 

논문을 들여다봐도 정확한 하드웨어 스펙은 나오지 않는다. 
다만 코어수 등을 기준으로 추산을 해보면.. 

단일형 알파고는 48개의 CPU와 8개의 GPU를 갖는다고 한다. 
CPU는 코어수를 얘기한 것일 테고, GPU는 저 아래 그림처럼 GPU 칩 하나를 장착한 그래픽 카드 1개를 말하는 것으로 보인다. 

CPU 부터 보면 코어 48개라는 것은 12코어짜리를 4개 꼽았다는 얘기다. 
12코어 짜리 CPU로는 Xeon E5-2680 V3 2.5Ghz가 유력하다. 
이 CPU 1개의 성능은 대략 280 GIPS (Giga Instruction Per Sec) 으로 초당 2800억개의 명령을 수행한다. 


고로 4개면 초당 1.1조개의 명령을 수행할 수 있다. 

다음은 GPU , 아래 그림은 페이스북이 공개한 딥러닝 컴퓨터 구조이다. 엔비디아 M40 칩을 장착한 테슬라 보드를 8개 꼽을 수 있다. 
M40 는 코어 3072개로 (내가 히든싱어 문제[링크] 에 사용했던 gpu와 같다!!!), 연산성능은 부동소수점연산 초당 7조번이다. 
8개 니까, 56조 개의 연산을 수행할 수 있다. 


결론은 단일형 알파고 1대의 성능이 명령어 수행 초당 1.1조 번 , 부동소수점 계산 56조 번을 할 수 있다는 것이다.
알려진 대로 알파고는 분산형 구조이다. 1202개의 CPU와 176개의 GPU를 썼다고 하는데 대략 25개 정도의 
단일형 알파고 머신이 연결되어 동작한 것으로 보인다. 
CPU를 칩수로 계산하면 100개 정도의 칩이 사용된 것이다. 

그 연산능력을 단순히 수치로 계산하면 명령어 수행 초당 28 조 개, 부동소수점 계산은 초당 1232조 번 할 수 있다는 얘기다. 
명령어 수행은 트리탐색을 위해 사용되고, 부동소수점 계산은 트리 탐색시 확률계산이나, 딥러닝 알고리즘에서 사용한다. 
하나의 판단을 하기위해, 그리고 하나의 확률 계산을 위해서도 수천 수만개의 계산및 명령 수행이 필요하다. 
1수를 두기 위해 필요한 연산은 알파고가 한수두는데 걸린 시간으로 역산이 가능할 것이다. 
그리고, 병렬컴퓨터는 단위요소를 더한 만큼의 성능이 다 나오진 않는다. 

아무튼, 질문이 초당 연산 능력을 묻는 것이므로, 대략 초당 명령 28조 개 수행, 계산 1232조 번을 할 수 있는 기계라는 답을 할 수 있다. 

참고로 현재 세계 1위 슈퍼컴퓨터인 Tianhe-2 의 계산 능력은  초당 3.3경 번이다. (수퍼컴에서는 명령 수행 갯수는 그닥 중요하지 않다)


(위 계산은 알파고 논문을 바탕으로 추정한 거라 실제와 약간 다를 수도 있습니다. )




덧글

  • 요원009 2016/03/15 14:10 # 답글

    보셨던 논문 제목을 알 수 있을까요?
  • 최대선 2016/03/15 16:26 #

    네이처에 실린 알파고 논문이요..단지 cpu, gpu 숫자만 나오네요, 대신, single alphago, distributed alphago로 구분해서 숫자가 나오니까 어느정도 추정은 가능했습니다.
  • 2016/06/08 12:18 # 삭제 답글 비공개

    비공개 덧글입니다.
댓글 입력 영역