Goolge_adsense_default_ad




구글 TPU2 발표소식 칩 설계 지식 공유해요~


우리나라 시간으로 어제새벽 구글 I/O 행사에서 Tensor Processing Unit 두번째(TPU2) 버전이 공개됐습니다. 첫번째 버전의 TPU는 딥러닝과 관련된 연산을 가속하는 프로세서로 2013년부터 개발이 시작되어 2015년 부터 구글의 데이터 센터에서 사용되고 있으며 올해 4월에 관련 논문이 공개가 됐습니다. 

딥러닝에는 대량의 데이터를 이용하여 Neural Network(NN)을 학습시키는 "Training" 과정과 학습된 NN을 이용하여 추론을 수행하는 "Inferencing" 단계가 있는데, TPU의 경우 "Inferencing"만 지원했다면 TPU2의 경우 "Training"과 "Inferencing"을 모두 지원하는 차이가 있습니다. "Training"의 경우 32-bit 또는 64-bit 부동소수점 연산이 필요한반면 "Inferencing"의 경우 8-bit 부동소수점 또는 정수 연산이면 충분하다는 연산특성차이가 있는데 아직 자세한 자료가 공개되지는 않았지만 8-bit정수 연산을 주로 고려해서 설계된 TPU와 적어도 32-bit 부동소수점 연산까지는 지원해야 하는 TPU2는 내부 구조에 많은 차이가 있을 것으로 생각됩니다. 


4개의 TPU2를 탑재한 서버용 Pod (사진 출처 - The Next Platform 사이트)

위의 사진은 공개된 TPU2의 보드 사진인데 TPU2 4개가 서버랙에 바로 탑재될 수 있는 Pod의 형태로 구성되어있는 것이 눈에 띕니다. TPU의 경우 PCIe 슬롯에 카드형태로 꽂히는 Co-processor여서 호스트 CPU가 TPU가 실행할 명령을 TPU의 메모리로 이동시켜줄 필요가 있었는데 TPU2의 경우는 호스트 CPU의 도움없이 독립적으로 동작이 가능할지도 모른다는 추측을 해 봅니다. 

TPU2로 구성된 구글 데이터 서버 (출처 - The Next Platform 사이트)

TPU2의 경우 여러개의 TPU2를 사용하여 멀티코어 서버를 구성하는 것도 가능한데 위의 사진은 TPU2 보드를 여러장 이용하여 구성된 구글의 데이터 서버입니다. 구글의 따르면 머신러닝 어플리케이션에 대해 11.5 peta flops의 성능을 보여준다고 합니다. (peta는 giga의 1,000배) 

최근 발표된 nVidia Volta 아키텍처의 경우 첫번째 버전 TPU의 접근방법과 비슷하게 4x4 행렬곱을 한 싸이클에 계산하는 "Tensor Core"를 탑재하는 방법으로 AI/머신러닝 어플리케이션에 대한 성능 향상을 약속했는데, TPU2의 경우 nVidia가 이미 채택하고 있던 Multi-GPU와 비슷한 접근 방법을 추가로 도입한 것이 재미있습니다. TPU의 경우 동시대 GPU 대비 "Inferencing" 분야에 한정하여 훨씬 높은 성능과 효율성을 달성했었는데, TPU2의 경우 전장이 "Training" 분야까지 확대된 상태에서 GPU 대비 성능상의 우위를 계속 유지할 수 있을지 궁금합니다. 

TPU2는 아직 공개된 내부구조에 대한 자료가 없습니다만, TPU의 구조가 "Inferencing"에 유리한 이유가 궁금하다면 제가 최근에 썼던 글을 참고하여 주시기 바랍니다. (링크 - 구글 TPU 들여보기) 





덧글

댓글 입력 영역