TPU

tpu.png
tpu-1.png
알파고 실물

1 개요

Tensor Processing Unit의 약자.
구글에서 2016년 5월에 발표한 데이터 분석과 딥러닝을 위해 개발 된 하드웨어이다. 벡터/행렬연산의 병렬처리에 특화되어 있으며 GPGPU와 개념이 유사하나 ... 넘사벽급의 전성비를 자랑한다. 비결은 8비트 정수 연산을 활용하는 것이다. #이는 NVIDIA등에서도 실현한적 있다. 차이점이라면, TPU는 모델의 실행뿐만 아니라 학습 과정에도 8비트 정수 연산을 활용할 것으로 추정된다는 것. NVIDIA의 경우에는 P100과 같은 칩셋으로 16비트 부동소숫점 연산을 사용해 모델을 훈련시키고, P4/P40과 같은 제품을 통해 8비트 정수 연산을 활용해 모델을 실행하는 것을 이상적으로 보았다. 구글 엔지니어 블로그에 의하면 알파고도 GPU가 아닌 TPU상으로 구현되어 있다고 한다.

1.1 Tensor의 의미

텐서 항목 참조.
TPU에서의 텐서의 의미는 벡터/행렬을 의미한다. 아무래도 모델에서 3차 텐서 이상의 텐서를 활용할 일은 없기에, 벡터와 행렬에 최적화되어있다고 한다. 물론 딥 러닝에서 이미지 처리나 batch로 병렬처리 할 경우 3차원/4차원, 심지어 5차원 텐서를 다루어야 할 경우가 종종 생기지만(CNN을 쓸 경우 데이터의 기본 포멧이 4차원이다. 이미지의 경우 batch, RGB, height, width가 되고 필터의 경우 현 layer의 필터 수, 전 layer의 필터 수, 필터 높이, 필터 넓이 이렇게 4차원이 된다.) 소프트웨어 방식으로 편의를 위하여 구현을 하는 경우는 많아도 하드웨어적으로 직접 구현하는것은 굉장히 비효율적이다.

2 전용 소프트웨어

TPU를 위한 소프트웨어로는 구글에서 오픈소스로 공개한 TensorFlow 공식 웹사이트가 있다. 오픈소스로 공개된 버전은 TPU가 아닌 GPU를 위한것으로 주의요망.

3 상용화

아직 구글에서 공개하여 NVIDIA처럼 제품을 판매할지는 미지수. 발표내용을 보면 하드웨어 판매보다는 Cloud Computing 서비스 방식으로 제공할 가능성이 높다. 특히, 구글에서 자세한 정보 제공을 꺼리는 것은 타사가 TPU를 생산하는 것을 막기 위해서라는 해석이 주다.특허를 내고 팔면 되지 않나 아무래도 ASIC이기에 특별히 대단한 기술이 없는 이상 정보만 알려지면 누구나 생산할 수 있기 때문.

4 성능

구글에서 최근에 발표한 뉴럴기계번역 논문에 의하면 특정 조건하에서 TPU의 속도는 GPU (Tesla K80, Kepler 코어 2개가 장착되어 있다) 의 10배 이상 빠르다고 한다출처. 물론 해당 속도는 기계번역과정에서의 decoding단계에서 측정한거라 굉장히 제한된 조건하에서 측정한것이다. 기계번역의 decoding 단계는 학습단계와 달리 beam search라고 부르는 가능한 탐색루트에서 최적의 루트를 찾아내는 탐색과정이 필요한지라 GPU에서만 돌릴수는 없고 (GPU는 CPU와 달리 탐색과 같은 범용처리에 굉장히 약하여 보통 CPU가 담당한다.) CPU와 데이터를 주고받으면서 처리해야 하는데 문제는 pci-e 버스에서 생기는 latency가 너무 길어 GPU의 장점인 빠른 병렬처리속도를 상쇄한다는것이다. 요리사가 아무리 빨리 요리를 만들어내도 배달에서 시간이 오래걸리면 꽝이라는걸 생각해보자. TPU도 마찬가지로 CPU에 탐색을 의존해야 하지만 구글에서는 latency 문제를 효과적으로 해결한것으로 보인다. (혹자는 비록 TPU의 메모리 시스템이 공개되지 않았지만 설마 CPU와 램을 공유하는게 아닌가 생각해본다.) 한줄로 요약하면 CPU와 데이터를 주고 받는 특정 조건하에서는 TPU가 압도적으로 빠르다 가 되겠다. 물론 절대적인 1:1 속도 비교가 아니더라도 압도적인 전성비를 자랑하는 TPU는 동일 체적의 공간에서 랙서버 운용시 GPU 대비 훨씬 많은 연산력을 제공한다. 흥미로운 점은 해당 논문에서 비교로 사용된 88 코어... 듀얼 CPU의 속도도 GPU로 decoding하는것보다 빠르다는 점이다. 아무리 CPU라 할지라도 88코어면 1TFLOPS를 상회하는 연산력을 가지고 있고 GPU는 워낙에 pci-e latency에 쥐약이라 ... 괜히 AMD가 HSA를 부르짖는게 아니다.