구글의 인공지능을 위한 하드웨어 TPU

구글의 인공지능을 위한 하드웨어 TPU

구글이 Tensor Processing Unit (TPU) 를 공개했다. (솔직히 충격적이다....)
이는 custom ASIC (특수 목적을 위한 하드웨어 칩)으로, TensorFlow랑 물려 사용하는 인공지능을 위한 칩이다.
이번에 공개된 내용에 대해 설명을 하고자 한다.
본 포스트는 구글의 공식 블로그 글을 바탕으로 작성하였으니, 궁금하신 분은 옆 링크를 참조 하시길.

TPU는 어디에 쓰나요?

TPU는 이름에서도 알 수 있듯이 TensorFlow를 돌리는 데 쓰인다고 한다.
TensorFlow는 그래프 프로세싱을 위한 오픈소스 프레임워크로 딥러닝을 위해서도 많이 쓰이는 도구(?)이다.
이를 이용한 코드들을 매우 효율적으로 돌린다고 한다.
출처에 따르면 전력효율이 약 10배 (an order of magnitude)나 된다고 한다.
이는 Moore's law 상으로 약 7년정도 앞선 효능이다. (이건 사실상 광고...)

실제 구글의 어플리케이션으로는 구글 투데이, 스트리트 뷰, 음성 검색, 알파고(!) 등에 쓰인다고 한다.
모두 인공지능 알고리즘의 기반으로 구글 내부에서는 이런 것들이 TensorFlow를 통해서 구현 된 것인가 보다. (필자의 개인적인 추측)

왜 이렇게 좋지?

우선 ASIC 이다. CPU는 프로그래머블하여 범용적으로 쓸 수 있다. ASIC은 이와 비교하여 범용성이 떨어지지만 효율이 좋다.
CPU에서는 보통 소수점 연산을 32bit를 사용하지만 TPU는 훨씬 더 적은 bit수를 사용하여 효율적으로 연산 한다고 한다. (최근 NVIDIA 에서 발표한 pascal GPU의 경우 16bit 연산을 지원하기는 한다.)
적은 bit수로 인한 부정확성은 인공지능 분야에서는 괜찮다. 그러니 효율이 좋을 수 밖에...

그리고, Norm Jouppi 가 만들었다..... ㄷㄷㄷ 공개된 블로그 글의 글쓴이인데, 필자의 연구 분야(Microarchitecture)에서 아주 유명한 사람이다... 구글이 하드웨어 설계의 대장급 인물을 데려가서 만든 것이니 진짜 좋을 수 밖에. 공개된 글에 따르면 시험적으로 칩을 찍고 22일 만에 데이터센터에서 사용되었다고 한다.

필자가 생각하는 TPU의 의의

맨 앞에 말했지만, 가히 충격적이다. 내가 요 근래 접한 소식 중 가장.
첫번째 이유는 인공지능을 위한 칩이 드디어(!) 나왔다는 것.
뭐 예상은 하고 있었다. NVIDIA는 GPU를 딥러닝 연산에 맞게 밀고 있었고, IBM도 만들었고, 학계에서도 많은 연구진들이 딥러닝을 위한 칩을 제작하고 있었다.
그런데, 구글이(!) 그것도 Norm Jouppi를 영입해서(!) 만들었다.
일부러 인공지능과 딥러닝이라는 용어를 구분해서 사용하고 있었는데, 게다가 TPU는 딥러닝 뿐만 아니라 다른 알고리즘도 잘 돌리는 것으로 추정된다.

두번째 이유는 칩만 덩그러니 나온 것이 아니라 1년도 넘도록 실제로 사용되고 있었다
이세돌이랑 붙었던 알파고에서 부터 스트리트 뷰, 음성 검색 등등이 이미 여기서 돌아가고 있었다니. 학계의 소문에 의하면 Norm Jouppi는 약 2년전부터 구글에 들어가서 이걸 만들고 이었다고 한다.

아마도 앞으로 구글이 이 TPU를 클라우드로 돌려서 TensorFlow 코드들은 아무나 사용할 수 있게 되지 않을까 싶다.
대부분 GPU를 사서 딥러닝 연구들을 하고 있을 텐데, 어쩌면 GPU도 없이 쉽게 구글 클라우드 플랫폼으로 쉽게 연구를 하게 될 수 있을 날이 곧 올 것 같다.