Computed unified Device Architecture
NVIDIA 에서 개발한 GPU 개발 도구이다.
중앙 처리 장치(CPU)
그래픽 처리 장치(Graphics Processing Unit, GPU)
이 둘은 어떻게 다를까?
GPU 는 컴퓨터 그래픽을 처리하는 장치로, 그래픽 카드를 구성하는 가장 핵심 요소이다.
요즘 고화질의 게임들을 생각해보자. 머리카락 하나까지 재현하는 정밀도에 초당 30~60 프레임은 소화해내야 하는 것이 현재의 그래픽 카드이다.
먼저 같은 점을 이야기해보자면, CPU 와 GPU는 둘다 컴퓨팅 엔진이다.
사용하는 이유는 매우 간단한데, 많은 양의 연산을 동시에 처리하는 것이 목표이다. 그러므로 딥러닝, 채굴과 같은 수학적 계산에 많이 쓰인다. 미분은 컴퓨터로 가능하기 때문이다.
기존의 컴퓨터 연산은 CPU를 사용하고, RAM에 의존하여 연산을 진행하였다. CPU를 이용한 연산은 대부분 Single-Core(Human-Brain)를 사용하고 MultiProcessing, Multi-Threading 등을 이용하여 CPU가 보유한 코어 갯수 만큼의 Multi-Core를 이용하여 연산을 할 수 있다. 일반적으로 딥러닝에서 사용하는, 특히 pytorch나 tensorflow 에서, data loader 파트에서, core 갯수를 주고 데이터 loading 하는 부분이 여기에 속한다.
이에 반해 GPU는 Core 갯수가 엄청나다. CPU는 8~16개인데 비해 GPU는 몇 천개 이상이다. 즉 이를 이용한 Many-Core dependent 연산을 진행하고, Video RAM에 있는 데이터를 연산한다.
각 각의 Core 별 속도는 CPU가 GPU보다 훨신 빠르다. CPU의 코어 당 속도가 3.0 GHz 정도이다. GPU 같은 경우, 16년 하반기에 등장한 Pascal Architecture 의 경우 1.8 GHz 로 많이 증가했으나 이전 Maxwell 2th Architecture에서의 속도는 0.9GHz 정도였다. 그렇지만 코어의 숫자는 이 때 당시의 CPU의 경우 집에서 게임하거나 사무용으로 쓰이는 평균의 개수는 4코어, GPU는 1500 코어 이상이었다.
CUDA Download
https://www.tensorflow.org/install/gpu
https://www.server-world.info/en/note?os=Ubuntu_22.04&p=nvidia&f=4
https://afsdzvcx123.tistory.com/entry/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-CUDA%EB%9E%80?category=1038435
https://kaen2891.tistory.com/20
https://tododiary.tistory.com/18