CPU,GPU,TPU,.... 여러가지 processing unit 알아보기
1. hardware acceleration
일반적으로 CPU에서 software를 수행하는 것보다 더 효과적으로 연산, 기능을 수행하고 싶을 때 hardware acceleration을 사용함
latency를 줄이고 throughput를 증가시키기 위한 목적
CPU도 일종의 accelerator라고 할 수는 있으나 general processor에 가깝고 hardware accelerator는 보통은 GPU, TPU 등등을 의미함
CPU 자체에서 모든 데이터 계산을 할 수도 있고
GPU같은 곳에 특화된, 병렬처리 했을 때 더 좋은 데이터 같은 경우 GPU에 보내 처리를 하여 CPU로 돌려받는 식으로 데이터 처리를 함
CPU와 hardware accelerator가 정보를 주고 받으며 데이터 처리
2. 여러가지 processing unit
목적에 따라 다양한 PU가 있는데 모두 일종의 가속기(accelerator)
GPU같은 경우는 그래픽 프로세싱용, 게임, 비디오용으로 나온 것인데 우리는 딥러닝에 많이 쓰고 있음.
TPU가 이름에서도 보이듯이 딥러닝의 tensor를 처리하는데 특화된 것으로 인공지능에 특화
그러면 왜 GPU를 TPU보다 많이 쓰냐???
TPU는 구글에서 만든 것인데 정보 공개도 안되어 있고 특정 소프트웨어인 텐서플로우에 특화되어있고 너무 비싸서, 보급도 잘 안되어있어서 그렇다
NPU같은 경우는 chip이라기보다는 neural network를 위한 processing unit을 통틀어 이르는 말로 TPU가 여기에 포함되기도 함
FPGA는 hardware로 만들어 쓰는 것이 아니라 필드에서 필요에 따라 조합해서 쓰는 것
3. CPU와 GPU의 차이
CPU는 데이터 하나하나 sequential하게 처리함
GPU는 모든 데이터를 병렬적으로 한번에 처리함
쉽게 생각해서 게임 화면의 pixel을 하나하나 쏘면서 표현하는 것보다 한번에 모든 pixel을 표현해야 분명 유리하겠죠?
그래서 그래픽 처리에 유용하다는 것이 GPU
CPU는 sequential한 처리에 유용하고 GPU는 parallel한 처리에 유용하다
그런데 마지막에 서로 닮아가려고 한다 이 뜻인가
4. IPU
Intelligence Processor Unit
graphcore라는 회사에서 만들어내고 있는 칩
GPU보다 neural network 학습할 때 좋다고 홍보
core에 memory를 집어 넣어 core와 memory사이의 거리를 GPU보다 가깝게 설계하여 빠르다는 것을 강조함
processor와 memory간에서 정보의 병목현상이 심한데 둘 사이 물리적 거리를 가깝게 하여 속도를 빠르게 했다는 것이 특징
5. ARM
edge device에 특화된 chip을 생산하는, 스마트폰 핵심 프로세서인 AP에 대한 설계도의 IP(지적 재산권)를 가진 회사
직접 설계하는 회사는 아니고 이 IP를 팔아 라이센스비를 받아먹고 사는 회사
거의 대부분 95%(2010년도 기준이라는데 정확히 나온걸 못찾았는데 지금도 여전히 높은 것 같긴함)가 이 설계도를 사용하여 만들고 있을 정도
시장을 지배할 수 있었던 핵심 원리중 하나는 Power efficiency에 있다고함
보통 edge device에는 performance보다 power efficiency가 얼마나 좋으냐가 더 중요하다고 함
쉽게 생각해서 핸드폰을 사용하는데 너무 쉽게 뜨거워지면 사용하기 어렵겠죠?
6. SoC(System on Chip)
칩 안에 집어넣을 수 있는 것은 다 넣어서 all in one solution을 만듦
CPU, GPU부터 심지어 wifi(connectivity), camera까지
7. FPGA
필드에서 필요할 때 조립가능하게 설계된 haraware chip
low power와 high performance 성질을 가지고 있고 필요할 때 조립가능하다는 성질 때문에 많은 domain에서 이용하려고 시도중
ASIC는 특별한 목적에 특화된 power efficient한 chip
딥러닝에 주로 쓰이는 CPU와 GPU는 high performance를 가지지만 power inefficient한데
ASIC는 power efficient하다는 성질을 가지고 있어 중간단계의 FPGA가 딥러닝에서 매력적인 대안이 될 수 있음
'딥러닝 > light weight modeling' 카테고리의 다른 글
pruning 기본 알고리즘, regularization과의 연관성 알아보기 (0) | 2022.11.09 |
---|---|
딥러닝 경량화 기법 pruning은 무엇이고 왜 등장했는가 (0) | 2022.11.09 |
컴퓨터 과학에서 말하는 compression의 개념 (0) | 2022.11.06 |
경량화 모델하면 가장 먼저 떠오르는 MobileNetV1의 핵심 아이디어 (0) | 2022.11.05 |
컴퓨터의 근본 원리가 된 finite state machine 개념 익히기 (0) | 2022.11.04 |