taeyounkim LOG

[Tech] CPU, GPU, 그리고 NDIVIA (GPGPU)에 대한 간단한 정리 본문

Tech

[Tech] CPU, GPU, 그리고 NDIVIA (GPGPU)에 대한 간단한 정리

taeyounkim 2021. 11. 22. 21:59
728x90

최근 반도체 관련 책도 읽고 여러가지 공부를 하고 있는만큼 간략하게 정리를 해보고 싶었다. 알아두면 전공공부할 때도 많은 도움이 될 듯하다.


CPU
-중앙처리장치
-연산/제어부 & 레지스터로 구성
-명령을 처리하는 기능, 처리할 명령을 전달하는 기능을 함
-명령어가 입력되는대로 처리하는 직렬적인 방식 사용
-GPU에 비해 처리 성능이 좋음. 연산 속도가 빠름.(코어 당 속도가 GPU에 비해 빠름..3.0hz 정도)
-ALU(산출연산처리장치)의 개수가 적음
-대기시간 당 코어의 성능이 중요한 workload에 적합함
-ISA가 다르면 CPU에서 프로그램이 돌아갈 수 없기 때문에 호환성에 예민함. 이 때문에 인텔의 x86이 사실상 표준(defacto standard)으로 쓰이는 중
-CPU가 특정 국가의 국민이라면 ISA는 그 나라 사람이 쓰는 언어에 해당됨


GPU
-그래픽을 처리하는 장치
-디스플레이의 최소 단위 화소는 상호의존성이 없으므로 병렬적인 처리가 가능함
-특화된 연산을 처리하기 위한 ASIC으로 시작함
-수백, 수천개의 ALU로 구성됨
-엄청나게 많은 양의 연산을 한 번에 처리하는 병렬적인 방식을 사용
-CPU보다는 명령 처리 및 연산 성능이 떨어짐. (코어 당 속도 1.8hz 정도)
-CPU를 사용했을 때 시간이 많이 걸리는 3D렌더링 작업 등에 많이 사용함

NVIDIA

엔비디아가 CPU 개발에 뛰어든다고 할 때 ARM과 손잡고 독자적인 CPU를 개발하는 것인줄 알았다. 알고보니까 CPU를 새로 개발하기보다는, 자신들이 제일 잘 만드는 GPU를 응용하여 CPU의 역할을 하도록 하게 하는 것이었다.

GPGPU (General-Purpose computing on Graphics Processing Units)
GPGPU는 전통적으로 CPU가 해오던 응용프로그램들의 계산에 GPU를 사용하는 방식이다. 그래픽 처리 연산에 사용되던 GPU에서 그래픽 처리 연산 기능을 낮추고 컴퓨터 연산 처리 기능을 강화시킨 것이다.


최근 엔비디아가 각광받고 있는 이유도 여기에 있다. 자율주행, 메타버스, 그리고 인공지능과 관련하여 머신 러닝이 4차 산업혁명시대의 최대 키워드로 꼽고 싶다.

이들은 모두 유저의 즉각적인 선택과 주변 환경을 아주 짧은 시간 내에 파악을 하여 정확한 처리를 해야하는 기술들인만큼 빠른 연산이 필요하다. 이런 점으로 봤을 때 CPU를 사용하는 것보다 GPU를 사용하는 것이 훨씬 더 이점이 있을 것이라고 생각한 엔비디아의 움직임은 GPGPU의 개발이었던 것이다.

그리고 이 때문에 엔비디아가 현재 받고 있는 엄청난 관심과 주목을 받고 있는 것이다.


GPGPU와 관련하여 엔비디아는 VGA 기발 프로그래밍 라이브러리 CUDA를 개발하였다. CUDA는 GPU 기반의 프로그래밍을 할 수 있게 해주는 개발 툴이며, CUDA는 C언어 문법과 유사한 문법을 사용한다. 활성화시키려면 NVIDIA의 gpu가 필요하다. CUDA의 위상은 인텔의 x86과 비슷해지고 있다고 한다. GPU 분야의 절대강자인 엔비디아에서 개발한 것이기에 호환성의 부분에서 다른 기업들이 이와 견줄 tool을 쉽사리 내놓지 못하고 있다. CUDA 개발만을 중점적으로 하는 개발자 직업까지 생기고 있다고 한다.

-끝-
2021.11.22

[참고]
https://www.intel.co.kr/content/www/kr/ko/products/docs/processors/cpu-vs-gpu.html

CPU와 GPU 비교: 차이점 알아보기

CPU와 GPU의 차이점을 살펴보고 딥 러닝 및 AI를 가속하는 각각의 사용 사례와 아키텍처 이점 및 역할을 알아보십시오.

www.intel.co.kr

728x90