1. 정의
Tensor Processing Unit
텐서 처리 장치
구글에서 발표한 데이터 분석 및 딥러닝용 하드웨어.
ASIC(Application-Specific-Integrated Circuits)로서 머신러닝 작업 부하를 빠르게 처리하는 데 사용된다.
GPU의 10배 이상 빠르다.
(버전 3개)
TPU 1.0
TPU 2.0
TPU 3.0
(구글 논문)
drive.google.com/file/d/0Bx4hafXDDq2EMzRNcy1vSUxtcEk/view
2. 내부 구조
노란색 : 실제 계산이 일어나는 로직
-> TPU에서 가장 핵심적인 부분!
-> Matrix Multiply Unit은 65536(=256*256)개의 곱셈기로 이루어져 있으며 각각의 곱셈기는 8-bit 정수 2개를 곱해 16-bit 결과를 만들어 낸다. Matrix Multiply Unit 아래쪽에는 하나의 entry당 256개의 32-bit 레지스터를 가진 4096-entry Accumulator가 있는데 각 32-bit 레지스터는 세로방향을 따라 위치한 256개의 곱셈기가 계산한 16-bit 결과 값 256개를 누적하는데 사용된다. Accumulator의 4096개의 entry 중 어디에 계산 값이 누적될지는 TPU의 Matrix Multiply / Convolve 명령어가 포함된 accumulator address 필드에 의해서 결정된다.
Accumulator의 결과는 Activation 유닛과 Normalize/Pool 유닛을 걸쳐 Unified Buffer에 저장이 되는데, 계산된 값이 중간 결과일 경우 다시 Matrix Multiply Unit의 입력으로 보내지며 최종 결과일 경우 Host Interface와 PCle 인터페이스를 거쳐 CPU의 메인메모리에 저장되게 된다.
하늘색 : 계산에 필요한 입/출력값 및 wieght들을 DDR3 메모리와 TPU사이에서 옮기거나 중간결과를 임시로 저장하는 부분
빨간색 : 명령어 수행을 위한 제어로직
초록색 : TPU 외부와 연결되는 DDR3 메모리와 PCle 인터페이스
3. 사용
행렬 연산이 주를 이루는 모델 (백터/행렬 연산의 병렬 처리에 특화되어 있다. 넘사벽급의 전성비를 자랑한다. 비결은 8비트 정수 연산을 활용하는 것이다. 같은 비트라도 정수 연산이 부동 소수점 연산보다 더 빠르기 때문이다.)
기본 학습 루프 내에 커스텀 TensorFlow 작업이 없는 모델
몇 주 또는 몇 달간 학습시키는 모델
효과적인 배치 크기가 매우 큰 대형, 초대형 모델
On the main menu, click Runtime and select Change runtime type. Set "TPU" as the hardware accelerator.
Click Runtime again and select Runtime > Run All. You can also run the cells manually with Shift-ENTER.
cloud.google.com/tpu/docs/tpus?hl=ko#advantages_of_tpus
donghyun53.net/%ea%b5%ac%ea%b8%80-tpu-%eb%93%a4%ec%97%ac%eb%b3%b4%ea%b8%b0/
'Daily > 김인턴의 하루' 카테고리의 다른 글
라벨링툴 - labelme & labelImg (0) | 2020.10.23 |
---|---|
NVIDIA Jetson Nano (2) | 2020.10.20 |
DeepLab 딥랩 (0) | 2020.10.13 |
COCO Dataset (0) | 2020.10.12 |
DLL 파일 (0) | 2020.10.12 |
댓글