CPU보다 GPU가 연산이 빠르다만 알고 있지 말고, 왜 그런 지 자세히 알아보자

 


🚀 CPU와 GPU 내부 구조

CPU와 GPU는 둘 다 데이터를 읽어들여 연산처리를 통해 답을 도출하는 기능을 수행합니다. 컴퓨터에서의 두뇌 역할을 한다는 점에서는 비슷합니다. 다만, 프로세서 내부의 구조를 살펴보면 CPU와 GPU는 차이가 큽니다.

CPU와 GPU 같은 프로세서 내부는 크게 연산을 담당하는 산출연산처리장치(ALU)와 명령어를 해석하고 실행하는 컨트롤유닛(CU), 각종 데이터를 담아두는 캐시로 나뉘게 됩니다.

 

CPU

ALU 이외에도 맥락을 저장할 수 있도록 뇌의 형태를 카피한 형태로 되어 있다. 기본적으로 DRAM과 결합하여 컴퓨팅을 수행할 수 있도록 구성되어 있다. 일반적으로 ALU (core) 의 수와 DRAM 혹은 cache 의 성능과 비례한다. 계산만을 수행하기 위한 기기는 아니고, 전체 job을 컨트롤 하며 인간이 이해할 수 있는 프로그래밍 언어를 컴퓨터의 언어 (0101010 이진수로 된 명령어)로 풀어내서 수행하는 연산을 내부적으로 수행한다. 대부분의 작업은 순차적으로 이루어진다.

 

GPU

ALU 머신이다. 계산을 병렬적으로 하기 위해 설계 되었다. 캐시메모리를 두어 계산하는 형태보다는 연산만을 위한 기기이다.

더 자세한 GPU의 아키텍처는 다음 링크를 참고해라

https://www.techspot.com/article/2151-nvidia-ampere-vs-amd-rdna2/

🪁 CPU와 GPU 쓰임새

이렇듯 CPU와 GPU는 그 구조가 다른만큼 쓰임새도 다릅니다.

쓰임새를 알기 전에 컴퓨터가 데이터를 저장하는 방법에 대해 알아야 합니다.

  • 정수 : 0과 1의 수로 구분하여 저장
  • 실수 : 고정소수점 혹은 부동소수점이라는 데이터 저장방식으로 저장
    • 고정소수점(fixed point) : C#에서 decimal가 고정소수점 방식. 정밀한 표현이 가능하지만 표현할 수 있는 범위가 적습니다.
    • 부동소수점(floating point) : C#에서 float, double가 부동소수점 방식. 훨씬 더 넓은 범위까지 표현할 수 있지만 오차가 발생합니다.


CPU보다 GPU를 사용해야 하는 경우 (AWS 설명)

CPU와 그래픽 처리 장치(GPU) 사이에서 선택할 때 서로 배타적이지 않다는 점에 유의해야 합니다. 클라우드의 모든 서버 또는 서버 인스턴스를 실행하려면 CPU가 필요합니다. 그러나 일부 서버에는 GPU를 추가 코프로세서로 포함하기도 합니다. 특정 워크로드는 특정 함수를 보다 효율적으로 수행하는 GPU가 있는 서버에서 실행하는 것이 더 적합합니다. 예를 들어, GPU는 부동 소수점 숫자 계산, 그래픽 처리 또는 데이터 패턴 매칭에 유용할 수 있습니다.

다음은 CPU보다 GPU를 사용하는 것이 더 유용한 몇 가지 분야입니다.

딥 러닝

딥 러닝은 인간의 두뇌에서 영감을 얻은 방식으로 데이터를 처리하도록 컴퓨터를 가르치는 인공 지능(AI) 방식입니다. 예를 들어, 딥 러닝 알고리즘은 그림, 텍스트, 사운드 및 기타 데이터의 복잡한 패턴을 인식하여 정확한 인사이트와 예측을 생성할 수 있습니다. GPU 기반 서버는 기계 학습, 신경망 및 딥 러닝 작업에 고성능을 제공합니다.

딥 러닝에 대해 읽어보기 »

기계 학습에 대해 읽어보기 »

신경망에 대해 읽어보기 »

고성능 컴퓨팅

고성능 컴퓨팅이라는 용어는 매우 뛰어난 컴퓨팅 성능이 필요한 작업을 의미합니다. 다음은 몇 가지 예입니다.

  • 지구과학 시뮬레이션과 지진 처리를 빠르게 대규모로 실행해야 하는 경우
  • 제품 포트폴리오 위험, 헤지 기회 등을 식별하도록 재무 시뮬레이션을 계획해야 하는 경우
  • 의학, 유전체학 및 신약 개발 분야에서 예측, 실시간 또는 회귀적 데이터 과학 애플리케이션을 구축해야 하는 경우

GPU 기반 컴퓨터 시스템은 이와 같은 고성능 컴퓨팅 작업에 더 적합합니다.

고성능 컴퓨팅에 대해 읽어보기 »

자율 주행 교통 수단

고급 운전자 지원 시스템(ADAS)과 자율 주행 교통 수단(AV) 시스템을 개발하고 배포하려면 확장성이 뛰어난 컴퓨팅, 스토리지, 네트워킹 및 분석 기술이 필요합니다. 예를 들어, 데이터 수집, 레이블링 및 주석, 지도 개발, 알고리즘 개발, 시뮬레이션 및 검증을 위한 기능이 필요합니다. 이러한 복잡한 워크로드에서는 효율적인 연산을 위해 GPU 기반 컴퓨터 시스템의 지원이 필요합니다.

 

  CPU 그래픽 처리 장치(GPU)
함수 서버의 주요 처리 연산을 해결하는 일반화된 구성 요소 병렬 컴퓨팅에 탁월한 전문화된 구성 요소
처리 중 직렬 명령 처리를 위해 설계됨 병렬 명령 처리를 위해 설계됨
설계 코어 수는 더 적지만 코어 성능은 더 강력함 CPU보다 코어 수는 더 많지만 CPU 코어보다 성능이 떨어짐
가장 적합한 용도 범용 컴퓨팅 애플리케이션 고성능 컴퓨팅 애플리케이션



참고
CPU vs GPU nvidia

https://www.youtube.com/watch?v=-P28LKWTzrI

https://velog.io/@ckstn0777/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-CPU%EC%99%80-GPU

 

CPU와 GPU

CPU와 GPU는 둘 다 데이터를 읽어들여 연산처리를 통해 답을 도출하는 기능을 수행합니다. 컴퓨터에서의 두뇌 역할을 한다는 점에서는 비슷합니다. 다만, 프로세서 내부의 구조를 살펴보면 CPU와 G

velog.io

https://aws.amazon.com/ko/compare/the-difference-between-gpus-cpus/

+ Recent posts