본문 바로가기
Computer Architecture

GPU(Graphics Processing Unit)에 대한 간단한 이해

by 노마드공학자 2020. 12. 12.

[CPU에 대한 간단한 이해] : https://limitsinx.tistory.com/23 

 

 

"GPU??"

 

https://www.youtube.com/watch?time_continue=1&v=1BAZf3PsjWA&feature=emb_title

 

 

일반적으로 GPU라고 하면 상기 이미지를 떠올리시는데요, 이건 GPU가아니라 그래픽카드입니다.

 

그래픽카드는 내부에 GPU와 방열, VRAM ,쿨링케이스 , PCB-Board를 모두 포함한 것으로 엄밀하게 얘기를할때는 확실한 구분이 필요합니다.

 

 

GPU를 설명하려면, CPU부터 간단하게 말씀드려야 하는데요

 

CPU란 6개정도의 코어(processing head)를 통해 복잡한 고차원 연산을 가능하게 해주는것입니다.

 

보통 노트북에 intel 펜티엄,i5-7-9, AMD의 라이젠 등이 있죠, 보통 흔히들 생각하는 PC/랩톱의 뇌에 해당하는 부분입니다.

 

 

즉, 코어하나하나가 복잡한 Instruction(명령어)를 처리할 수 있는데, 이것을 Single Thread Performance가 좋다고 표현 합니다.

 

(엄밀하게는 코어1개가 해내는 퍼포먼스를 Single Thread Performance라고 하지만, CPU의 코어수는 보통 10개미만이기에 그냥 Single이라고 표현하는편입니다.)

 

GPU는 Core대신에 Stream Processor라고 하는 연산처리장치가 존재해요 (NVIDIA는 CUDA Processor라고 부릅니다.)

 

 

보통 GPU당 3000개 이상의 Stream Processor가 들어가는데요, Multi Thread Performance가 좋다고 표현합니다.

 

정리하자면 CPU는 Single Thread Performance가 좋고 GPU는 multi thread Performance가 좋다는 뜻이죠, (단 동일한 가격이라는 전제하에)

 

쉽게풀어쓰면 CPU의 코어는 천재 1명이라 생각하고, GPU 스트림프로세서 1개는 일반대학생이라고 생각해보면 됩니다.

 

CPU는 천재 5명을 모아놓고, 아주 복잡한 instruction들을 처리할 수 있게끔 하는데요, 일반 대학생도 할 수 있는 미분적분을 하게 된다면

 

일반대학생 3000명 vs 천재 5명에서 일반대학생이 속도가 훨씬 빠르겠죠

 

출처 : https://m.blog.naver.com/PostView.nhn?blogId=j_neverland&logNo=120133597206&proxyReferer=https:%2F%2Fwww.google.com%2F

즉, 간단한 업무를 수행한다면 결과적으로 Multi-thread performance가 GPU가 훨씬 압도적으로 뛰어나다는것입니다.

 

보통 GPU를 사용한다고하면 초고화질의 3D 게임을하거나, 영상처리(딥러닝)작업을 할때 사용하는데요

 

천재 5명이 하는일 보다는 대학생 3000명이 할 수 있는, 단순한 업무들의 반복이기 때문이에요

 

예를들면, 게임화면속에 꽃이 있다고 생각해볼때 꽃은 결국 1920*1080개의 pixel들의 표현이고 각각의 pixel을 어떻게 빨리 정확하게 채워주느냐가

 

그 이미지를 표현할 수 있는 방법이죠

 

이런경우에는 대학생 3000명이 천재 5명보다 훨씬 빨리 각 pixel들에 점을 찍을수 있다는 것입니다.

 

 

Memory Hierarchy

 

그래픽카드에서 쓰는 메모리용어는 따로 있습니다.

 

CPU에서는 main memory로 DRAM SRAM, 보조메모리로는 HDD,SDD 같은 Memory Hierarchy가 존재하죠

 

DRAM은 흔히들 우리가 말하는 이 PC의 SPEC중 램이 몇기가니~~ 얘기할때 말하는것입니다.

 

CPU가 레지스터에 모든 데이터를 저장해놓고 가져다쓸순없으니, SRAM 바로 밑에서 빨리빨리 지금 돌리고 있는 프로그램의 instruction을 가져올수 있게끔 해놓는것이죠

 

그래픽카드도 이 DRAM역할을 하는 메모리가 있는데요, 옛날에는 VRAM이라 불렀습니다.

 

Video-RAM으로 GPU가 접근해서 그래픽을 수월하게 처리하도록 도움을 주는 메모리로써, 과거에는 비디오메모리가 크지 않았는데

 

최근 엄청난 화질의 이미지와 게이밍등을 지원하게되면서 GPU만을 위해 특화설계된 VRAM을 GDDR(Graphic Double Data Rate)이라는 다른이름으로 부르게 됩니다.

 

이 GDDR은, 온전히 GPU가 그래픽연산처리를 위해 사용되는 데이터만을 저장할 수 있기에 용량과 성능이 비례한다고 볼 수있으며, 현재 약 2~12GB까지 다양하게 존재합니다.

 

 

이런원리로, CPU와는 차별점을 가지고 있으며 성능적인 부분에서 가장 신경써야할부분은 Single Thread 와 Multi Thread Performance의 차이입니다.

 

물론, 이것은 같은 가격이라는 전제하에서 입니다.

 

천재 5명과 대학생 3000명에게 1만개의 덧셈뺄샘을 시키면 대학생3000명이 더 빨리하겠지만 (동일한 가격)

 

천재 3000명과 대학생3000명을 붙이면 천재 3000명이 빠르겠죠?? 이것을 슈퍼컴퓨터라고 부릅니다.

 

슈퍼컴퓨터는 CPU의 코어 갯수가 수십만개로 병렬연결되어 처리를 하기 떄문에 GPU 스트림프로세서의 병렬수를 무색하게 할 정도라고 생각하시면 됩니다.

 

 

 

댓글