밑바닥부터 시작하는 딥러닝 1권의 8.3 내용

빅데이터 / 네트워크 발전 → 딥러닝의 대량연산

⭐GPU⭐

NN학습시 convolution 계층 계산에 시간이 많이 걸림 ( 단일 곱셈 - 누산 과정 )

GPU의 병렬 수치 연산 → GPU 컴퓨팅

대량 병렬연산으로 인해 단일 곱셈-누적 과정을 빠르게 연산할 수 있다.

<aside> 💡 CPU라고 무조건 못하는 것은 아니다. 연속적인 복잡한 연산을 잘 처리하여 준다

</aside>

CUDA - Nvidia의 GPU 컴퓨팅용 통합 개발 환경

cuDNN - CUDA위에서 동작하는 라이브러리. 딥러닝에 최적화된 함수 등이 구현

분산학습

1회 학습에 걸리는 시간을 최대한 단축하고자 딥러닝 학습을 수평확장하자는 아이디어 이다

다수의 GPU와 기기로 계산을 분산하는 것이다

당연히 속도가 굉장히 빨라질 것이다

그러나 ‘어떻게 분산시키느냐’ 가 매우 어려운 문제이기 때문에

컴퓨터 사이 통신 / 데이터 동기화 등 어려운 문제를 해결하고자 뛰어난 프레임워크가 개발되고 있다.

연산 정밀도 / 비트 줄이기

계산능력만이 딥러닝 고속화에 있어 bottleneck이 되는 것은 아니다. 메모리 용량 및 버스 대역폭 등도 될 수 있다.

메모리 용량 면에서는 대량의 가중치 매개변수와 중간데이터를 메모리에 저장해야한다는 점을 생각해야하고

버스대역폭 면에서는 GPU / CPU 의 버스를 흐르는 데이터가 많아져 한계를 넘어서면 bottleneck이 된다. 이러한 경우 고려시 네트워크로 주고받는 데이터의 비트 수를 최소한으로 만드는 것이 바람직하다.